9c72084ff928e76b7cd8ef8823bbff6e80ab8a18
   1Git v1.7.5 Release Notes (draft)
   2========================
   3
   4Updates since v1.7.4
   5--------------------
   6
   7 * Various MinGW portability fixes.
   8
   9 * Various git-p4 enhancements (in contrib).
  10
  11 * Various vcs-svn enhancements.
  12
  13 * Various git-gui updates (0.14.0).
  14
  15 * Update to more modern HP-UX port.
  16
  17 * The codebase is getting prepared for i18n/l10n; no translated
  18   strings nor translation mechanism in the code yet, but the strings
  19   are being marked for l10n.
  20
  21 * The bash completion script can now complete symmetric difference
  22   for "git diff" command, e.g. "git diff ...bra<TAB>".
  23
  24 * The default minimum length of abbreviated and unique object names
  25   can now be configured by setting the core.abbrev configuration
  26   variable.
  27
  28 * "git apply -v" reports offset lines when the patch does not apply at
  29   the exact location recorded in the diff output.
  30
  31 * "git config" used to be also known as "git repo-config", but the old
  32   name is now officially deprecated.
  33
  34 * "git checkout --detach <commit>" is a more user friendly synonym for
  35   "git checkout <commit>^0".
  36
  37 * "git checkout" performed on detached HEAD gives a warning and
  38   advice when the commit being left behind will become unreachable from
  39   any branch or tag.
  40
  41 * "git cherry-pick" and "git revert" can be told to use a custom merge
  42   strategy, similar to "git rebase".
  43
  44 * "git cherry-pick" remembers which commit failed to apply when it is
  45   stopped by conflicts, making it unnecessary to use "commit -c $commit"
  46   to conclude it.
  47
  48 * "git cvsimport" bails out immediately when the cvs server cannot be
  49   reached, without spewing unnecessary error messages that complain about
  50   the server response it never got.
  51
  52 * "git fetch" vs "git upload-pack" transfer learned 'no-done'
  53   protocol extension to save one round-trip after the content
  54   negotiation is done. This saves one HTTP RPC, reducing the overall
  55   latency for a trivial fetch.
  56
  57 * "git grep -f <filename>" learned to treat "-" as "read from the
  58   standard input stream".
  59
  60 * "git grep --no-index" did not honor pathspecs correctly, returning
  61   paths outside the specified area.
  62
  63 * "git init" learned the --separate-git-dir option to allow the git
  64   directory for a new repository created elsewhere and linked via the
  65   gitdir mechanism. This is primarily to help submodule support later
  66   to switch between a branch of superproject that has the submodule
  67   and another that does not.
  68
  69 * "git log" type commands now understand globbing pathspecs.  You
  70   can say "git log -- '*.txt'" for example.
  71
  72 * "git log" family of commands learned --cherry and --cherry-mark
  73   options that can be used to view two diverged branches while omitting
  74   or highlighting equivalent changes that appear on both sides of a
  75   symmetric difference (e.g. "log --cherry A...B").
  76
  77 * A lazy "git merge" that didn't say what to merge used to be an error.
  78   When run on a branch that has an upstream defined, however, the command
  79   now merges from the configured upstream.
  80
  81 * "git mergetool" learned how to drive "beyond compare 3" as well.
  82
  83 * "git rerere forget" without pathspec used to forget all the saved
  84   conflicts that relate to the current merge; it now requires you to
  85   give it pathspecs.
  86
  87 * "git rev-list --objects $revs -- $pathspec" now limits the objects listed
  88   in its output properly with the pathspec, in preparation for narrow
  89   clones.
  90
  91 * "git push" with no parameters gives better advice messages when
  92   "tracking" is used as the push.default semantics or there is no remote
  93   configured yet.
  94
  95 * "git rerere" learned a new subcommand "remaining" that is similar to
  96   "status" and lists the paths that had conflicts which are known to
  97   rerere, but excludes the paths that have already been marked as
  98   resolved in the index from its output.  "git mergetool" has been
  99   updated to use this facility.
 100
 101 * A possible value to the "push.default" configuration variable,
 102   'tracking', gained a synonym that more naturally describes what it
 103   does, 'upstream'.
 104
 105Also contains various documentation updates.
 106
 107
 108Fixes since v1.7.4
 109------------------
 110
 111All of the fixes in the v1.7.4.X maintenance series are included in this
 112release, unless otherwise noted.
 113
 114 * "git fetch" from a client that is mostly following the remote
 115   needlessly told all of its refs to the server for both sides to
 116   compute the set of objects that need to be transferred efficiently,
 117   instead of stopping when the server heard enough. In a project with
 118   many tags, this turns out to be extremely wasteful, especially over
 119   the smart HTTP transport (sp/maint-{upload,fetch}-pack-stop-early~1).
 120
 121 * "git fetch" run from a repository that uses the same repository as
 122   its alternate object store as the repository it is fetching from
 123   did not tell the server that it already has access to objects
 124   reachable from the refs in their common alternate object store,
 125   causing it to fetch unnecessary objects (jc/maint-fetch-alt).
 126
 127 * "git pull" into an empty branch should have behaved as if
 128   fast-forwarding from emptiness to the version being pulled, with
 129   the usual protection against overwriting untracked files (need to
 130   cherry-pick 4b3ffe5).
 131
 132---
 133exec >/var/tmp/1
 134O=v1.7.5-rc0-99-g8f84c95
 135echo O=$(git describe 'master')
 136git shortlog --no-merges ^maint ^$O master