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.
$HOME/.config/attributes and $HOME/.config/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.
+
* Scripted Porcelain writers now have access to the credential API via
the "git credential" plumbing command.
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.
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)
* 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.
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.
+
Also contains minor documentation updates and code clean-ups.
releases are contained in this release (see release notes to them for
details).
- * 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).
+ * 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).
- * "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).
+ * 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).
- * 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).
+ * 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).