Skip to content

Commit 9330293

Browse files
committed
Merge tag 'v2.13.1.windows.1' into users/johasc/gvfs/merge-2.13.1
Git for Windows v2.13.1 Changes since Git for Windows v2.13.0 (May 10th 2017) New Features * Comes with Git v2.13.1. * Comes with Git Credential Manager v1.10.0. * Comes with OpenSSH 7.5p1. * Comes with Git Flow v1.11.0. * Comes with Git LFS v2.1.1. * Git now uses the flag introduced with Windows 10 Creators Update to create symbolic links without requiring elevated privileges in Developer Mode. Bug Fixes * The documentation of Git for Windows' several config files was improved. * When interrupting Git processes in Git Bash by pressing Ctrl+C, Git now removes .lock files as designed (accompanying Git PR; this should also fix issue #338). * git status -uno now treats submodules in ignored directories correctly. * The fscache feature no longer slows down git commit -m <message> in large worktrees. * Executing git.exe in Git Bash when the current working directory is a UNC path now works as expected. * Staging/unstaging multiple files in Git GUI via Ctrl+C now works. * When hitting Ctrl+T in Git GUI to stage files, but the file list is empty, Git GUI no longer shows an exception window. This is an "evil merge", i.e. it introduces two changes that were on neither side of the commit history: - t7061 added a test case in upstream that adds a submodule, and the test case GVFS Git added needed to be adjusted to expect that submodule now. - t0025 was removed upstream, but we added a test case in GVFS Git. This test case was moved and adjusted to run first thing in t0027 (which is the legal successor to t0025).
2 parents 7325bf4 + 13f583b commit 9330293

File tree

102 files changed

+1393
-1230
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

102 files changed

+1393
-1230
lines changed

.gitattributes

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
11
* whitespace=!indent,trail,space
2-
*.[ch] whitespace=indent,trail,space diff=cpp eol=lf
2+
*.[ch] whitespace=indent,trail,space diff=cpp
33
*.sh whitespace=indent,trail,space eol=lf
4-
*.{perl,pm,txt} eol=lf
4+
*.perl eol=lf
5+
*.pm eol=lf
6+
/Documentation/git-*.txt eol=lf
7+
/command-list.txt eol=lf
8+
/GIT-VERSION-GEN eol=lf
9+
/mergetools/* eol=lf

.travis.yml

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,11 @@ env:
3939

4040
matrix:
4141
include:
42+
- env: GETTEXT_POISON=YesPlease
43+
os: linux
44+
compiler:
45+
addons:
46+
before_install:
4247
- env: Windows
4348
os: linux
4449
compiler:
@@ -52,6 +57,7 @@ matrix:
5257
after_failure:
5358
- env: Linux32
5459
os: linux
60+
compiler:
5561
services:
5662
- docker
5763
before_install:
@@ -86,14 +92,14 @@ matrix:
8692
after_failure:
8793
- env: Documentation
8894
os: linux
89-
compiler: clang
95+
compiler:
9096
addons:
9197
apt:
9298
packages:
9399
- asciidoc
94100
- xmlto
95101
before_install:
96-
before_script:
102+
before_script: gem install asciidoctor
97103
script: ci/test-documentation.sh
98104
after_failure:
99105

@@ -134,12 +140,14 @@ before_install:
134140
p4 -V | grep Rev.;
135141
echo "$(tput setaf 6)Git-LFS Version$(tput sgr0)";
136142
git-lfs version;
137-
mkdir -p $HOME/travis-cache;
138-
ln -s $HOME/travis-cache/.prove t/.prove;
139143
140144
before_script: make --jobs=2
141145

142-
script: make --quiet test
146+
script:
147+
- >
148+
mkdir -p $HOME/travis-cache;
149+
ln -s $HOME/travis-cache/.prove t/.prove;
150+
make --quiet test;
143151
144152
after_failure:
145153
- >

Documentation/CodingGuidelines

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ code. For Git in general, a few rough rules are:
2424

2525
"Once it _is_ in the tree, it's not really worth the patch noise to
2626
go and fix it up."
27-
Cf. http://article.gmane.org/gmane.linux.kernel/943020
27+
Cf. http://lkml.iu.edu/hypermail/linux/kernel/1001.3/01069.html
2828

2929
Make your code readable and sensible, and don't try to be clever.
3030

@@ -256,12 +256,12 @@ For C programs:
256256

257257
Note however that a comment that explains a translatable string to
258258
translators uses a convention of starting with a magic token
259-
"TRANSLATORS: " immediately after the opening delimiter, even when
260-
it spans multiple lines. We do not add an asterisk at the beginning
261-
of each line, either. E.g.
259+
"TRANSLATORS: ", e.g.
262260

263-
/* TRANSLATORS: here is a comment that explains the string
264-
to be translated, that follows immediately after it */
261+
/*
262+
* TRANSLATORS: here is a comment that explains the string to
263+
* be translated, that follows immediately after it.
264+
*/
265265
_("Here is a translatable string explained by the above.");
266266

