1Git v1.7.12 Release Notes 2========================= 3 4Updates since v1.7.11 5--------------------- 6 7UI, Workflows & Features 8 9 * "git help" used to always default to "man" format even on platforms 10 where "man" viewer is not widely available. 11 12 * "git clone --local $path" started its life as an experiment to 13 optionally use link/copy when cloning a repository on the disk, but 14 we didn't deprecate it after we made the option a no-op to always 15 use the optimization. The command learned "--no-local" option to 16 turn this off, as a more explicit alternative over use of file:// 17 URL. 18 19 * "git fetch" and friends used to say "remote side hung up 20 unexpectedly" when they failed to get response they expect from the 21 other side, but one common reason why they don't get expected 22 response is that the remote repository does not exist or cannot be 23 read. The error message in this case was updated to give better 24 hints to the user. 25 26 * git native protocol agents learned to show software version over 27 the wire, so that the server log can be examined to see the vintage 28 distribution of clients. 29 30 * "git rebase -i" learned "-x <cmd>" to insert "exec <cmd>" after 31 each commit in the resulting history. 32 33 * "git status" gives finer classification to various states of paths 34 in conflicted state and offer advice messages in its output. 35 36 * "git submodule" learned to deal with nested submodule structure 37 where a module is contained within a module whose origin is 38 specified as a relative URL to its superproject's origin. 39 40 * A rather heavy-ish "git completion" script has been split to create 41 a separate "git prompting" script, to help lazy-autoloading of the 42 completion part while making prompting part always available. 43 44 45Foreign Interface 46 47 48Performance, Internal Implementation, etc. (please report possible regressions) 49 50 * Some tests showed false failures caused by a bug in ecryptofs. 51 52 * We no longer use AsciiDoc7 syntax in our documentation and favor a 53 more modern style. 54 55 * "git index-pack" and "git pack-objects" use streaming API to read 56 from the object store to avoid having to hold a large blob object 57 in-core while they are doing their thing. 58 59 * Code to match paths with exclude patterns learned to avoid calling 60 fnmatch() by comparing fixed leading substring literally when 61 possible. 62 63 64Also contains minor documentation updates and code clean-ups. 65 66 67Fixes since v1.7.11 68------------------- 69 70Unless otherwise noted, all the fixes since v1.7.11 in the maintenance 71releases are contained in this release (see release notes to them for 72details). 73 74 * "git clone --single-branch" to clone a single branch did not limit 75 the cloning to the specified branch. 76 (merge 0ec4b16 nd/clone-single-fix later to maint). 77 78 * "git diff --no-index" did not correctly handle relative paths and 79 did not correctly give exit codes when run under "--quiet" option. 80 (merge 304970d th/diff-no-index-fixes later to maint). 81 82 * When "git log" gets "--simplify-merges/by-decoration" together with 83 "--first-parent", the combination of these options makes the 84 simplification logic to use in-core commit objects that haven't 85 been examined for relevance, either producing incorrect result or 86 taking too long to produce any output. Teach the simplification 87 logic to ignore commits that the first-parent traversal logic 88 ignored when both are in effect to work around the issue. 89 (merge 6e513ba jc/rev-list-simplify-merges-first-parent later to maint). 90 91 * "git add" allows adding a regular file to the path where a 92 submodule used to exist, but "git update-index" does not allow an 93 equivalent operation to Porcelain writers. 94 (merge 242f55f hv/submodule-update-nuke-submodules later to maint). 95 96 * "git diff --no-index" did not work with pagers correctly. 97 (merge af63b54 jk/diff-no-index-pager later to maint). 98 99 * "git diff COPYING HEAD:COPYING" gave a nonsense error message that 100 claimed that the treeish HEAD did not have COPYING in it. 101 (merge 023e37c mm/verify-filename-fix later to maint). 102 103 * The documentation for "git cherry-pick A B..C" was misleading. 104 (merge b98878e cn/cherry-pick-range-docs later to maint). 105 106 * "git archive" incorrectly computed the header checksum; the symptom 107 was observed only when using pathnames with hi-bit set. 108 (merge a5a46eb jc/ustar-checksum-is-unsigned later to maint). 109 110 * Running "git bundle verify" on a bundle that records a complete 111 history said "it requires these 0 commits". 112 (merge 8c3710f jc/bundle-complete-notice later to maint). 113 114 * "git ls-files --exclude=t -i" did not consider anything under t/ as 115 excluded, as it did not pay attention to exclusion of leading paths 116 while walking the index. Other two users of excluded() are also 117 updated. 118 (merge 0d316f0 jc/ls-files-i-dir later to maint). 119 120 * "git request-pull $url dev" when the tip of "dev" branch was tagged 121 with "ext4-for-linus" used the contents from the tag in the output 122 but still asked the "dev" branch to be pulled, not the tag. 123 (merge 682853e jc/request-pull-match-tagname later to maint).