* Interix, Cygwin and Minix ports got updated.
- * A handful of patches to update git-p4 (in contrib/).
+ * Various updates git-p4 (in contrib/), fast-import, and git-svn.
* Gitweb learned to read from /etc/gitweb-common.conf when it exists,
before reading from gitweb_config.perl or from /etc/gitweb.conf
functions can compress or uncompress more than 4GB data in one call on
platforms with 64-bit long, which has been corrected.
+ * Git now recognizes loose objects written by other implementations that
+ uses non-standard window size for zlib deflation (e.g. Agit running on
+ Android with 4kb window). We used to reject anything that was not
+ deflated with 32kb window.
+
+ * Interaction between the use of pager and coloring of the output has
+ been improved, especially when a command that is not built-in was
+ involved.
+
+ * "git am" learned to pass "--exclude=<path>" option through to underlying
+ "git apply".
+
+ * You can now feed many empty lines before feeding a mbox file to
+ "git am".
+
* "git archive" can be told to pass the output to gzip compression and
produce "archive.tar.gz".
+ * "git bisect" can be used in a bare repository (provided if the test
+ you perform per each iteration does not need a working tree, of
+ course).
+
+ * The length of abbreviated object names in "git branch -v" output
+ now honors core.abbrev configuration variable.
+
+ * "git check-attr" can take relative paths from the command line.
+
+ * "git check-attr" learned "--all" option to list the attributes for a
+ given path.
+
* "git checkout" (both the code to update the files upon checking out a
different branch, the code to checkout specific set of files) learned
to stream the data from object store when possible, without having to
* "git diff --stat" learned --stat-count option to limit the output of
diffstat report.
+ * "git diff" learned "--histogram" option, to use a different diff
+ generation machinery stolen from jgit, which might give better
+ performance.
+
+ * "git diff" had a wierd worst case behaviour that can be triggered
+ when comparing files with potentially many places that could match.
+
* "git fetch", "git push" and friends no longer show connection
errors for addresses that couldn't be connected when at least one
address succeeds (this is arguably a regression but a deliberate
* "git grep" learned "-W" option that shows wider context using the same
logic used by "git diff" to determine the hunk header.
+ * Invoking the low-level "git http-fetch" without "-a" option (which
+ git itself never did---normal users should not have to worry about
+ this) is now deprecated.
+
+ * The "--decorate" option to "git log" and its family learned to
+ highlight grafted and replaced commits.
+
* "git rebase master topci" no longer spews usage hints after giving
"fatal: no such branch: topci" error message.
+ * The recursive merge strategy implementation got a fairly large
+ fixes for many corner cases that may rarely happen in real world
+ projects (it has been verified that none of the 16000+ merges in
+ the Linux kernel history back to v2.6.12 is affected with the
+ corner case bugs this update fixes).
+
* "git stash" learned --include-untracked option.
* "git submodule update" used to stop at the first error updating a
submodule; it now goes on to update other submodules that can be
updated, and reports the ones with errors at the end.
+ * "git push" can be told with --recurse-submodules=check option to
+ refuse pushing of the supermodule, if any of its submodules'
+ commits hasn't been pushed out to their remotes.
+
+ * "git upload-pack" and "git receive-pack" learned to pretend only a
+ subset of the refs exist in a repository. This may help a site to
+ put many tiny repositories into one repository (this would not be
+ useful for larger repositories as repacking would be problematic).
+
* "git verify-pack" has been rewritten to use the "index-pack" machinery
that is more efficient in reading objects in packfiles.
Unless otherwise noted, all the fixes in 1.7.6.X maintenance track are
included in this release.
- * "git checkout -b <branch>" sometimes wrote a bogus reflog entry,
- causing later "git checkout -" fail.
- (merge 71ee7fd jc/checkout-reflog-fix~1 later).
-
- * "git diff --cc" learned to correctly ignore binary files.
- (merge 0508fe5 jk/combine-diff-binary-etc later)
-
- * "git fast-export" forgot to quote pathnames with unsafe characters
- in its output.
- (merge 6280dfd jk/fast-export-quote-path later)
-
- * "git fetch" did not recurse into submodules in subdirectories.
- (merge ea2d325 jl/maint-fetch-recursive-fix later)
-
- * "git ls-tree" did not error out when asked to show a corrupt tree.
- (merge 04f8925 js/ls-tree-error later)
-
- * "git pull" without any argument left an extra whitespace after the
- command name in its reflog.
- (merge c98d1e4 oa/pull-reflog later)
-
- * "git rebase -i -p" incorrectly dropped commits from side branches.
- (merge 12bf828 aw/rebase-i-p later)
+ * The error reporting logic of "git am" when the command is fed a file
+ whose mail-storage format is unknown was fixed.
+ (merge dff4b0e gb/maint-am-patch-format-error-message later to 'maint').
- * "git reset [<commit>] paths..." did not reset the index entry correctly
- for unmerged paths.
- (merge ff00b682 jc/maint-reset-unmerged-path later)
+ * "git branch --set-upstream @{-1} foo" did not expand @{-1} correctly.
+ (merge e9d4f74 mg/branch-set-upstream-previous later to 'maint').
- * "git submodule add" did not allow a relative repository path when
- the superproject did not have any default remote url.
- (merge f22a17e8 jl/submodule-add-relurl-wo-upstream later)
+ * "git branch -m" and "git checkout -b" incorrectly allowed the tip
+ of the branch that is currently checked out updated.
+ (merge 55c4a67 ci/forbid-unwanted-current-branch-update later to 'maint').
- * "git submodule foreach" failed to correctly give the standard input to
- the user-supplied command it invoked.
- (merge 4dca1aa bc/submodule-foreach-stdin-fix-1.7.4 later)
+ * "git clone" failed to clone locally from a ".git" file that itself
+ is not a directory but is a pointer to one.
+ (merge 9b0ebc7 nd/maint-clone-gitdir later to 'maint').
- * "git submodule update --quiet" was not really quiet.
- (merge 7e60407 jl/submodule-update-quiet later)
+ * "git clone" from a local repository that borrows from another
+ object store using a relative path in its objects/info/alternates
+ file did not adjust the alternates in the resulting repository.
+ (merge e6baf4a1 jc/maint-clone-alternates later to 'maint').
- * submodules that the user has never showed interest in by running
- "git submodule init" was incorrectly marked as interesting by "git
- submodule sync".
- (merge 2cd9de3 jc/submodule-sync-no-auto-vivify later)
+ * "git describe --dirty" did not refresh the index before checking the
+ state of the working tree files.
+ (cherry-pick bb57148 ac/describe-dirty-refresh later to 'maint').
- * "git tag -l <glob>..." did not take multiple glob patterns from the
- command line.
- (merge 588d0e8 jk/tag-list-multiple-patterns later)
+ * "git ls-files ../$path" that is run from a subdirectory reported errors
+ incorrectly when there is no such path that matches the given pathspec.
+ (merge 0f64bfa cb/maint-ls-files-error-report later to 'maint').
--
exec >/var/tmp/1
echo O=$(git describe master)
-O=v1.7.6-446-g0af53e1
+O=v1.7.7-rc0-174-ga536a9d
git log --first-parent --oneline $O..master
echo
git shortlog --no-merges ^maint ^$O master