| Git v1.7.6 Release Notes | 
 | ======================== | 
 |  | 
 | Updates since v1.7.5 | 
 | -------------------- | 
 |  | 
 |  * Various git-svn updates. | 
 |  | 
 |  * Updates the way content tags are handled in gitweb.  Also adds | 
 |    a UI to choose common timezone for displaying the dates. | 
 |  | 
 |  * Similar to branch names, tagnames that begin with "-" are now | 
 |    disallowed. | 
 |  | 
 |  * Clean-up of the C part of i18n (but not l10n---please wait) | 
 |    continues. | 
 |  | 
 |  * The scripting part of the codebase is getting prepared for i18n/l10n. | 
 |  | 
 |  * Pushing and pulling from a repository with large number of refs that | 
 |    point to identical commits are optimized by not listing the same commit | 
 |    during the common ancestor negotiation exchange with the other side. | 
 |  | 
 |  * Adding a file larger than core.bigfilethreshold (defaults to 1/2 Gig) | 
 |    using "git add" will send the contents straight to a packfile without | 
 |    having to hold it and its compressed representation both at the same | 
 |    time in memory. | 
 |  | 
 |  * Processes spawned by "[alias] <name> = !process" in the configuration | 
 |    can inspect GIT_PREFIX environment variable to learn where in the | 
 |    working tree the original command was invoked. | 
 |  | 
 |  * A magic pathspec ":/" tells a command that limits its operation to | 
 |    the current directory when ran from a subdirectory to work on the | 
 |    entire working tree. In general, ":/path/to/file" would be relative | 
 |    to the root of the working tree hierarchy. | 
 |  | 
 |    After "git reset --hard; edit Makefile; cd t/", "git add -u" would | 
 |    be a no-op, but "git add -u :/" would add the updated contents of | 
 |    the Makefile at the top level. If you want to name a path in the | 
 |    current subdirectory whose unusual name begins with ":/", you can | 
 |    name it by "./:/that/path" or by "\:/that/path". | 
 |  | 
 |  * "git blame" learned "--abbrev[=<n>]" option to control the minimum | 
 |    number of hexdigits shown for commit object names. | 
 |  | 
 |  * "git blame" learned "--line-porcelain" that is less efficient but is | 
 |    easier to parse. | 
 |  | 
 |  * Aborting "git commit --interactive" discards updates to the index | 
 |    made during the interactive session. | 
 |  | 
 |  * "git commit" learned a "--patch" option to directly jump to the | 
 |    per-hunk selection UI of the interactive mode. | 
 |  | 
 |  * "git diff" and its family of commands learned --dirstat=0 to show | 
 |    directories that contribute less than 0.1% of changes. | 
 |  | 
 |  * "git diff" and its family of commands learned --dirstat=lines mode to | 
 |    assess damage to the directory based on number of lines in the patch | 
 |    output, not based on the similarity numbers. | 
 |  | 
 |  * "git format-patch" learned "--quiet" option to suppress the output of | 
 |    the names of generated files. | 
 |  | 
 |  * "git format-patch" quotes people's names when it has RFC822 special | 
 |    characters in it, e.g. "Junio C. Hamano" <jch@example.com>.  Earlier | 
 |    it was up to the user to do this when using its output. | 
 |  | 
 |  * "git format-patch" can take an empty --subject-prefix now. | 
 |  | 
 |  * "git grep" learned the "-P" option to take pcre regular expressions. | 
 |  | 
 |  * "git log" and friends learned a new "--notes" option to replace the | 
 |    "--show-notes" option.  Unlike "--show-notes", "--notes=<ref>" does | 
 |    not imply showing the default notes. | 
 |  | 
 |  * They also learned a log.abbrevCommit configuration variable to augment | 
 |    the --abbrev-commit command line option. | 
 |  | 
 |  * "git ls-remote" learned "--exit-code" option to consider it a | 
 |    different kind of error when no remote ref to be shown. | 
 |  | 
 |  * "git merge" learned "-" as a short-hand for "the previous branch", just | 
 |    like the way "git checkout -" works. | 
 |  | 
 |  * "git merge" uses "merge.ff" configuration variable to decide to always | 
 |    create a merge commit (i.e. --no-ff, aka merge.ff=no), refuse to create | 
 |    a merge commit (i.e. --ff-only, aka merge.ff=only). Setting merge.ff=yes | 
 |    (or not setting it at all) restores the default behaviour of allowing | 
 |    fast-forward to happen when possible. | 
 |  | 
 |  * p4-import (from contrib) learned a new option --preserve-user. | 
 |  | 
 |  * "git read-tree -m" learned "--dry-run" option that reports if a merge | 
 |    would fail without touching the index nor the working tree. | 
 |  | 
 |  * "git rebase" that does not specify on top of which branch to rebase | 
 |    the current branch now uses @{upstream} of the current branch. | 
 |  | 
 |  * "git rebase" finished either normally or with --abort did not | 
 |    update the reflog for HEAD to record the event to come back to | 
 |    where it started from. | 
 |  | 
 |  * "git remote add -t only-this-branch --mirror=fetch" is now allowed. Earlier | 
 |    a fetch-mode mirror meant mirror everything, but now it only means refs are | 
 |    not renamed. | 
 |  | 
 |  * "git rev-list --count" used with "--cherry-mark" counts the cherry-picked | 
 |    commits separately, producing more a useful output. | 
 |  | 
 |  * "git submodule update" learned "--force" option to get rid of local | 
 |    changes in submodules and replace them with the up-to-date version. | 
 |  | 
 |  * "git status" and friends ignore .gitmodules file while the file is | 
 |    still in a conflicted state during a merge, to avoid using information | 
 |    that is not final and possibly corrupt with conflict markers. | 
 |  | 
 | Also contains various documentation updates and minor miscellaneous | 
 | changes. | 
 |  | 
 |  | 
 | Fixes since v1.7.5 | 
 | ------------------ | 
 |  | 
 | Unless otherwise noted, all the fixes in 1.7.5.X maintenance track are | 
 | included in this release. | 
 |  | 
 |  * "git config" used to choke with an insanely long line. | 
 |    (merge ef/maint-strbuf-init later) | 
 |  | 
 |  * "git diff --quiet" did not work well with --diff-filter. | 
 |    (merge jk/diff-not-so-quick later) | 
 |  | 
 |  * "git status -z" did not default to --porcelain output format. | 
 |    (merge bc/maint-status-z-to-use-porcelain later) |