Merge branch 'rj/maint-grep-remove-redundant-test'
[gitweb.git] / Documentation / RelNotes / 1.7.12.txt
index d5a522d915833d76d1fe55b0b977e9418d6d6c7d..4de5b6611c16d90576aedf4925409ac809215ffd 100644 (file)
@@ -19,8 +19,14 @@ UI, Workflows & Features
    $HOME/.config/git/config instead, which is in line with XDG.
 
  * The value of core.attributesfile and core.excludesfile default to
-   $HOME/.config/attributes and $HOME/.config/ignore respectively when
-   these files exist.
+   $HOME/.config/git/attributes and $HOME/.config/git/ignore respectively
+   when these files exist.
+
+ * Logic to disambiguate abbreviated object names have been taught to
+   take advantage of object types that are expected in the context,
+   e.g. XXXXXX in the "git describe" output v1.2.3-gXXXXXX must be a
+   commit object, not a blob nor a tree.  This will help us prolong
+   the lifetime of abbreviated object names.
 
  * "git apply" learned to wiggle the base version and perform three-way
    merge when a patch does not exactly apply to the version you have.
@@ -71,6 +77,10 @@ UI, Workflows & Features
    a separate "git prompting" script, to help lazy-autoloading of the
    completion part while making prompting part always available.
 
+ * "gitweb" pays attention to various forms of credits that are
+   similar to "Signed-off-by:" lines in the commit objects and
+   highlights them accordingly.
+
 
 Foreign Interface
 
@@ -103,6 +113,12 @@ Performance, Internal Implementation, etc. (please report possible regressions)
    fnmatch() by comparing fixed leading substring literally when
    possible.
 
+ * "git log -n 1 -- rarely-touched-path" was spending unnecessary
+   cycles after showing the first change to find the next one, only to
+   discard it.
+
+ * "git svn" got a large-looking code reorganization at the last
+   minute before the code freeze.
 
 Also contains minor documentation updates and code clean-ups.
 
@@ -114,59 +130,55 @@ Unless otherwise noted, all the fixes since v1.7.11 in the maintenance
 releases are contained in this release (see release notes to them for
 details).
 
- * The error message from "git push $there :bogo" (and its equivalent
-   "git push $there --delete bogo") mentioned that we tried and failed
-   to guess what ref is being deleted based on the LHS of the refspec,
-   which we don't.
-   (merge 5742c82 jk/push-delete-ref-error-message later to maint).
-
- * A handful of files and directories we create had tighter than
-   necessary permission bits when the user wanted to have group
-   writability (e.g. by setting "umask 002").
-   (merge 6ff2b72 ar/clone-honor-umask-at-top later to maint).
-
- * "commit --amend" used to refuse amending a commit with an empty log
-   message, with or without "--allow-empty-message".
-   (merge d9a9357 cw/amend-commit-without-message later to maint).
-
- * "git commit --amend --only --" was meant to allow "Clever" people to
-   rewrite the commit message without making any change even when they
-   have already changes for the next commit added to their index, but
-   it never worked as advertised since it was introduced in 1.3.0 era.
-   (merge ea2d4ed jk/maint-commit-amend-only-no-paths later to maint).
-
- * Even though the index can record pathnames longer than 1<<12 bytes,
-   in some places we were not comparing them in full, potentially
-   replacing index entries instead of adding.
-   (merge d5f5333 tg/maint-cache-name-compare later to maint).
-
- * "git show"'s auto-walking behaviour was an unreliable and
-   unpredictable hack; it now behaves just like "git log" does when it
-   walks.
-   (merge c5941f1 tr/maint-show-walk later to maint).
-
- * "git diff", "git status" and anything that internally uses the
-   comparison machinery was utterly broken when the difference
-   involved a file with "-" as its name.  This was due to the way "git
-   diff --no-index" was incorrectly bolted on to the system, making
-   any comparison that involves a file "-" at the root level
-   incorrectly read from the standard input.
-   (merge 4682d85 jc/refactor-diff-stdin later to maint).
-
- * We did not have test to make sure "git rebase" without extra options
-   filters out an empty commit in the original history.
-   (merge 2b5ba7b mz/empty-rebase-test later to maint).
-
- * "git fast-export" produced an input stream for fast-import without
-   properly quoting pathnames when they contain SPs in them.
-   (merge ff59f6d js/fast-export-paths-with-spaces later to maint).
-
- * "git checkout --detach", when you are still on an unborn branch,
-   should be forbidden, but it wasn't.
-   (merge 8ced1aa cw/no-detaching-an-unborn later to maint).
-
- * Some implementations of Perl terminates "lines" with CRLF even when
-   the script is operating on just a sequence of bytes.  Make sure to
-   use "$PERL_PATH", the version of Perl the user told Git to use, in
-   our tests to avoid unnecessary breakages in tests.
-   (merge ad78585 vr/use-our-perl-in-tests later to maint).
+ * "git checkout <branchname>" to come back from a detached HEAD state
+   incorrectly computed reachability of the detached HEAD, resulting
+   in unnecessary warnings.
+   (merge add416a jk/maint-checkout-orphan-check-fix later to maint).
+
+ * The documentation for revision range specifiers (e.g. A..B, A^@)
+   has been updated.
+   (merge ca5ee2d mh/maint-revisions-doc later to maint).
+
+ * "git submodule add" was confused when the superproject did not have
+   its repository in its usual place in the working tree and GIT_DIR
+   and GIT_WORK_TREE was used to access it.
+
+ * "git mergetool" did not support --tool-help option to give the list
+   of supported backends, like "git difftool" does.
+   (merge 109859e jc/mergetool-tool-help later to maint).
+
+ * "$GIT_DIR/COMMIT_EDITMSG" file that is used to hold the commit log
+   message user edits was not documented.
+   (merge 41f597d jk/maint-commit-document-editmsg later to maint).
+
+ * "git commit --amend" let the user edit the log message and then died
+   when the human-readable committer name was given insufficiently by
+   getpwent(3).
+   (merge f20f387 jk/maint-commit-check-committer-early later to maint).
+
+ * The advise() function did not use varargs correctly to format
+   its message.
+   (merge 447b99c jk/maint-advise-vaddf later to maint).
+
+ * "git commit-tree" learned a more natural "-p <parent> <tree>" order
+   of arguments long time ago, but recently forgot it by mistake.
+   (merge 4b7518a kk/maint-commit-tree later to maint).
+
+ * "git diff --no-ext-diff" did not output anything for a typechange
+   filepair when GIT_EXTERNAL_DIFF is in effect.
+   (merge c12f82a jv/maint-no-ext-diff later to maint).
+
+ * When "git am" failed, old timers knew to check .git/rebase-apply/patch
+   to see what went wrong, but we never told the users about it.
+   (merge 14bf2d5 pg/maint-1.7.9-am-where-is-patch later to maint).
+
+ * When "git submodule add" clones a submodule repository, it can get
+   confused where to store the resulting submodule repository in the
+   superproject's .git/ directory when there is a symbolic link in the
+   path to the current directory.
+   (merge 6eafa6d jl/maint-1.7.10-recurse-submodules-with-symlink later to maint).
+
+ * In 1.7.9 era, we taught "git rebase" about the raw timestamp format
+   but we did not teach the same trick to "filter-branch", which rolled
+   a similar logic on its own.
+   (merge 44b85e89 jc/maint-filter-branch-epoch-date later to maint).