Documentation / RelNotes / 1.7.6.txton commit Merge branch 'jc/magic-pathspec' (8fba5f9)
   1Git v1.7.6 Release Notes (draft)
   2========================
   3
   4Updates since v1.7.5
   5--------------------
   6
   7 * Various git-svn updates.
   8
   9 * Updates the way content tags are handled in gitweb.  Also adds
  10   a UI to choose common timezone for displaying the dates.
  11
  12 * Similar to branch names, tagnames that begin with "-" are now
  13   disallowed.
  14
  15 * Clean-up of the C part of i18n (but not l10n---please wait)
  16   continues.
  17
  18 * The scripting part of the codebase is getting prepared for i18n/l10n.
  19
  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.
  23
  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
  27   time in memory.
  28
  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.
  32
  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.
  37
  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".
  43
  44 * "git blame" learned "--abbrev[=<n>]" option to control the minimum
  45   number of hexdigits shown for commit object names.
  46
  47 * "git blame" learned "--line-porcelain" that is less efficient but is
  48   easier to parse.
  49
  50 * Aborting "git commit --interactive" discards updates to the index
  51   made during the interctive session.
  52
  53 * "git commit" learned a "--patch" option to directly jump to the
  54   per-hunk selection UI of the interactive mode.
  55
  56 * "git diff" and its family of commands learned --dirstat=0 to show
  57   directories that contribute less than 0.1% of changes.
  58
  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.
  62
  63 * "git format-patch" learned "--quiet" option to suppress the output of
  64   the names of generated files.
  65
  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.
  69
  70 * "git format-patch" can take an empty --subject-prefix now.
  71
  72 * "git log" and friends learned a new "--notes" option to replace the
  73   "--show-notes" option.  Unlike "--show-notes", "--notes=<ref>" does
  74   not imply showing the default notes.
  75
  76 * They also learned a log.abbrevCommit configuration variable to augment
  77   the --abbrev-commit command line option.
  78
  79 * "git ls-remote" learned "--exit-code" option to consider it a
  80   different kind of error when no remote ref to be shown.
  81
  82 * "git merge" learned "-" as a short-hand for "the previous branch", just
  83   like the way "git checkout -" works.
  84
  85 * "git merge" uses "merge.ff" configuration variable to decide to always
  86   create a merge commit (i.e. --no-ff, aka merge.ff=no), refuse to create
  87   a merge commit (i.e. --ff-only, aka merge.ff=only). Setting merge.ff=yes
  88   (or not setting it at all) restores the default behaviour of allowing
  89   fast-forward to happen when possible.
  90
  91 * p4-import (from contrib) learned a new option --preserve-user.
  92
  93 * "git read-tree -m" learned "--dry-run" option that reports if a merge
  94   would fail without touching the index nor the working tree.
  95
  96 * "git rebase" that does not specify on top of which branch to rebase
  97   the current branch now uses @{upstream} of the current branch.
  98
  99 * "git rebase" finished either normally or with --abort did not
 100   update the reflog for HEAD to record the event to come back to
 101   where it started from.
 102
 103 * "git remote add -t only-this-branch --mirror=fetch" is now allowed. Earlier
 104   a fetch-mode mirror meant mirror everything, but now it only means refs are
 105   not renamed.
 106
 107 * "git rev-list --count" used with "--cherry-mark" counts the cherry-picked
 108   commits separately, producing more a useful output.
 109
 110 * "git submodule update" learned "--force" option to get rid of local
 111   changes in submodules and replace them with the up-to-date version.
 112
 113 * "git status" and friends ignore .gitmodules file while the file is
 114   still in a conflicted state during a merge, to avoid using information
 115   that is not final and possibly corrupt with conflict markers.
 116
 117Also contains various documentation updates and minor miscellaneous
 118changes.
 119
 120
 121Fixes since v1.7.5
 122------------------
 123
 124Unless otherwise noted, all the fixes in 1.7.5.X maintenance track are
 125included in this release.
 126
 127 * "git config" used to choke with an insanely long line.
 128   (merge ef/maint-strbuf-init later)
 129
 130---
 131exec >/var/tmp/1
 132echo O=$(git describe master)
 133O=v1.7.5.3-365-g7eacc2b
 134git shortlog --no-merges ^maint ^$O master