You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
172 lines
7.1 KiB
172 lines
7.1 KiB
Git v1.7.12 Release Notes |
|
========================= |
|
|
|
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. |
|
|
|
* The value of core.attributesfile and core.excludesfile default to |
|
$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. |
|
|
|
* "git help" used to always default to "man" format even on platforms |
|
where "man" viewer is not widely available. |
|
|
|
* "git clone --local $path" started its life as an experiment to |
|
optionally use link/copy when cloning a repository on the disk, but |
|
we didn't deprecate it after we made the option a no-op to always |
|
use the optimization. The command learned "--no-local" option to |
|
turn this off, as a more explicit alternative over use of file:// |
|
URL. |
|
|
|
* "git fetch" and friends used to say "remote side hung up |
|
unexpectedly" when they failed to get response they expect from the |
|
other side, but one common reason why they don't get expected |
|
response is that the remote repository does not exist or cannot be |
|
read. The error message in this case was updated to give better |
|
hints to the user. |
|
|
|
* git native protocol agents learned to show software version over |
|
the wire, so that the server log can be examined to see the vintage |
|
distribution of clients. |
|
|
|
* "git help -w $cmd" can show HTML version of documentation for |
|
"git-$cmd" by setting help.htmlpath to somewhere other than the |
|
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. |
|
|
|
* "git status" gives finer classification to various states of paths |
|
in conflicted state and offer advice messages in its output. |
|
|
|
* "git submodule" learned to deal with nested submodule structure |
|
where a module is contained within a module whose origin is |
|
specified as a relative URL to its superproject's origin. |
|
|
|
* A rather heavy-ish "git completion" script has been split to create |
|
a separate "git prompting" script, to help lazy-autoloading of the |
|
completion part while making prompting part always available. |
|
|
|
|
|
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) |
|
|
|
* Some tests showed false failures caused by a bug in ecryptofs. |
|
|
|
* 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. |
|
|
|
* Code to match paths with exclude patterns learned to avoid calling |
|
fnmatch() by comparing fixed leading substring literally when |
|
possible. |
|
|
|
|
|
Also contains minor documentation updates and code clean-ups. |
|
|
|
|
|
Fixes since v1.7.11 |
|
------------------- |
|
|
|
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).
|
|
|