Skip to content

Commit ee30f17

Browse files
committed
Merge branch 'sb/submodule-path-misc-bugs' into sb/submodule-init
"git submodule" reports the paths of submodules the command recurses into, but this was incorrect when the command was not run from the root level of the superproject. Any further comments? Otherwise will merge to 'next'. * sb/submodule-path-misc-bugs: (600 commits) t7407: make expectation as clear as possible submodule update: test recursive path reporting from subdirectory submodule update: align reporting path for custom command execution submodule status: correct path handling in recursive submodules submodule update --init: correct path handling in recursive submodules submodule foreach: correct path display in recursive submodules Git 2.8 Documentation: fix git-p4 AsciiDoc formatting mingw: skip some tests in t9115 due to file name issues t1300: fix the new --show-origin tests on Windows t1300-repo-config: make it resilient to being run via 'sh -x' config --show-origin: report paths with forward slashes submodule: fix regression for deinit without submodules l10n: pt_PT: Update and add new translations l10n: ca.po: update translation Git 2.8-rc4 Documentation: fix broken linkgit to git-config Documentation: use ASCII quotation marks in git-p4 Revert "config.mak.uname: use clang for Mac OS X 10.6" git-compat-util: st_add4: work around gcc 4.2.x compiler crash ...
2 parents 7307dd8 + 2ab5660 commit ee30f17

File tree

461 files changed

+55896
-27424
lines changed

Some content is hidden

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

461 files changed

+55896
-27424
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,7 @@
187187
/test-dump-cache-tree
188188
/test-dump-split-index
189189
/test-dump-untracked-cache
190+
/test-fake-ssh
190191
/test-scrap-cache-tree
191192
/test-genrandom
192193
/test-hashmap

.travis.yml

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
language: c
22

3+
sudo: false
4+
5+
cache:
6+
directories:
7+
- $HOME/travis-cache
8+
39
os:
410
- linux
511
- osx
@@ -15,12 +21,12 @@ addons:
1521

1622
env:
1723
global:
24+
- DEVELOPER=1
1825
- P4_VERSION="15.2"
1926
- GIT_LFS_VERSION="1.1.0"
2027
- DEFAULT_TEST_TARGET=prove
21-
- GIT_PROVE_OPTS="--timer --jobs 3"
28+
- GIT_PROVE_OPTS="--timer --jobs 3 --state=failed,slow,save"
2229
- GIT_TEST_OPTS="--verbose --tee"
23-
- CFLAGS="-g -O2 -Wall -Werror"
2430
- GIT_TEST_CLONE_2GB=YesPlease
2531
# t9810 occasionally fails on Travis CI OS X
2632
# t9816 occasionally fails with "TAP out of sequence errors" on Travis CI OS X
@@ -67,6 +73,8 @@ before_install:
6773
p4 -V | grep Rev.;
6874
echo "$(tput setaf 6)Git-LFS Version$(tput sgr0)";
6975
git-lfs version;
76+
mkdir -p $HOME/travis-cache;
77+
ln -s $HOME/travis-cache/.prove t/.prove;
7078
7179
before_script: make --jobs=2
7280

Documentation/CodingGuidelines

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,11 @@ For C programs:
171171

172172
- We try to keep to at most 80 characters per line.
173173

174+
- As a Git developer we assume you have a reasonably modern compiler
175+
and we recommend you to enable the DEVELOPER makefile knob to
176+
ensure your patch is clear of all compiler warnings we care about,
177+
by e.g. "echo DEVELOPER=1 >>config.mak".
178+
174179
- We try to support a wide range of C compilers to compile Git with,
175180
including old ones. That means that you should not use C99
176181
initializers, even if a lot of compilers grok it.

Documentation/RelNotes/2.4.11.txt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
Git v2.4.11 Release Notes
2+
=========================
3+
4+
Fixes since v2.4.10
5+
-------------------
6+
7+
* Bugfix patches were backported from the 'master' front to plug heap
8+
corruption holes, to catch integer overflow in the computation of
9+
pathname lengths, and to get rid of the name_path API. Both of
10+
these would have resulted in writing over an under-allocated buffer
11+
when formulating pathnames while tree traversal.

Documentation/RelNotes/2.5.5.txt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
Git v2.5.5 Release Notes
2+
========================
3+
4+
Fixes since v2.5.4
5+
------------------
6+
7+
* Bugfix patches were backported from the 'master' front to plug heap
8+
corruption holes, to catch integer overflow in the computation of
9+
pathname lengths, and to get rid of the name_path API. Both of
10+
these would have resulted in writing over an under-allocated buffer
11+
when formulating pathnames while tree traversal.

