| 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/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. |
| |
| * 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. |
| |
| * "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 |
| |
| * "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. |
| |
| * "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. |
| |
| |
| 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). |
| |
| * "git grep" stopped spawning an external "grep" long time ago, but a |
| duplicated test to check internal and external "grep" was left |
| behind. |
| (merge 4ca9453 rj/maint-grep-remove-redundant-test later to maint). |
| |
| * The code to avoid mistaken attempt to add the object directory |
| itself as its own alternate could read beyond end of a string while |
| comparison. |
| (merge cb2912c hv/link-alt-odb-entry 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 commit --amend" let the user edit the log message and then died |
| when the human-readable committer name was given insufficiently by |
| getpwent(3). |