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 git-p4 (in contrib/) and "git fast-import". 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 uses 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 "--exclude=<path>" option through to underlying 32 "git apply". 33 34 * You can now feed many empty lines before feeding a 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 if 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 core.abbrev configuration variable. 46 47 * "git check-attr" can take relative paths from the command line. 48 49 * "git check-attr" learned "--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, the code to checkout 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 in 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 "--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 outside your current subdirectory. 64 65 * "git diff --stat" learned --stat-count option to limit the output of 66 diffstat report. 67 68 * "git diff" learned "--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 wierd 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 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 output format of "ack". 82 83 * "git grep" learned "-W" option that shows wider context using the same 84 logic used by "git diff" to determine the hunk header. 85 86 * The "--decorate" option to "git log" and its family learned to 87 highlight grafted and replaced commits. 88 89 * "git rebase master topci" no longer spews usage hints after giving 90 "fatal: no such branch: topci" error message. 91 92 * The recursive merge strategy implementation got a fairly large 93 fixes for many corner cases that may rarely happen in real world 94 projects (it has been verified that none of the 16000+ merges in 95 the Linux kernel history back to v2.6.12 is affected with the 96 corner case bugs this update fixes). 97 98 * "git stash" learned --include-untracked option. 99 100 * "git submodule update" used to stop at the first error updating a 101 submodule; it now goes on to update other submodules that can be 102 updated, and reports the ones with errors at the end. 103 104 * "git push" can be told with --recurse-submodules=check option to 105 refuse pushing of the supermodule, if any of its submodules' 106 commits hasn't been pushed out to their remotes. 107 108 * "git upload-pack" and "git receive-pack" learned to pretend only a 109 subset of the refs exist in a repository. This may help a site to 110 put many tiny repositories into one repository (this would not be 111 useful for larger repositories as repacking would be problematic). 112 113 * "git verify-pack" has been rewritten to use the "index-pack" machinery 114 that is more efficient in reading objects in packfiles. 115 116 * test scripts for gitweb tried to run even when CGI-related perl modules 117 are not installed; it now exits early when they are unavailable. 118 119Also contains various documentation updates and minor miscellaneous 120changes. 121 122 123Fixes since v1.7.6 124------------------ 125 126Unless otherwise noted, all the fixes in 1.7.6.X maintenance track are 127included in this release. 128 129 * "git branch --set-upstream @{-1} foo" did not expand @{-1} correctly. 130 (merge e9d4f74 mg/branch-set-upstream-previous later to 'maint'). 131 132 * "git branch -m" and "git checkout -b" incorrectly allowed the tip 133 of the branch that is currently checked out updated. 134 (merge 55c4a67 ci/forbid-unwanted-current-branch-update later to 'maint'). 135 136 * "git clone" failed to clone locally from a ".git" file that itself 137 is not a directory but is a pointer to one. 138 (merge 9b0ebc7 nd/maint-clone-gitdir later to 'maint'). 139 140 * "git clone" from a local repository that borrows from another 141 object store using a relative path in its objects/info/alternates 142 file did not adjust the alternates in the resulting repository. 143 (merge e6baf4a1 jc/maint-clone-alternates later to 'maint'). 144 145 * "git describe --dirty" did not refresh the index before checking the 146 state of the working tree files. 147 (cherry-pick bb57148 ac/describe-dirty-refresh later to 'maint'). 148 149 * "git ls-files ../$path" that is run from a subdirectory reported errors 150 incorrectly when there is no such path that matches the given pathspec. 151 (merge 0f64bfa cb/maint-ls-files-error-report later to 'maint'). 152 153-- 154exec >/var/tmp/1 155echo O=$(git describe master) 156O=v1.7.6.1-415-g284daf2 157git log --first-parent --oneline $O..master 158echo 159git shortlog --no-merges ^maint ^$O master