Merge branch 'jk/revision-walk-stop-at-max-count'
[gitweb.git] / Documentation / RelNotes / 1.7.12.txt
index 0c64700c3653a60b1050c82ecbba37032a4272d5..d5a522d915833d76d1fe55b0b977e9418d6d6c7d 100644 (file)
@@ -6,6 +6,15 @@ Updates since v1.7.11
 
 UI, Workflows & Features
 
+ * Git can be told to normalize pathnames it read from readdir(3) and
+   all arguments it got from the command line into precomposed UTF-8
+   (assuming that they come as decomposed UTF-8), in order to work
+   around issues on Mac OS.
+
+   I think there still are other places that need conversion
+   (e.g. paths that are read from stdin for some commands), but this
+   should be a good first step in the right direction.
+
  * Per-user $HOME/.gitconfig file can optionally be stored in
    $HOME/.config/git/config instead, which is in line with XDG.
 
@@ -13,6 +22,9 @@ UI, Workflows & Features
    $HOME/.config/attributes and $HOME/.config/ignore respectively when
    these files exist.
 
+ * "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.
+
  * Scripted Porcelain writers now have access to the credential API via
    the "git credential" plumbing command.
 
@@ -42,6 +54,9 @@ UI, Workflows & Features
    default location where the build procedure installs them locally;
    the variable can even point at a http:// URL.
 
+ * "git rebase [-i] --root $tip" can now be used to rewrite all the
+   history leading to "$tip" down to the root commit.
+
  * "git rebase -i" learned "-x <cmd>" to insert "exec <cmd>" after
    each commit in the resulting history.
 
@@ -59,6 +74,14 @@ UI, Workflows & Features
 
 Foreign Interface
 
+ * "mediawiki" remote helper (in contrib/) learned to handle file
+   attachments.
+
+ * "git p4" now uses "Jobs:" and "p4 move" when appropriate.
+
+ * vcs-svn has been updated to clean-up compilation, lift 32-bit
+   limitations, etc.
+
 
 Performance, Internal Implementation, etc. (please report possible regressions)
 
@@ -67,6 +90,11 @@ Performance, Internal Implementation, etc. (please report possible regressions)
  * We no longer use AsciiDoc7 syntax in our documentation and favor a
    more modern style.
 
+ * "git am --rebasing" codepath was taught to grab authorship, log
+   message and the patch text directly out of existing commits.  This
+   will help rebasing commits that have confusing "diff" output in
+   their log messages.
+
  * "git index-pack" and "git pack-objects" use streaming API to read
    from the object store to avoid having to hold a large blob object
    in-core while they are doing their thing.
@@ -86,6 +114,45 @@ 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).