| 1 | Git v1.7.7 Release Notes |
| 2 | ======================== |
| 3 | |
| 4 | Updates since v1.7.6 |
| 5 | -------------------- |
| 6 | |
| 7 | * The scripting part of the codebase is getting prepared for i18n/l10n. |
| 8 | |
| 9 | * Interix, Cygwin and Minix ports got updated. |
| 10 | |
| 11 | * Various updates to git-p4 (in contrib/), fast-import, and git-svn. |
| 12 | |
| 13 | * Gitweb learned to read from /etc/gitweb-common.conf when it exists, |
| 14 | before reading from gitweb_config.perl or from /etc/gitweb.conf |
| 15 | (this last one is read only when per-repository gitweb_config.perl |
| 16 | does not exist). |
| 17 | |
| 18 | * Various codepaths that invoked zlib deflate/inflate assumed that these |
| 19 | functions can compress or uncompress more than 4GB data in one call on |
| 20 | platforms with 64-bit long, which has been corrected. |
| 21 | |
| 22 | * Git now recognizes loose objects written by other implementations that |
| 23 | use a non-standard window size for zlib deflation (e.g. Agit running on |
| 24 | Android with 4kb window). We used to reject anything that was not |
| 25 | deflated with 32kb window. |
| 26 | |
| 27 | * Interaction between the use of pager and coloring of the output has |
| 28 | been improved, especially when a command that is not built-in was |
| 29 | involved. |
| 30 | |
| 31 | * "git am" learned to pass the "--exclude=<path>" option through to underlying |
| 32 | "git apply". |
| 33 | |
| 34 | * You can now feed many empty lines before feeding an mbox file to |
| 35 | "git am". |
| 36 | |
| 37 | * "git archive" can be told to pass the output to gzip compression and |
| 38 | produce "archive.tar.gz". |
| 39 | |
| 40 | * "git bisect" can be used in a bare repository (provided that the test |
| 41 | you perform per each iteration does not need a working tree, of |
| 42 | course). |
| 43 | |
| 44 | * The length of abbreviated object names in "git branch -v" output |
| 45 | now honors the core.abbrev configuration variable. |
| 46 | |
| 47 | * "git check-attr" can take relative paths from the command line. |
| 48 | |
| 49 | * "git check-attr" learned an "--all" option to list the attributes for a |
| 50 | given path. |
| 51 | |
| 52 | * "git checkout" (both the code to update the files upon checking out a |
| 53 | different branch and the code to checkout a specific set of files) learned |
| 54 | to stream the data from object store when possible, without having to |
| 55 | read the entire contents of a file into memory first. An earlier round |
| 56 | of this code that is not in any released version had a large leak but |
| 57 | now it has been plugged. |
| 58 | |
| 59 | * "git clone" can now take a "--config key=value" option to set the |
| 60 | repository configuration options that affect the initial checkout. |
| 61 | |
| 62 | * "git commit <paths>..." now lets you feed relative pathspecs that |
| 63 | refer to outside your current subdirectory. |
| 64 | |
| 65 | * "git diff --stat" learned a --stat-count option to limit the output of |
| 66 | a diffstat report. |
| 67 | |
| 68 | * "git diff" learned a "--histogram" option to use a different diff |
| 69 | generation machinery stolen from jgit, which might give better |
| 70 | performance. |
| 71 | |
| 72 | * "git diff" had a weird worst case behaviour that can be triggered |
| 73 | when comparing files with potentially many places that could match. |
| 74 | |
| 75 | * "git fetch", "git push" and friends no longer show connection |
| 76 | errors for addresses that couldn't be connected to when at least one |
| 77 | address succeeds (this is arguably a regression but a deliberate |
| 78 | one). |
| 79 | |
| 80 | * "git grep" learned "--break" and "--heading" options, to let users mimic |
| 81 | the output format of "ack". |
| 82 | |
| 83 | * "git grep" learned a "-W" option that shows wider context using the same |
| 84 | logic used by "git diff" to determine the hunk header. |
| 85 | |
| 86 | * Invoking the low-level "git http-fetch" without "-a" option (which |
| 87 | git itself never did--normal users should not have to worry about |
| 88 | this) is now deprecated. |
| 89 | |
| 90 | * The "--decorate" option to "git log" and its family learned to |
| 91 | highlight grafted and replaced commits. |
| 92 | |
| 93 | * "git rebase master topci" no longer spews usage hints after giving |
| 94 | the "fatal: no such branch: topci" error message. |
| 95 | |
| 96 | * The recursive merge strategy implementation got a fairly large |
| 97 | fix for many corner cases that may rarely happen in real world |
| 98 | projects (it has been verified that none of the 16000+ merges in |
| 99 | the Linux kernel history back to v2.6.12 is affected with the |
| 100 | corner case bugs this update fixes). |
| 101 | |
| 102 | * "git stash" learned an "--include-untracked option". |
| 103 | |
| 104 | * "git submodule update" used to stop at the first error updating a |
| 105 | submodule; it now goes on to update other submodules that can be |
| 106 | updated, and reports the ones with errors at the end. |
| 107 | |
| 108 | * "git push" can be told with the "--recurse-submodules=check" option to |
| 109 | refuse pushing of the supermodule, if any of its submodules' |
| 110 | commits hasn't been pushed out to their remotes. |
| 111 | |
| 112 | * "git upload-pack" and "git receive-pack" learned to pretend that only a |
| 113 | subset of the refs exist in a repository. This may help a site to |
| 114 | put many tiny repositories into one repository (this would not be |
| 115 | useful for larger repositories as repacking would be problematic). |
| 116 | |
| 117 | * "git verify-pack" has been rewritten to use the "index-pack" machinery |
| 118 | that is more efficient in reading objects in packfiles. |
| 119 | |
| 120 | * test scripts for gitweb tried to run even when CGI-related perl modules |
| 121 | are not installed; they now exit early when the latter are unavailable. |
| 122 | |
| 123 | Also contains various documentation updates and minor miscellaneous |
| 124 | changes. |
| 125 | |
| 126 | |
| 127 | Fixes since v1.7.6 |
| 128 | ------------------ |
| 129 | |
| 130 | Unless otherwise noted, all fixes in the 1.7.6.X maintenance track are |
| 131 | included in this release. |
| 132 | |
| 133 | * "git branch -m" and "git checkout -b" incorrectly allowed the tip |
| 134 | of the branch that is currently checked out updated. |