]> Pileus Git - ~andy/git/blob - Documentation/RelNotes/1.7.12.txt
Merge branch 'tg/maint-cache-name-compare' into tg/ce-namelen-field
[~andy/git] / Documentation / RelNotes / 1.7.12.txt
1 Git v1.7.12 Release Notes
2 =========================
3
4 Updates since v1.7.11
5 ---------------------
6
7 UI, Workflows & Features
8
9  * Per-user $HOME/.gitconfig file can optionally be stored in
10    $HOME/.config/git/config instead, which is in line with XDG.
11
12  * The value of core.attributesfile and core.excludesfile default to
13    $HOME/.config/attributes and $HOME/.config/ignore respectively when
14    these files exist.
15
16  * Scripted Porcelain writers now have access to the credential API via
17    the "git credential" plumbing command.
18
19  * "git help" used to always default to "man" format even on platforms
20    where "man" viewer is not widely available.
21
22  * "git clone --local $path" started its life as an experiment to
23    optionally use link/copy when cloning a repository on the disk, but
24    we didn't deprecate it after we made the option a no-op to always
25    use the optimization.  The command learned "--no-local" option to
26    turn this off, as a more explicit alternative over use of file://
27    URL.
28
29  * "git fetch" and friends used to say "remote side hung up
30    unexpectedly" when they failed to get response they expect from the
31    other side, but one common reason why they don't get expected
32    response is that the remote repository does not exist or cannot be
33    read. The error message in this case was updated to give better
34    hints to the user.
35
36  * git native protocol agents learned to show software version over
37    the wire, so that the server log can be examined to see the vintage
38    distribution of clients.
39
40  * "git help -w $cmd" can show HTML version of documentation for
41    "git-$cmd" by setting help.htmlpath to somewhere other than the
42    default location where the build procedure installs them locally;
43    the variable can even point at a http:// URL.
44
45  * "git rebase -i" learned "-x <cmd>" to insert "exec <cmd>" after
46    each commit in the resulting history.
47
48  * "git status" gives finer classification to various states of paths
49    in conflicted state and offer advice messages in its output.
50
51  * "git submodule" learned to deal with nested submodule structure
52    where a module is contained within a module whose origin is
53    specified as a relative URL to its superproject's origin.
54
55  * A rather heavy-ish "git completion" script has been split to create
56    a separate "git prompting" script, to help lazy-autoloading of the
57    completion part while making prompting part always available.
58
59
60 Foreign Interface
61
62
63 Performance, Internal Implementation, etc. (please report possible regressions)
64
65  * Some tests showed false failures caused by a bug in ecryptofs.
66
67  * We no longer use AsciiDoc7 syntax in our documentation and favor a
68    more modern style.
69
70  * "git index-pack" and "git pack-objects" use streaming API to read
71    from the object store to avoid having to hold a large blob object
72    in-core while they are doing their thing.
73
74  * Code to match paths with exclude patterns learned to avoid calling
75    fnmatch() by comparing fixed leading substring literally when
76    possible.
77
78
79 Also contains minor documentation updates and code clean-ups.
80
81
82 Fixes since v1.7.11
83 -------------------
84
85 Unless otherwise noted, all the fixes since v1.7.11 in the maintenance
86 releases are contained in this release (see release notes to them for
87 details).
88
89  * We did not have test to make sure "git rebase" without extra options
90    filters out an empty commit in the original history.
91    (merge 2b5ba7b mz/empty-rebase-test later to maint).
92
93  * "git fast-export" produced an input stream for fast-import without
94    properly quoting pathnames when they contain SPs in them.
95    (merge ff59f6d js/fast-export-paths-with-spaces later to maint).
96
97  * "git checkout --detach", when you are still on an unborn branch,
98    should be forbidden, but it wasn't.
99    (merge 8ced1aa cw/no-detaching-an-unborn later to maint).
100
101  * Some implementations of Perl terminates "lines" with CRLF even when
102    the script is operating on just a sequence of bytes.  Make sure to
103    use "$PERL_PATH", the version of Perl the user told Git to use, in
104    our tests to avoid unnecessary breakages in tests.
105    (merge ad78585 vr/use-our-perl-in-tests later to maint).
106
107  * "git blame" did not try to make sure that the abbreviated commit
108    object names in its output are unique.
109    (merge b31272f jc/maint-blame-unique-abbrev later to maint).
110
111  * On Cygwin, the platform pread(2) is not thread safe, just like our
112    own compat/ emulation, and cannot be used in the index-pack
113    program.  Makefile variable NO_THREAD_SAFE_PREAD can be defined to
114    avoid use of this function in a threaded program.
115    (merge c0f8654 rj/platform-pread-may-be-thread-unsafe later to maint).
116
117  * "git clone --single-branch" to clone a single branch did not limit
118    the cloning to the specified branch.
119    (merge 0ec4b16 nd/clone-single-fix later to maint).
120
121  * "git diff --no-index" did not correctly handle relative paths and
122    did not correctly give exit codes when run under "--quiet" option.
123    (merge 304970d th/diff-no-index-fixes later to maint).
124
125  * When "git log" gets "--simplify-merges/by-decoration" together with
126    "--first-parent", the combination of these options makes the
127    simplification logic to use in-core commit objects that haven't
128    been examined for relevance, either producing incorrect result or
129    taking too long to produce any output.  Teach the simplification
130    logic to ignore commits that the first-parent traversal logic
131    ignored when both are in effect to work around the issue.
132    (merge 6e513ba jc/rev-list-simplify-merges-first-parent later to maint).
133
134  * "git add" allows adding a regular file to the path where a
135    submodule used to exist, but "git update-index" does not allow an
136    equivalent operation to Porcelain writers.
137    (merge 242f55f hv/submodule-update-nuke-submodules later to maint).
138
139  * "git diff --no-index" did not work with pagers correctly.
140    (merge af63b54 jk/diff-no-index-pager later to maint).
141
142  * "git diff COPYING HEAD:COPYING" gave a nonsense error message that
143    claimed that the treeish HEAD did not have COPYING in it.
144    (merge 023e37c mm/verify-filename-fix later to maint).
145
146  * The documentation for "git cherry-pick A B..C" was misleading.
147    (merge b98878e cn/cherry-pick-range-docs later to maint).
148
149  * "git archive" incorrectly computed the header checksum; the symptom
150    was observed only when using pathnames with hi-bit set.
151    (merge a5a46eb jc/ustar-checksum-is-unsigned later to maint).
152
153  * Running "git bundle verify" on a bundle that records a complete
154    history said "it requires these 0 commits".
155    (merge 8c3710f jc/bundle-complete-notice later to maint).
156
157  * "git ls-files --exclude=t -i" did not consider anything under t/ as
158    excluded, as it did not pay attention to exclusion of leading paths
159    while walking the index.  Other two users of excluded() are also
160    updated.
161    (merge 0d316f0 jc/ls-files-i-dir later to maint).
162
163  * "git request-pull $url dev" when the tip of "dev" branch was tagged
164    with "ext4-for-linus" used the contents from the tag in the output
165    but still asked the "dev" branch to be pulled, not the tag.
166    (merge 682853e jc/request-pull-match-tagname later to maint).