Documentation / RelNotes / 1.7.6.txton commit Merge branch 'maint' (6741c2e)
   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.
  10
  11 * Similar to branch names, tagnames that begin with "-" are now
  12   disallowed.
  13
  14 * Clean-up of the C part of i18n (but not l10n---please wait)
  15   continues.
  16
  17 * The scripting part of the codebase is getting prepared for i18n/l10n.
  18
  19 * Processes spawned by "[alias] <name> = !process" in the configuration
  20   can inspect GIT_PREFIX environment variable to learn where in the
  21   working tree the original command was invoked.
  22
  23 * A magic pathspec ":/" tells a command that limits its operation to
  24   the current directory when ran from a subdirectory to work on the
  25   entire working tree. In general, ":/path/to/file" would be relative
  26   to the root of the working tree hierarchy.
  27
  28   After "git reset --hard; edit Makefile; cd t/", "git add -u" would
  29   be a no-op, but "git add -u :/" would add the updated contents of
  30   the Makefile at the top level. If you want to name a path in the
  31   current subdirectory whose unusual name begins with ":/", you can
  32   name it by "./:/that/path" or by "\:/that/path".
  33
  34 * "git blame" learned "--abbrev[=<n>]" option to control the minimum
  35   number of hexdigits shown for commit object names.
  36
  37 * "git blame" learned "--line-porcelain" that is less efficient but is
  38   easier to parse.
  39
  40 * Aborting "git commit --interactive" discards updates to the index
  41   made during the interctive session.
  42
  43 * "git commit" learned a "--patch" option to directly jump to the
  44   per-hunk selection UI of the interactive mode.
  45
  46 * "git diff -C -C" used to disable the rename detection entirely when
  47   there are too many copy candidate paths in the tree; now it falls
  48   back to "-C" when doing so would keep the copy candidate paths
  49   under the rename detection limit.
  50
  51 * "git diff" and its family of commands learned --dirstat=0 to show
  52   directories that contribute less than 0.1% of changes.
  53
  54 * "git diff" and its family of commands learned --dirstat=lines mode to
  55   assess damage to the directory based on number of lines in the patch
  56   output, not based on the similarity numbers.
  57
  58 * "git format-patch" learned "--quiet" option to suppress the output of
  59   the names of generated files.
  60
  61 * "git format-patch" quotes people's names when it has RFC822 special
  62   characters in it, e.g. "Junio C. Hamano" <jch@example.com>.  Earlier
  63   it was up to the user to do this when using its output.
  64
  65 * "git log" and friends learned a new "--notes" option to replace the
  66   "--show-notes" option.  Unlike "--show-notes", "--notes=<ref>" does
  67   not imply showing the default notes.
  68
  69 * "git ls-remote" learned "--exit-code" option to consider it a
  70   different kind of error when no remote ref to be shown.
  71
  72 * "git merge" learned "-" as a short-hand for "the previous branch", just
  73   like the way "git checkout -" works.
  74
  75 * "git merge" uses "merge.ff" configuration variable to decide to always
  76   create a merge commit (i.e. --no-ff, aka merge.ff=no), refuse to create
  77   a merge commit (i.e. --ff-only, aka merge.ff=only). Setting merge.ff=yes
  78   (or not setting it at all) restores the default behaviour of allowing
  79   fast-forward to happen when possible.
  80
  81 * p4-import (from contrib) learned a new option --preserve-user.
  82
  83 * "git rebase" that does not specify on top of which branch to rebase
  84   the current branch now uses @{upstream} of the current branch.
  85
  86 * "git rev-list --count" used with "--cherry-mark" counts the cherry-picked
  87   commits separately, producing more a useful output.
  88
  89 * "git submodule update" learned "--force" option to get rid of local
  90   changes in submodules and replace them with the up-to-date version.
  91
  92 * "git status" and friends ignore .gitmodules file while the file is
  93   still in a conflicted state during a merge, to avoid using information
  94   that is not final and possibly corrupt with conflict markers.
  95
  96 * Compressed tarball gitweb generates is made without the timestamp of
  97   the tarball generation; snapshot from the same tree should result in
  98   a same tarball.
  99
 100Also contains various documentation updates and minor miscellaneous
 101changes.
 102
 103
 104Fixes since v1.7.5
 105------------------
 106
 107Unless otherwise noted, all the fixes in 1.7.5.X maintenance track are
 108included in this release.
 109
 110 * Setting $(prefix) in config.mak did not affect where etc/gitconfig
 111   file is read from, even though passing it from the command line of
 112   $(MAKE) did.
 113   (merge kk/maint-prefix-in-config-mak later)
 114
 115 * The bash completion scripts should correctly work using zsh's bash
 116   completion emulation layer now.
 117   (merge fc/completion-zsh later)
 118
 119 * The logic to handle "&" (expand to UNIX username) in GECOS field
 120   miscounted the length of the name it formatted.
 121   (merge rg/copy-gecos-username later)
 122
 123 * The single-key mode of "git add -p" was easily fooled into thinking
 124   that it was told to add everthing ('a') when up-arrow was pressed by
 125   mistake.
 126   (merge tr/add-i-no-escape later)
 127
 128 * "git cherry-pick -s resolve" failed to cherry-pick a root commit.
 129   (merge jk/cherry-pick-root-with-resolve later)
 130
 131 * "git config" used to choke with an insanely long line.
 132   (merge ef/maint-strbuf-init later)
 133
 134 * "git diff --word-diff" misbehaved when diff.suppress-blank-empty was
 135   in effect.
 136   (merge jm/maint-diff-words-with-sbe later)
 137
 138 * "git log --stdin path" with an input that has additional pathspec
 139   used to corrupt memory.
 140   (merge jc/maint-pathspec-stdin-and-cmdline later)
 141
 142 * "git send-pack" (hence "git push") over smalt-HTTP protocol could
 143   deadlock when the client side pack-object died early.
 144   (merge js/maint-send-pack-stateless-rpc-deadlock-fix later)
 145   (merge jk/git-connection-deadlock-fix later)
 146
 147---
 148exec >/var/tmp/1
 149echo O=$(git describe master)
 150O=v1.7.5.2-352-g4961210
 151git shortlog --no-merges ^maint ^$O master