267267
- Double negation is often harder to understand than no negation

Documentation/RelNotes/2.13.1.txt

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
Git v2.13.1 Release Notes
2+
=========================
3+
4+
Fixes since v2.13
5+
-----------------
6+
7+
* The Web interface to gmane news archive is long gone, even though
8+
the articles are still accessible via NTTP. Replace the links with
9+
ones to public-inbox.org. Because their message identification is
10+
based on the actual message-id, it is likely that it will be easier
11+
to migrate away from it if/when necessary.
12+
13+
* Update tests to pass under GETTEXT_POISON (a mechanism to ensure
14+
that output strings that should not be translated are not
15+
translated by mistake), and tell TravisCI to run them.
16+
17+
* Setting "log.decorate=false" in the configuration file did not take
18+
effect in v2.13, which has been corrected.
19+
20+
* An earlier update to test 7400 needed to be skipped on CYGWIN.
21+
22+
* Git sometimes gives an advice in a rhetorical question that does
23+
not require an answer, which can confuse new users and non native
24+
speakers. Attempt to rephrase them.
25+
26+
* "git read-tree -m" (no tree-ish) gave a nonsense suggestion "use
27+
--empty if you want to clear the index". With "-m", such a request
28+
will still fail anyway, as you'd need to name at least one tree-ish
29+
to be merged.
30+
31+
* The codepath in "git am" that is used when running "git rebase"
32+
leaked memory held for the log message of the commits being rebased.
33+
34+
* "pack-objects" can stream a slice of an existing packfile out when
35+
the pack bitmap can tell that the reachable objects are all needed
36+
in the output, without inspecting individual objects. This
37+
strategy however would not work well when "--local" and other
38+
options are in use, and need to be disabled.
39+
40+
* Clarify documentation for include.path and includeIf.<condition>.path
41+
configuration variables.
42+
43+
* Tag objects, which are not reachable from any ref, that point at
44+
missing objects were mishandled by "git gc" and friends (they
45+
should silently be ignored instead)
46+
47+
* A few http:// links that are redirected to https:// in the
48+
documentation have been updated to https:// links.
49+
50+
* Make sure our tests would pass when the sources are checked out
51+
with "platform native" line ending convention by default on
52+
Windows. Some "text" files out tests use and the test scripts
53+
themselves that are meant to be run with /bin/sh, ought to be
54+
checked out with eol=LF even on Windows.
55+
56+
* Fix memory leaks pointed out by Coverity (and people).
57+
58+
* The receive-pack program now makes sure that the push certificate
59+
records the same set of push options used for pushing.
60+
61+
* "git cherry-pick" and other uses of the sequencer machinery
62+
mishandled a trailer block whose last line is an incomplete line.
63+
This has been fixed so that an additional sign-off etc. are added
64+
after completing the existing incomplete line.
65+
66+
* The shell completion script (in contrib/) learned "git stash" has
67+
a new "push" subcommand.
68+
69+
* Travis CI gained a task to format the documentation with both
70+
AsciiDoc and AsciiDoctor.
71+
72+
* Update the C style recommendation for notes for translators, as
73+
recent versions of gettext tools can work with our style of
74+
multi-line comments.
75+
76+
* "git clone --config var=val" is a way to populate the
77+
per-repository configuration file of the new repository, but it did
78+
not work well when val is an empty string. This has been fixed.
79+
80+
* A few codepaths in "checkout" and "am" working on an unborn branch
81+
tried to access an uninitialized piece of memory.
82+
83+
* "git for-each-ref --format=..." with %(HEAD) in the format used to
84+
resolve the HEAD symref as many times as it had processed refs,
85+
which was wasteful, and "git branch" shared the same problem.
86+
87+
* "git interpret-trailers", when used as GIT_EDITOR for "git commit
88+
-v", looked for and appended to a trailer block at the very end,
89+
i.e. at the end of the "diff" output. The command has been
90+
corrected to pay attention to the cut-mark line "commit -v" adds to
91+
the buffer---the real trailer block should appear just before it.
92+
93+
* A test allowed both "git push" and "git receive-pack" on the other
94+
end write their traces into the same file. This is OK on platforms
95+
that allows atomically appending to a file opened with O_APPEND,
96+
but on other platforms led to a mangled output, causing
97+
intermittent test failures. This has been fixed by disabling
98+
traces from "receive-pack" in the test.
99+
100+
* "foo\bar\baz" in "git fetch foo\bar\baz", even though there is no
101+
slashes in it, cannot be a nickname for a remote on Windows, as
102+
that is likely to be a pathname on a local filesystem.
103+
104+
* The "collision detecting" SHA-1 implementation shipped with 2.13
105+
was quite broken on some big-endian platforms and/or platforms that
106+
do not like unaligned fetches. Update to the upstream code which
107+
has already fixed these issues.
108+
109+
* "git am -h" triggered a BUG().
110+
111+
* The interaction of "url.*.insteadOf" and custom URL scheme's
112+
whitelisting is now documented better.
113+
114+
Also contains various documentation updates and code clean-ups.