Documentation/RelNotes/2.6.5.txt

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,38 @@ Fixes since v2.6.4
2121
NULL. This gives a compiler an excuse to declare that tree will
2222
never be NULL and apply a wrong optimization. Avoid it.
2323

24+
* The helper used to iterate over loose object directories to prune
25+
stale objects did not closedir() immediately when it is done with a
26+
directory--a callback such as the one used for "git prune" may want
27+
to do rmdir(), but it would fail on open directory on platforms
28+
such as WinXP.
29+
30+
* "git p4" used to import Perforce CLs that touch only paths outside
31+
the client spec as empty commits. It has been corrected to ignore
32+
them instead, with a new configuration git-p4.keepEmptyCommits as a
33+
backward compatibility knob.
34+
35+
* The exit code of git-fsck did not reflect some types of errors
36+
found in packed objects, which has been corrected.
37+
38+
* The completion script (in contrib/) used to list "git column"
39+
(which is not an end-user facing command) as one of the choices
40+
41+
* Improve error reporting when SMTP TLS fails.
42+
43+
* When getpwuid() on the system returned NULL (e.g. the user is not
44+
in the /etc/passwd file or other uid-to-name mappings), the
45+
codepath to find who the user is to record it in the reflog barfed
46+
and died. Loosen the check in this codepath, which already accepts
47+
questionable ident string (e.g. host part of the e-mail address is
48+
obviously bogus), and in general when we operate fmt_ident() function
49+
in non-strict mode.
50+
51+
* "git symbolic-ref" forgot to report a failure with its exit status.
52+
53+
* History traversal with "git log --source" that starts with an
54+
annotated tag failed to report the tag as "source", due to an
55+
old regression in the command line parser back in v2.2 days.
56+
2457
Also contains typofixes, documentation updates and trivial code
2558
clean-ups.

Documentation/RelNotes/2.6.6.txt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
Git v2.6.6 Release Notes
2+
========================
3+
4+
Fixes since v2.6.5
5+
------------------
6+
7+
* Bugfix patches were backported from the 'master' front to plug heap
8+
corruption holes, to catch integer overflow in the computation of
9+
pathname lengths, and to get rid of the name_path API. Both of
10+
these would have resulted in writing over an under-allocated buffer
11+
when formulating pathnames while tree traversal.

Documentation/RelNotes/2.7.0.txt

Lines changed: 56 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ Updates since v2.6
66

77
UI, Workflows & Features
88

9+
* The appearance of "gitk", particularly on high DPI monitors, have
10+
been improved. "gitk" also comes with an undated translation for
11+
Swedish and Japanese.
12+
913
* "git remote" learned "get-url" subcommand to show the URL for a
1014
given remote name used for fetching and pushing.
1115

@@ -22,7 +26,7 @@ UI, Workflows & Features
2226

2327
* Users who are too busy to type three extra keystrokes to ask for
2428
"git stash show -p" can now set stash.showPatch configuration
25-
varible to true to always see the actual patch, not just the list
29+
variable to true to always see the actual patch, not just the list
2630
of paths affected with feel for the extent of damage via diffstat.
2731

2832
* "quiltimport" allows to specify the series file by honoring the
@@ -65,7 +69,7 @@ UI, Workflows & Features
6569
a superset of "--no-progress". Extend the command to support the
6670
usual "--[no-]progress".
6771

68-
* The semantics of tranfer.hideRefs configuration variable have been
72+
* The semantics of transfer.hideRefs configuration variable have been
6973
extended to work better with the ref "namespace" feature that lets
7074
you throw unrelated bunches of repositories in a single physical
7175
repository and virtually serve them as separate ones.
@@ -79,6 +83,12 @@ UI, Workflows & Features
7983
* The credential-cache daemon can be told to ignore SIGHUP to work
8084
around issue when running Git from inside emacs.
8185

86+
* "git push" learned new configuration for doing "--recurse-submodules"
87+
on each push.
88+
89+
* "format-patch" has learned a new option to zero-out the commit
90+
object name on the mbox "From " line.
91+
8292

8393
Performance, Internal Implementation, Development Support etc.
8494

@@ -100,7 +110,6 @@ Performance, Internal Implementation, Development Support etc.
100110

