Git 1.7.5-rc0
[gitweb.git] / Documentation / RelNotes / 1.7.5.txt
index bb0eb40af45350aa5b4ea0c200125d186cb23ead..648dbfd908d02d0c3a3c9a66330be02c0f4f7b32 100644 (file)
@@ -10,8 +10,20 @@ Updates since v1.7.4
 
  * Various vcs-svn enhancements.
 
+ * Various git-gui updates (0.14.0).
+
  * Update to more modern HP-UX port.
 
+ * The codebase is getting prepared for i18n/l10n; no translated/translatable
+   strings in the code yet.
+
+ * The bash completion script can now complete symmetric difference
+   for "git diff" command, e.g. "git diff ...bra<TAB>".
+
+ * The default minimum length of abbreviated and unique object names
+   can now be configured by setting the core.abbrev configuration
+   variable.
+
  * "git apply -v" reports offset lines when the patch does not apply at
    the exact location recorded in the diff output.
 
@@ -40,12 +52,31 @@ Updates since v1.7.4
    reached, without spewing unnecessary error messages that complain about
    the server response it never got.
 
+ * "git fetch" vs "git upload-pack" transfer learned 'no-done'
+   protocol extension to save one round-trip after the content
+   negotiation is done. This saves one HTTP RPC, reducing the overall
+   latency for a trivial fetch.
+
+ * "git grep -f <filename>" learned to treat "-" as "read from the
+   standard input stream".
+
  * "git grep --no-index" did not honor pathspecs correctly, returning
    paths outside the specified area.
 
  * "git log" type commands now understand globbing pathspecs.  You
    can say "git log -- '*.txt'" for example.
 
+ * "git log" family of commands learned --cherry and --cherry-mark
+   options that can be used to view two diverged branches while omitting
+   or highlighting equivalent changes that appear on both sides of a
+   symmetric difference (e.g. "log --cherry A...B").
+
+ * "git mergetool" learned how to drive "beyond compare 3" as well.
+
+ * "git rerere forget" without pathspec used to forget all the saved
+   conflicts that relate to the current merge; it now requires you to
+   give it pathspecs.
+
  * "git rev-list --objects $revs -- $pathspec" now limits the objects listed
    in its output properly with the pathspec, in preparation for narrow
    clones.
@@ -73,11 +104,6 @@ Fixes since v1.7.4
 All of the fixes in the v1.7.4.X maintenance series are included in this
 release, unless otherwise noted.
 
- * We used to keep one file descriptor open for each and every packfile
-   that we have a mmap window on it (read: "in use"), even when for very
-   tiny packfiles.  We now close the file descriptor early when the entire
-   packfile fits inside one mmap window.
-
  * "git apply" used to confuse lines updated by previous hunks as lines
    that existed before when applying a hunk, contributing misapplication
    of patches with offsets.
@@ -86,12 +112,29 @@ release, unless otherwise noted.
    in the working tree that are in the way in order to check out paths
    under it from the named branch (js/checkout-untracked-symlink).
 
- * "git submodule update" used to honor the --merge/--rebase option (or
-   corresponding configuration variables) even for a newly cloned
-   subproject, which made no sense (so/submodule-no-update-first-time).
+ * "git diff --quiet" did not work very well with the "--diff-filter"
+   option (jc/maint-diff-q-filter).
+
+ * "git fetch" from a client that is mostly following the remote
+   needlessly told all of its refs to the server for both sides to
+   compute the set of objects that need to be transferred efficiently,
+   instead of stopping when the server heard enough. In a project with
+   many tags, this turns out to be extremely wasteful, especially over
+   the smart HTTP transport (sp/maint-{upload,fetch}-pack-stop-early~1).
+
+ * "git fetch" run from a repository that uses the same repository as
+   its alternate object store as the repository it is fetching from
+   did not tell the server that it already has access to objects
+   reachable from the refs in their common alternate object store,
+   causing it to fetch unnecessary objects (jc/maint-fetch-alt).
+
+ * "git stash apply" reported the result of its operation by running
+   "git status" from the top-level of the working tree; it should (and
+   now does) run it from the user's working directory
+   (pk/stash-apply-status-relative).
 
 ---
 exec >/var/tmp/1
-O=v1.7.4.1-291-g01de349
+O=v1.7.5-rc0
 echo O=$(git describe 'master')
 git shortlog --no-merges ^maint ^$O master