Documentation/config.txt

Lines changed: 36 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -81,14 +81,20 @@ escape sequences) are invalid.
8181
Includes
8282
~~~~~~~~
8383

84+
The `include` and `includeIf` sections allow you to include config
85+
directives from another source. These sections behave identically to
86+
each other with the exception that `includeIf` sections may be ignored
87+
if their condition does not evaluate to true; see "Conditional includes"
88+
below.
89+
8490
You can include a config file from another by setting the special
85-
`include.path` variable to the name of the file to be included. The
86-
variable takes a pathname as its value, and is subject to tilde
87-
expansion. `include.path` can be given multiple times.
91+
`include.path` (or `includeIf.*.path`) variable to the name of the file
92+
to be included. The variable takes a pathname as its value, and is
93+
subject to tilde expansion. These variables can be given multiple times.
8894

89-
The included file is expanded immediately, as if its contents had been
90-
found at the location of the include directive. If the value of the
91-
`include.path` variable is a relative path, the path is considered to
95+
The contents of the included file are inserted immediately, as if they
96+
had been found at the location of the include directive. If the value of the
97+
variable is a relative path, the path is considered to
9298
be relative to the configuration file in which the include directive
9399
was found. See below for examples.
94100

@@ -97,8 +103,7 @@ Conditional includes
97103

98104
You can include a config file from another conditionally by setting a
99105
`includeIf.<condition>.path` variable to the name of the file to be
100-
included. The variable's value is treated the same way as
101-
`include.path`. `includeIf.<condition>.path` can be given multiple times.
106+
included.
102107

103108
The condition starts with a keyword followed by a colon and some data
104109
whose format and meaning depends on the keyword. Supported keywords
@@ -169,8 +174,8 @@ Example
169174

170175
[include]
171176
path = /path/to/foo.inc ; include by absolute path
172-
path = foo ; expand "foo" relative to the current file
173-
path = ~/foo ; expand "foo" in your `$HOME` directory
177+
path = foo.inc ; find "foo.inc" relative to the current file
178+
path = ~/foo.inc ; find "foo.inc" in your `$HOME` directory
174179

175180
; include if $GIT_DIR is /path/to/foo/.git
176181
[includeIf "gitdir:/path/to/foo/.git"]
@@ -184,6 +189,12 @@ Example
184189
[includeIf "gitdir:~/to/group/"]
185190
path = /path/to/foo.inc
186191