101111
* The debugging infrastructure for pkt-line based communication has
102112
been improved to mark the side-band communication specifically.
103-
(merge fd89433 jk/async-pkt-line later to maint).
104113

105114
* Update "git branch" that list existing branches, using the
106115
ref-filter API that is shared with "git tag" and "git
@@ -162,6 +171,9 @@ Performance, Internal Implementation, Development Support etc.
162171
git/git (including build-status for pull requests that people
163172
open).
164173

174+
* The write(2) emulation for Windows learned to set errno to EPIPE
175+
when necessary.
176+
165177

166178
Also contains various documentation updates and code clean-ups.
167179

@@ -356,12 +368,47 @@ notes for details).
356368
* A build without NO_IPv6 used to use gethostbyname() when guessing
357369
user's hostname, instead of getaddrinfo() that is used in other
358370
codepaths in such a build.
359-
(merge 00bce77 ep/ident-with-getaddrinfo later to maint).
360371

361-
* The exit code of git-fsck didnot reflect some types of errors found
362-
in packed objects, which has been corrected.
363-
(merge 8c24d83 dt/fsck-verify-pack-error later to maint).
372+
* The exit code of git-fsck did not reflect some types of errors
373+
found in packed objects, which has been corrected.
374+
375+
* The helper used to iterate over loose object directories to prune
376+
stale objects did not closedir() immediately when it is done with a
377+
directory--a callback such as the one used for "git prune" may want
378+
to do rmdir(), but it would fail on open directory on platforms
379+
such as WinXP.
380+
381+
* "git p4" used to import Perforce CLs that touch only paths outside
382+
the client spec as empty commits. It has been corrected to ignore
383+
them instead, with a new configuration git-p4.keepEmptyCommits as a
384+
backward compatibility knob.
385+
386+
* The completion script (in contrib/) used to list "git column"
387+
(which is not an end-user facing command) as one of the choices
388+
(merge 160fcdb sg/completion-no-column later to maint).
389+
390+
* The error reporting from "git send-email", when SMTP TLS fails, has
391+
been improved.
392+
(merge 9d60524 jk/send-email-ssl-errors later to maint).
393+
394+
* When getpwuid() on the system returned NULL (e.g. the user is not
395+
in the /etc/passwd file or other uid-to-name mappings), the
396+
codepath to find who the user is to record it in the reflog barfed
397+
and died. Loosen the check in this codepath, which already accepts
398+
questionable ident string (e.g. host part of the e-mail address is
399+
obviously bogus), and in general when we operate fmt_ident() function
400+
in non-strict mode.
401+
(merge 92bcbb9 jk/ident-loosen-getpwuid later to maint).
402+
403+
* "git symbolic-ref" forgot to report a failure with its exit status.
404+
(merge f91b273 jk/symbolic-ref-maint later to maint).
405+
406+
* History traversal with "git log --source" that starts with an
407+
annotated tag failed to report the tag as "source", due to an
408+
old regression in the command line parser back in v2.2 days.
409+
(merge 728350b jk/pending-keep-tag-name later to maint).
410+
411+
* "git p4" when interacting with multiple depots at the same time
412+
used to incorrectly drop changes.
364413

365414
* Code clean-up, minor fixes etc.
366-
(merge 15ed07d jc/rerere later to maint).
367-
(merge 147875f sb/submodule-config-parse later to maint).

