Merge branch 'ab/push-default-doc-fix'
[gitweb.git] / Documentation / RelNotes / 1.7.5.txt
index 56c3863f04f821b08d8d511d1e5949cadf6e507d..987919c32143f86d7e7b193b002e7d2ea2df8917 100644 (file)
@@ -1,4 +1,4 @@
-Git v1.7.5 Release Notes (draft)
+Git v1.7.5 Release Notes
 ========================
 
 Updates since v1.7.4
@@ -8,32 +8,102 @@ Updates since v1.7.4
 
  * Various git-p4 enhancements (in contrib).
 
+ * Various vcs-svn, git-svn and gitk enhancements and fixes.
+
+ * Various git-gui updates (0.14.0).
+
+ * Update to more modern HP-UX port.
+
+ * The codebase is getting prepared for i18n/l10n; no translated
+   strings nor translation mechanism in the code yet, but the strings
+   are being marked for l10n.
+
+ * 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.
+
  * "git config" used to be also known as "git repo-config", but the old
    name is now officially deprecated.
 
  * "git checkout --detach <commit>" is a more user friendly synonym for
    "git checkout <commit>^0".
 
- * "git cherry-pick" and "git revert" can be told to use custom merge
+ * "git checkout" performed on detached HEAD gives a warning and
+   advice when the commit being left behind will become unreachable from
+   any branch or tag.
+
+ * "git cherry-pick" and "git revert" can be told to use a custom merge
    strategy, similar to "git rebase".
 
- * "rev-list --objects $revs -- $pathspec" would limit the objects listed
-   in its output properly with the pathspec, in preparation for narrow
-   clones.
+ * "git cherry-pick" remembers which commit failed to apply when it is
+   stopped by conflicts, making it unnecessary to use "commit -c $commit"
+   to conclude it.
+
+ * "git cvsimport" bails out immediately when the cvs server cannot be
+   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 fetch" can be told to recursively fetch submodules on-demand.
+
+ * "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 init" learned the --separate-git-dir option to allow the git
+   directory for a new repository created elsewhere and linked via the
+   gitdir mechanism. This is primarily to help submodule support later
+   to switch between a branch of superproject that has the submodule
+   and another that does not.
 
- * "git log" family of commands now understand globbing pathspecs.  You
+ * "git log" type commands now understand globbing pathspecs.  You
    can say "git log -- '*.txt'" for example.
 
- * "git rerere" learned a new subcommand "remaining", that is similar to
-   "status" that lists the paths that had conflicts that are known to
-   rerere, but excludes the paths that have already been marked as
-   resolved in the index from its output.  "git mergetool" has been
-   updated to use this facility.
+ * "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").
+
+ * A lazy "git merge" that didn't say what to merge used to be an error.
+   When run on a branch that has an upstream defined, however, the command
+   now merges from the configured upstream.
+
+ * "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.
+
+ * "git push" with no parameters gives better advice messages when
+   "tracking" is used as the push.default semantics or there is no remote
+   configured yet.
 
  * A possible value to the "push.default" configuration variable,
    'tracking', gained a synonym that more naturally describes what it
    does, 'upstream'.
 
+ * "git rerere" learned a new subcommand "remaining" that is similar to
+   "status" and lists the paths that had conflicts which are known to
+   rerere, but excludes the paths that have already been marked as
+   resolved in the index from its output.  "git mergetool" has been
+   updated to use this facility.
+
 Also contains various documentation updates.
 
 
@@ -43,14 +113,20 @@ 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.
 
- * "git merge" triggers prepare-commit-msg hook.  Earlier, only "git
-   commit" to conclude an interrupted merge triggered the hook, leading to
-   an inconsistent overall user experience (js/maint-merge-use-prepare-commit-msg-hook).
-
-
----
-exec >/var/tmp/1
-O=v1.7.4
-O=v1.7.4.1-140-g8978166
-echo O=$(git describe 'master')
-git shortlog --no-merges ^maint ^$O master
+ * "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 remote add --mirror" created a configuration that is suitable for
+   doing both a mirror fetch and a mirror push at the same time, which
+   made little sense.  We now warn and require the command line to specify
+   either --mirror=fetch or --mirror=push.