192+
; relative paths are always relative to the including
193+
; file (if the condition is true); their location is not
194+
; affected by the condition
195+
[includeIf "gitdir:/path/to/group/"]
196+
path = foo.inc
197+
187198
Values
188199
~~~~~~
189200

@@ -336,7 +347,7 @@ core.fileMode::
336347
is to be honored.
337348
+
338349
Some filesystems lose the executable bit when a file that is
339-
marked as executable is checked out, or checks out an
350+
marked as executable is checked out, or checks out a
340351
non-executable file with executable bit on.
341352
linkgit:git-clone[1] or linkgit:git-init[1] probe the filesystem
342353
to see if it handles the executable bit correctly
@@ -938,6 +949,7 @@ core.abbrev::
938949
computed based on the approximate number of packed objects
939950
in your repository, which hopefully is enough for
940951
abbreviated object names to stay unique for some time.
952+
The minimum length is 4.
941953

942954
add.ignoreErrors::
943955
add.ignore-errors (deprecated)::
@@ -2216,6 +2228,10 @@ log.showRoot::
22162228
Tools like linkgit:git-log[1] or linkgit:git-whatchanged[1], which
22172229
normally hide the root commit will now show it. True by default.
22182230

2231+
log.showSignature::
2232+
If true, makes linkgit:git-log[1], linkgit:git-show[1], and
2233+
linkgit:git-whatchanged[1] assume `--show-signature`.
2234+
22192235
log.mailmap::
22202236
If true, makes linkgit:git-log[1], linkgit:git-show[1], and
22212237
linkgit:git-whatchanged[1] assume `--use-mailmap`.
@@ -2696,9 +2712,8 @@ receive.advertiseAtomic::
26962712
capability, set this variable to false.
26972713

26982714
receive.advertisePushOptions::
2699-
By default, git-receive-pack will advertise the push options
2700-
capability to its clients. If you don't want to advertise this
2701-
capability, set this variable to false.
2715+
When set to true, git-receive-pack will advertise the push options
2716+
capability to its clients. False by default.
27022717

27032718
receive.autogc::
27042719
By default, git-receive-pack will run "git-gc --auto" after
@@ -3284,6 +3299,13 @@ url.<base>.insteadOf::
32843299
the best alternative for the particular user, even for a
32853300
never-before-seen repository on the site. When more than one
32863301
insteadOf strings match a given URL, the longest match is used.
3302+
+
3303+
Note that any protocol restrictions will be applied to the rewritten
3304+
URL. If the rewrite changes the URL to use a custom protocol or remote
3305+
helper, you may need to adjust the `protocol.*.allow` config to permit
3306+
the request. In particular, protocols you expect to use for submodules
3307+
must be set to `always` rather than the default of `user`. See the
3308+
description of `protocol.allow` above.
32873309

32883310
url.<base>.pushInsteadOf::
32893311
Any URL that starts with this value will not be pushed to;

Documentation/git-bisect-lk2009.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1350,9 +1350,9 @@ References
13501350
- [[[1]]] https://www.nist.gov/sites/default/files/documents/director/planning/report02-3.pdf['The Economic Impacts of Inadequate Infratructure for Software Testing'. Nist Planning Report 02-3], see Executive Summary and Chapter 8.
13511351
- [[[2]]] http://www.oracle.com/technetwork/java/codeconvtoc-136057.html['Code Conventions for the Java Programming Language'. Sun Microsystems.]
13521352
- [[[3]]] https://en.wikipedia.org/wiki/Software_maintenance['Software maintenance'. Wikipedia.]
1353-
- [[[4]]] http://article.gmane.org/gmane.comp.version-control.git/45195/[Junio C Hamano. 'Automated bisect success story'. Gmane.]
1353+
- [[[4]]] https://public-inbox.org/git/[email protected]/[Junio C Hamano. 'Automated bisect success story'.]
13541354
- [[[5]]] https://lwn.net/Articles/317154/[Christian Couder. 'Fully automated bisecting with "git bisect run"'. LWN.net.]
13551355
- [[[6]]] https://lwn.net/Articles/277872/[Jonathan Corbet. 'Bisection divides users and developers'. LWN.net.]
1356-
- [[[7]]] http://article.gmane.org/gmane.linux.scsi/36652/[Ingo Molnar. 'Re: BUG 2.6.23-rc3 can't see sd partitions on Alpha'. Gmane.]
1356+
- [[[7]]] http://marc.info/?l=linux-kernel&m=119702753411680&w=2[Ingo Molnar. 'Re: BUG 2.6.23-rc3 can't see sd partitions on Alpha'. Linux-kernel mailing list.]
13571357
- [[[8]]] https://www.kernel.org/pub/software/scm/git/docs/git-bisect.html[Junio C Hamano and the git-list. 'git-bisect(1) Manual Page'. Linux Kernel Archives.]
13581358
- [[[9]]] https://github.com/Ealdwulf/bbchop[Ealdwulf. 'bbchop'. GitHub.]

