Git v1.7.2.3 Release Notes ========================== Fixes since v1.7.2.2 -------------------- * When people try insane things such as delta-compressing 4GiB files, we threw an assertion failure. * "git archive" gave the full commit ID for "$Format:%h$". * "git fetch --tags" did not fetch tags when remote..tagopt was set to --no-tags. The command line option now overrides the configuration setting. * "git for-each-ref --format='%(objectname:short)'" has been completely broken for a long time. * "git gc" incorrectly pruned a rerere record that was created long time ago but still is actively and repeatedly used. * "git log --follow -M -p" was seriously broken in 1.7.2, reporting assertion failure. * Running "git log" with an incorrect option started pager nevertheless, forcing the user to dismiss it. * "git rebase" did not work well when the user has diff.renames configuration variable set. * An earlier (and rather old) fix to "git rebase" against a rebased upstream broke a more normal, non rebased upstream case rather badly, attempting to re-apply patches that are already accepted upstream. * "git submodule sync" forgot to update the superproject's config file when submodule URL changed. * "git pack-refs --all --prune" did not remove a directory that has become empty. Git v1.7.2.2 Release Notes ========================== Fixes since v1.7.2.1 -------------------- * Object transfer over smart http transport deadlocked the client when the remote HTTP server returned a failure, instead of erroring it out. * git-gui honors custom textconv filters when showing diff and blame; * git diff --relative=subdir (without the necessary trailing /) did not work well; * "git diff-files -p --submodule" was recently broken; * "git checkout -b n ':/token'" did not work; * "git index-pack" (hence "git fetch/clone/pull/push") enabled the object replacement machinery by mistake (it never should have); And other minor fixes and documentation updates. Git v1.7.2.1 Release Notes ========================== Fixes since v1.7.2 ------------------ * "git instaweb" wasn't useful when your Apache was installed under a name other than apache2 (e.g. "httpd"). * Similarly, "git web--browse" (invoked by "git help -w") learned that chrome browser is sometimes called google-chrome. * An overlong line after ".gitdir: " in a git file caused out of bounds access to an array on the stack. * "git config --path conf.var" to attempt to expand a variable conf.var that uses "~/" short-hand segfaulted when $HOME environment variable was not set. * Documentation on Cygwin failed to build. * The error message from "git pull blarg" when 'blarg' is an unknown remote name has been improved. And other minor fixes and documentation updates. Git v1.7.2 Release Notes ======================== Updates since v1.7.1 -------------------- * core.eol configuration and text/eol attributes are the new way to control the end of line conventions for files in the working tree. * core.autocrlf has been made safer - it will now only handle line endings for new files and files that are LF-only in the repository. To normalize content that has been checked in with CRLF, use the new eol/text attributes. * The whitespace rules used in "git apply --whitespace" and "git diff" gained a new member in the family (tab-in-indent) to help projects with policy to indent only with spaces. * When working from a subdirectory, by default, git does not look for its metadirectory ".git" across filesystems, primarily to help people who have invocations of git in their custom PS1 prompts, as being outside of a git repository would look for ".git" all the way up to the root directory, and NFS mounts are often slow. DISCOVERY_ACROSS_FILESYSTEM environment variable can be used to tell git not to stop at a filesystem boundary. * Usage help messages generated by parse-options library (i.e. most of the Porcelain commands) are sent to the standard output now. * ':/' notation to look for a commit now takes regular expression and it is not anchored at the beginning of the commit log message anymore (this is a backward incompatible change). * "git" wrapper learned "-c name=value" option to override configuration variable from the command line. * Improved portability for various platforms including older SunOS, HP-UX 10/11, AIX, Tru64, etc. and platforms with Python 2.4. * The message from "git am -3" has been improved when conflict resolution ended up making the patch a no-op. * "git blame" applies the textconv filter to the contents it works on, when available. * "git checkout --orphan newbranch" is similar to "-b newbranch" but prepares to create a root commit that is not connected to any existing commit. * "git cherry-pick" learned to pick a range of commits (e.g. "cherry-pick A..B" and "cherry-pick --stdin"), so did "git revert"; these do not support the nicer sequencing control "rebase [-i]" has, though. * "git cherry-pick" and "git revert" learned --strategy option to specify the merge strategy to be used when performing three-way merges. * "git cvsserver" can be told to use pserver; its password file can be stored outside the repository. * The output from the textconv filter used by "git diff" can be cached to speed up their reuse. * "git diff --word-diff=" extends the existing "--color-words" option, making it more useful in color-challenged environments. * The regexp to detect function headers used by "git diff" for PHP has been enhanced for visibility modifiers (public, protected, etc.) to better support PHP5. * "diff.noprefix" configuration variable can be used to implicitly ask for "diff --no-prefix" behaviour. * "git for-each-ref" learned "%(objectname:short)" that gives the object name abbreviated. * "git format-patch" learned --signature option and format.signature configuration variable to customize the e-mail signature used in the output. * Various options to "git grep" (e.g. --count, --name-only) work better with binary files. * "git grep" learned "-Ovi" to open the files with hits in your editor. * "git help -w" learned "chrome" and "chromium" browsers. * "git log --decorate" shows commit decorations in various colours. * "git log --follow " follows across copies (it used to only follow renames). This may make the processing more expensive. * "git log --pretty=format: