1Git v1.7.7 Release Notes 2======================== 3 4Updates 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 123Also contains various documentation updates and minor miscellaneous 124changes. 125 126 127Fixes since v1.7.6 128------------------ 129 130Unless otherwise noted, all fixes in the 1.7.6.X maintenance track are 131included in this release. 132 133 * The error reporting logic of "git am" when the command is fed a file 134 whose mail-storage format is unknown was fixed. 135 (merge dff4b0e gb/maint-am-patch-format-error-message later to 'maint'). 136 137 * "git branch --set-upstream @{-1} foo" did not expand @{-1} correctly. 138 (merge e9d4f74 mg/branch-set-upstream-previous later to 'maint'). 139 140 * "git branch -m" and "git checkout -b" incorrectly allowed the tip 141 of the branch that is currently checked out updated. 142 (merge 55c4a67 ci/forbid-unwanted-current-branch-update later to 'maint'). 143 144 * "git check-ref-format --print" used to parrot a candidate string that 145 began with a slash (e.g. /refs/heads/master) without stripping it, to make 146 the result a suitably normalized string the caller can append to "$GIT_DIR/". 147 (merge f3738c1 mh/check-ref-format-print-normalize later to 'maint'). 148 149 * "git clone" failed to clone locally from a ".git" file that itself 150 is not a directory but is a pointer to one. 151 (merge 9b0ebc7 nd/maint-clone-gitdir later to 'maint'). 152 153 * "git clone" from a local repository that borrows from another 154 object store using a relative path in its objects/info/alternates 155 file did not adjust the alternates in the resulting repository. 156 (merge e6baf4a1 jc/maint-clone-alternates later to 'maint'). 157 158 * "git describe --dirty" did not refresh the index before checking the 159 state of the working tree files. 160 (cherry-pick bb57148 ac/describe-dirty-refresh later to 'maint'). 161 162 * "git ls-files ../$path" that is run from a subdirectory reported errors 163 incorrectly when there is no such path that matches the given pathspec. 164 (merge 0f64bfa cb/maint-ls-files-error-report later to 'maint'). 165 166-- 167exec >/var/tmp/1 168echo O=$(git describe master) 169O=v1.7.7-rc2 170git log --first-parent --oneline $O..master 171echo 172git shortlog --no-merges ^maint ^$O master