Git v1.7.10 Release Notes ========================= Updates since v1.7.9 -------------------- UI, Workflows & Features * Improved handling of views, labels and branches in git-p4 (in contrib). * Updated command line arguments completion script for zsh (in contrib). * "vcs-svn"/"svn-fe" learned to read dumps with svn-deltas and support incremental imports. * "git am" learned to pass "-b" option to underlying "git mailinfo", so that bracketed string other than "PATCH" at the beginning can be kept. * "git clone" learned "--single-branch" option to limit cloning to a single branch (surprise!). * "git clone" learned to detach the HEAD in the resulting repository when the source repository's HEAD does not point to a branch. * The commands in the "git diff" family and "git apply --stat" that count the number of files changed and the number of lines inserted/deleted have been updated to match the output from "diffstat". This also opens the door to i18n this line. * When showing a patch while ignoring whitespace changes, the context lines are taken from the postimage, in order to make it easier to view the output. * "git merge" in an interactive session learned to spawn the editor by default to let the user edit the auto-generated merge message, to encourage people to explain their merges better. Legacy scripts can export MERGE_AUTOEDIT=no to retain the historical behaviour. * "gitweb" allows intermediate entries in the directory hierarchy that leads to a projects to be clicked, which in turn shows the list of projects inside that directory. Performance * During "git upload-pack" in respose to "git fetch", unnecessary calls to parse_object() have been eliminated, to help performance in repositories with excessive number of refs. Internal Implementation * Recursive call chains in "git index-pack" to deal with long delta chains have been flattened, to reduce the stack footprint. * Use of add_extra_ref() API is slowly getting removed, to make it possible to cleanly restructure the overall refs API. * The test suite supports the new "test_pause" helper function. * t/Makefile is adjusted to prevent newer versions of GNU make from running tests in seemingly random order. Also contains minor documentation updates and code clean-ups. Fixes since v1.7.9 ------------------ Unless otherwise noted, all the fixes since v1.7.9 in the maintenance releases are contained in this release (see release notes to them for details). * The error message emitted when we see an empty loose object was not phrased correctly. (merge 33e42de mm/empty-loose-error-message later to maint). * "git commit" refused to create a commit when entries added with "add -N" remained in the index, without telling Git what their content in the next commit should be. We should have created the commit without these paths. (merge 3f6d56d jc/maint-commit-ignore-i-t-a later to maint). * Search box in "gitweb" did not accept non-ASCII characters correctly. (merge 84d9e2d jn/gitweb-search-utf-8 later to maint). * The code to ask for password did not fall back to the terminal input when GIT_ASKPASS is set but does not work (e.g. lack of X with GUI askpass helper). (merge 84d7273 jk/prompt-fallback-to-tty later to maint). * map_user() was not rewriting its output correctly, which resulted in the user visible symptom that "git blame -e" sometimes showed excess '>' at the end of email addresses. (merge f026358 jc/maint-mailmap-output later to maint). * "checkout -b" did not allow switching out of an unborn branch. (merge abe1998 jc/checkout-out-of-unborn later to maint). --- exec >/var/tmp/1 O=v1.7.9-249-gaa47ec9 echo O=$(git describe) git log --first-parent --oneline ^maint $O.. echo git shortlog --no-merges ^maint $O..