Git v1.7.7 Release Notes ======================== Updates since v1.7.6 -------------------- * The scripting part of the codebase is getting prepared for i18n/l10n. * Interix, Cygwin and Minix ports got updated. * A handful of patches to update git-p4 (in contrib/). * Gitweb learned to read from /etc/gitweb-common.conf when it exists, before reading from gitweb_config.perl or from /etc/gitweb.conf (this last one is read only when per-repository gitweb_config.perl does not exist). * Various codepaths that invoked zlib deflate/inflate assumed that these functions can compress or uncompress more than 4GB data in one call on platforms with 64-bit long, which has been corrected. * "git archive" can be told to pass the output to gzip compression and produce "archive.tar.gz". * "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 read the entire contents of a file in memory first. An earlier round of this code that is not in any released version had a large leak but now it has been plugged. * "git clone" can now take "--config key=value" option to set the repository configuration options that affect the initial checkout. * "git commit ..." now lets you feed relative pathspecs that refer outside your current subdirectory. * "git diff --stat" learned --stat-count option to limit the output of diffstat report. * "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 one). * "git grep" learned --break and --heading options, to let users mimic output format of "ack". * "git grep" learned "-W" option that shows wider context using the same logic used by "git diff" to determine the hunk header. * "git rebase master topci" no longer spews usage hints after giving "fatal: no such branch: topci" error message. * "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 verify-pack" has been rewritten to use the "index-pack" machinery that is more efficient in reading objects in packfiles. * test scripts for gitweb tried to run even when CGI-related perl modules are not installed; it now exits early when they are unavailable. Also contains various documentation updates and minor miscellaneous changes. Fixes since v1.7.6 ------------------ Unless otherwise noted, all the fixes in 1.7.6.X maintenance track are included in this release. * "git checkout -b " 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) * "git reset [] paths..." did not reset the index entry correctly for unmerged paths. (merge ff00b682 jc/maint-reset-unmerged-path later) * "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 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 submodule update --quiet" was not really quiet. (merge 7e60407 jl/submodule-update-quiet later) * 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 tag -l ..." did not take multiple glob patterns from the command line. (merge 588d0e8 jk/tag-list-multiple-patterns later) -- exec >/var/tmp/1 echo O=$(git describe master) O=v1.7.6-446-g0af53e1 git log --first-parent --oneline $O..master echo git shortlog --no-merges ^maint ^$O master