Documentation / RelNotes / 1.7.5.txton commit Merge branches 'sp/maint-fetch-pack-stop-early' and 'sp/maint-upload-pack-stop-early' (2eee139)
   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/translatable
  18   strings in the code yet.
  19
  20 * The bash completion script can now complete symmetric difference
  21   for "git diff" command, e.g. "git diff ...bra<TAB>".
  22
  23 * The default minimum length of abbreviated and unique object names
  24   can now be configured by setting the core.abbrev configuration
  25   variable.
  26
  27 * "git apply -v" reports offset lines when the patch does not apply at
  28   the exact location recorded in the diff output.
  29
  30 * "git branch --track" (and "git checkout --track --branch") used to
  31   allow setting up a random non-branch that does not make sense to follow
  32   as the "upstream".  The command correctly diagnoses it as an error.
  33
  34 * "git config" used to be also known as "git repo-config", but the old
  35   name is now officially deprecated.
  36
  37 * "git checkout --detach <commit>" is a more user friendly synonym for
  38   "git checkout <commit>^0".
  39
  40 * "git checkout" performed on detached HEAD gives a warning and
  41   advice when the commit being left behind will become unreachable from
  42   any branch or tag.
  43
  44 * "git cherry-pick" and "git revert" can be told to use a custom merge
  45   strategy, similar to "git rebase".
  46
  47 * "git cherry-pick" remembers which commit failed to apply when it is
  48   stopped by conflicts, making it unnecessary to use "commit -c $commit"
  49   to conclude it.
  50
  51 * "git cvsimport" bails out immediately when the cvs server cannot be
  52   reached, without spewing unnecessary error messages that complain about
  53   the server response it never got.
  54
  55 * "git fetch" vs "git upload-pack" transfer learned 'no-done'
  56   protocol extension to save one round-trip after the content
  57   negotiation is done. This saves one HTTP RPC, reducing the overall
  58   latency for a trivial fetch.
  59
  60 * "git grep -f <filename>" learned to treat "-" as "read from the
  61   standard input stream".
  62
  63 * "git grep --no-index" did not honor pathspecs correctly, returning
  64   paths outside the specified area.
  65
  66 * "git log" type commands now understand globbing pathspecs.  You
  67   can say "git log -- '*.txt'" for example.
  68
  69 * "git log" family of commands learned --cherry and --cherry-mark
  70   options that can be used to view two diverged branches while omitting
  71   or highlighting equivalent changes that appear on both sides of a
  72   symmetric difference (e.g. "log --cherry A...B").
  73
  74 * "git mergetool" learned how to drive "beyond compare 3" as well.
  75
  76 * "git rerere forget" without pathspec used to forget all the saved
  77   conflicts that relate to the current merge; it now requires you to
  78   give it pathspecs.
  79
  80 * "git rev-list --objects $revs -- $pathspec" now limits the objects listed
  81   in its output properly with the pathspec, in preparation for narrow
  82   clones.
  83
  84 * "git push" with no parameters gives better advice messages when
  85   "tracking" is used as the push.default semantics or there is no remote
  86   configured yet.
  87
  88 * "git rerere" learned a new subcommand "remaining" that is similar to
  89   "status" and lists the paths that had conflicts which are known to
  90   rerere, but excludes the paths that have already been marked as
  91   resolved in the index from its output.  "git mergetool" has been
  92   updated to use this facility.
  93
  94 * A possible value to the "push.default" configuration variable,
  95   'tracking', gained a synonym that more naturally describes what it
  96   does, 'upstream'.
  97
  98Also contains various documentation updates.
  99
 100
 101Fixes since v1.7.4
 102------------------
 103
 104All of the fixes in the v1.7.4.X maintenance series are included in this
 105release, unless otherwise noted.
 106
 107 * "git apply" used to confuse lines updated by previous hunks as lines
 108   that existed before when applying a hunk, contributing misapplication
 109   of patches with offsets.
 110
 111 * "git checkout $other_branch" silently removed untracked symbolic links
 112   in the working tree that are in the way in order to check out paths
 113   under it from the named branch (js/checkout-untracked-symlink).
 114
 115 * "git diff --quiet" did not work very well with the "--diff-filter"
 116   option (jc/maint-diff-q-filter).
 117
 118 * "git fetch" from a client that is mostly following the remote
 119   needlessly told all of its refs to the server for both sides to
 120   compute the set of objects that need to be transferred efficiently,
 121   instead of stopping when the server heard enough. In a project with
 122   many tags, this turns out to be extremely wasteful, especially over
 123   the smart HTTP transport (sp/maint-{upload,fetch}-pack-stop-early~1).
 124
 125 * "git fetch" run from a repository that uses the same repository as
 126   its alternate object store as the repository it is fetching from
 127   did not tell the server that it already has access to objects
 128   reachable from the refs in their common alternate object store,
 129   causing it to fetch unnecessary objects (jc/maint-fetch-alt).
 130
 131 * "git stash apply" reported the result of its operation by running
 132   "git status" from the top-level of the working tree; it should (and
 133   now does) run it from the user's working directory
 134   (pk/stash-apply-status-relative).
 135
 136---
 137exec >/var/tmp/1
 138O=v1.7.4.2-405-gbf0c5bb
 139echo O=$(git describe 'master')
 140git shortlog --no-merges ^maint ^$O master