1 Git v1.7.7 Release Notes
2 ========================
7 * The scripting part of the codebase is getting prepared for i18n/l10n.
9 * Interix, Cygwin and Minix ports got updated.
11 * Various updates to git-p4 (in contrib/), fast-import, and git-svn.
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
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.
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.
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
31 * "git am" learned to pass the "--exclude=<path>" option through to underlying
34 * You can now feed many empty lines before feeding an mbox file to
37 * "git archive" can be told to pass the output to gzip compression and
38 produce "archive.tar.gz".
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
44 * The length of abbreviated object names in "git branch -v" output
45 now honors the core.abbrev configuration variable.
47 * "git check-attr" can take relative paths from the command line.
49 * "git check-attr" learned an "--all" option to list the attributes for a
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.
59 * "git clone" can now take a "--config key=value" option to set the
60 repository configuration options that affect the initial checkout.
62 * "git commit <paths>..." now lets you feed relative pathspecs that
63 refer to outside your current subdirectory.
65 * "git diff --stat" learned a --stat-count option to limit the output of
68 * "git diff" learned a "--histogram" option to use a different diff
69 generation machinery stolen from jgit, which might give better
72 * "git diff" had a weird worst case behaviour that can be triggered
73 when comparing files with potentially many places that could match.
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
80 * "git grep" learned "--break" and "--heading" options, to let users mimic
81 the output format of "ack".
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.
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.
90 * The "--decorate" option to "git log" and its family learned to
91 highlight grafted and replaced commits.
93 * "git rebase master topci" no longer spews usage hints after giving
94 the "fatal: no such branch: topci" error message.
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).
102 * "git stash" learned an "--include-untracked option".
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.
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.
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).
117 * "git verify-pack" has been rewritten to use the "index-pack" machinery
118 that is more efficient in reading objects in packfiles.
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.
123 Also contains various documentation updates and minor miscellaneous
130 Unless otherwise noted, all fixes in the 1.7.6.X maintenance track are
131 included in this release.
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').
137 * "git branch --set-upstream @{-1} foo" did not expand @{-1} correctly.
138 (merge e9d4f74 mg/branch-set-upstream-previous later to 'maint').
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').
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').
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').
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').
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').
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').
168 echo O=$(git describe master)
170 git log --first-parent --oneline $O..master
172 git shortlog --no-merges ^maint ^$O master