Documentation/git-config.txt

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -235,8 +235,16 @@ FILES
235235
If not set explicitly with `--file`, there are four files where
236236
'git config' will search for configuration options:
237237

238+
$PROGRAMDATA/Git/config::
239+
(Windows-only) System-wide configuration file shared with other Git
240+
implementations. Typically `$PROGRAMDATA` points to `C:\ProgramData`.
241+
238242
$(prefix)/etc/gitconfig::
239243
System-wide configuration file.
244+
(Windows-only) This file contains only the settings which are
245+
specific for this installation of Git for Windows and which should
246+
not be shared with other Git implementations like JGit, libgit2.
247+
`--system` will select this file.
240248

241249
$XDG_CONFIG_HOME/git/config::
242250
Second user-specific configuration file. If $XDG_CONFIG_HOME is not set
@@ -253,14 +261,6 @@ $XDG_CONFIG_HOME/git/config::
253261
$GIT_DIR/config::
254262
Repository specific configuration file.
255263

256-
On Windows, as there is no central `/etc/` directory, there is yet another
257-
config file (located at `$PROGRAMDATA/Git/config`), intended to contain
258-
settings for *all* Git-related software running on the machine. Consequently,
259-
this config file takes an even lower precedence than the
260-
`$(prefix)/etc/gitconfig` file. Typically `$PROGRAMDATA` points to
261-
`C:\ProgramData` (on Windows XP the equivalent in `$ALLUSERSPROFILE` is used,
262-
i.e. `C:\Documents and Settings\All Users\Application Data\Git\config`).
263-
264264
If no further options are given, all reading options will read all of these
265265
files that are available. If the global or the system-wide configuration
266266
file are not available they will be ignored. If the repository configuration

Documentation/git-filter-branch.txt

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,7 @@ OPTIONS
8686
This filter may be used if you only need to modify the environment
8787
in which the commit will be performed. Specifically, you might
8888
want to rewrite the author/committer name/email/time environment
89-
variables (see linkgit:git-commit-tree[1] for details). Do not forget
90-
to re-export the variables.
89+
variables (see linkgit:git-commit-tree[1] for details).
9190

9291
--tree-filter <command>::
9392
This is the filter for rewriting the tree and its contents.
@@ -340,12 +339,10 @@ git filter-branch --env-filter '
340339
if test "$GIT_AUTHOR_EMAIL" = "root@localhost"
341340
then
342341
343-
export GIT_AUTHOR_EMAIL
344342
fi
345343
if test "$GIT_COMMITTER_EMAIL" = "root@localhost"
346344
then
347345
348-
export GIT_COMMITTER_EMAIL
349346
fi
350347
' -- --all
351348
--------------------------------------------------------

Documentation/git-interpret-trailers.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ trailer.ifexists::
123123
same <token> in the message.
124124
+
125125
The valid values for this option are: `addIfDifferentNeighbor` (this
126-
is the default), `addIfDifferent`, `add`, `overwrite` or `doNothing`.
126+
is the default), `addIfDifferent`, `add`, `replace` or `doNothing`.
127127
+
128128
With `addIfDifferentNeighbor`, a new trailer will be added only if no
129129
trailer with the same (<token>, <value>) pair is above or below the line

0 commit comments

Comments
 (0)