Documentation/RelNotes/2.7.1.txt

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
Git v2.7.1 Release Notes
2+
========================
3+
4+
Fixes since v2.7
5+
----------------
6+
7+
* An earlier change in 2.5.x-era broke users' hooks and aliases by
8+
exporting GIT_WORK_TREE to point at the root of the working tree,
9+
interfering when they tried to use a different working tree without
10+
setting GIT_WORK_TREE environment themselves.
11+
12+
* The "exclude_list" structure has the usual "alloc, nr" pair of
13+
fields to be used by ALLOC_GROW(), but clear_exclude_list() forgot
14+
to reset 'alloc' to 0 when it cleared 'nr' to discard the managed
15+
array.
16+
17+
* "git send-email" was confused by escaped quotes stored in the alias
18+
files saved by "mutt", which has been corrected.
19+
20+
* A few unportable C construct have been spotted by clang compiler
21+
and have been fixed.
22+
23+
* The documentation has been updated to hint the connection between
24+
the '--signoff' option and DCO.
25+
26+
* "git reflog" incorrectly assumed that all objects that used to be
27+
at the tip of a ref must be commits, which caused it to segfault.
28+
29+
* The ignore mechanism saw a few regressions around untracked file
30+
listing and sparse checkout selection areas in 2.7.0; the change
31+
that is responsible for the regression has been reverted.
32+
33+
* Some codepaths used fopen(3) when opening a fixed path in $GIT_DIR
34+
(e.g. COMMIT_EDITMSG) that is meant to be left after the command is
35+
done. This however did not work well if the repository is set to
36+
be shared with core.sharedRepository and the umask of the previous
37+
user is tighter. They have been made to work better by calling
38+
unlink(2) and retrying after fopen(3) fails with EPERM.
39+
40+
* Asking gitweb for a nonexistent commit left a warning in the server
41+
log.
42+
43+
* "git rebase", unlike all other callers of "gc --auto", did not
44+
ignore the exit code from "gc --auto".
45+
46+
* Many codepaths that run "gc --auto" before exiting kept packfiles
47+
mapped and left the file descriptors to them open, which was not
48+
friendly to systems that cannot remove files that are open. They
49+
now close the packs before doing so.
50+
51+
* A recent optimization to filter-branch in v2.7.0 introduced a
52+
regression when --prune-empty filter is used, which has been
53+
corrected.
54+
55+
* The description for SANITY prerequisite the test suite uses has
56+
been clarified both in the comment and in the implementation.
57+
58+
* "git tag" started listing a tag "foo" as "tags/foo" when a branch
59+
named "foo" exists in the same repository; remove this unnecessary
60+
disambiguation, which is a regression introduced in v2.7.0.
61+
62+
* The way "git svn" uses auth parameter was broken by Subversion
63+
1.9.0 and later.
64+
65+
* The "split" subcommand of "git subtree" (in contrib/) incorrectly
66+
skipped merges when it shouldn't, which was corrected.
67+
68+
* A few options of "git diff" did not work well when the command was
69+
run from a subdirectory.
70+
71+
* dirname() emulation has been added, as Msys2 lacks it.
72+
73+
* The underlying machinery used by "ls-files -o" and other commands
74+
have been taught not to create empty submodule ref cache for a
75+
directory that is not a submodule. This removes a ton of wasted
76+
CPU cycles.
77+
78+
* Drop a few old "todo" items by deciding that the change one of them
79+
suggests is not such a good idea, and doing the change the other
80+
one suggested to do.
81+
82+
* Documentation for "git fetch --depth" has been updated for clarity.
83+
84+
* The command line completion learned a handful of additional options
85+
and command specific syntax.
86+
87+
Also includes a handful of documentation and test updates.

Documentation/RelNotes/2.7.2.txt

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
Git v2.7.2 Release Notes
2+
========================
3+
4+
Fixes since v2.7.1
5+
------------------
6+
7+
* The low-level merge machinery has been taught to use CRLF line
8+
termination when inserting conflict markers to merged contents that
9+
are themselves CRLF line-terminated.
10+
11+
* "git worktree" had a broken code that attempted to auto-fix
12+
possible inconsistency that results from end-users moving a
13+
worktree to different places without telling Git (the original
14+
repository needs to maintain backpointers to its worktrees, but
15+
"mv" run by end-users who are not familiar with that fact will
16+
obviously not adjust them), which actually made things worse
17+
when triggered.
18+
19+
* "git push --force-with-lease" has been taught to report if the push
20+
needed to force (or fast-forwarded).
21+
22+
* The emulated "yes" command used in our test scripts has been
23+
tweaked not to spend too much time generating unnecessary output
24+
that is not used, to help those who test on Windows where it would
25+
not stop until it fills the pipe buffer due to lack of SIGPIPE.
26+
27+
* The vimdiff backend for "git mergetool" has been tweaked to arrange
28+
and number buffers in the order that would match the expectation of
29+
majority of people who read left to right, then top down and assign
30+
buffers 1 2 3 4 "mentally" to local base remote merge windows based
31+
on that order.
32+
33+
* The documentation for "git clean" has been corrected; it mentioned
34+
that .git/modules/* are removed by giving two "-f", which has never
35+
been the case.
36+
37+
* Paths that have been told the index about with "add -N" are not
38+
quite yet in the index, but a few commands behaved as if they
39+
already are in a harmful way.
40+
41+
Also includes tiny documentation and test updates.

0 commit comments

Comments
 (0)