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