Stefan Beller [Fri, 10 Jun 2016 00:35:36 +0000 (17:35 -0700)]
submodule--helper: initial clone learns retry logic
Each submodule that is attempted to be cloned, will be retried once in
case of failure after all other submodules were cloned. This helps to
mitigate ephemeral server failures and increases chances of a reliable
clone of a repo with hundreds of submodules immensely.
Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Stefan Beller [Thu, 26 May 2016 21:59:43 +0000 (14:59 -0700)]
submodule update: learn `--[no-]recommend-shallow` option
Sometimes the history of a submodule is not considered important by
the projects upstream. To make it easier for downstream users, allow
a boolean field 'submodule.<name>.shallow' in .gitmodules, which can
be used to recommend whether upstream considers the history important.
This field is honored in the initial clone by default, it can be
ignored by giving the `--no-recommend-shallow` option.
Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Stefan Beller [Thu, 26 May 2016 21:59:42 +0000 (14:59 -0700)]
submodule-config: keep shallow recommendation around
The shallow field will be used in a later patch by `submodule update`.
To differentiate between the actual depth (which may be different),
we name it `recommend_shallow` as the field in the .gitmodules file
is only a recommendation by the project.
Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Thu, 26 May 2016 20:28:24 +0000 (13:28 -0700)]
Sync with maint
* maint:
Start preparing for 2.8.4
archive-tar: convert snprintf to xsnprintf
Junio C Hamano [Thu, 26 May 2016 20:21:00 +0000 (13:21 -0700)]
Start preparing for 2.8.4
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Thu, 26 May 2016 20:17:26 +0000 (13:17 -0700)]
Merge branch 'jc/linkgit-fix' into maint
Many 'linkgit:<git documentation page>' references were broken,
which are all fixed with this.
* jc/linkgit-fix:
Documentation: fix linkgit references
Junio C Hamano [Thu, 26 May 2016 20:17:25 +0000 (13:17 -0700)]
Merge branch 'ls/travis-build-doc' into maint
CI test was taught to build documentation pages.
* ls/travis-build-doc:
travis-ci: build documentation
Junio C Hamano [Thu, 26 May 2016 20:17:24 +0000 (13:17 -0700)]
Merge branch 'jc/fsck-nul-in-commit' into maint
"git fsck" learned to catch NUL byte in a commit object as
potential error and warn.
* jc/fsck-nul-in-commit:
fsck: detect and warn a commit with embedded NUL
fsck_commit_buffer(): do not special case the last validation
Junio C Hamano [Thu, 26 May 2016 20:17:24 +0000 (13:17 -0700)]
Merge branch 'jk/rebase-interative-eval-fix' into maint
Portability enhancement for "rebase -i" to help platforms whose
shell does not like "for i in <empty>" (which is not POSIX-kosher).
* jk/rebase-interative-eval-fix:
rebase--interactive: avoid empty list in shell for-loop
Junio C Hamano [Thu, 26 May 2016 20:17:23 +0000 (13:17 -0700)]
Merge branch 'js/windows-dotgit' into maint
On Windows, .git and optionally any files whose name starts with a
dot are now marked as hidden, with a core.hideDotFiles knob to
customize this behaviour.
* js/windows-dotgit:
mingw: remove unnecessary definition
mingw: introduce the 'core.hideDotFiles' setting
Junio C Hamano [Thu, 26 May 2016 20:17:22 +0000 (13:17 -0700)]
Merge branch 'kf/gpg-sig-verification-doc' into maint
Documentation for "git merge --verify-signatures" has been updated
to clarify that the signature of only the commit at the tip is
verified. Also the phrasing used for signature and key validity is
adjusted to align with that used by OpenPGP.
* kf/gpg-sig-verification-doc:
Documentation: clarify signature verification
Junio C Hamano [Thu, 26 May 2016 20:17:21 +0000 (13:17 -0700)]
Merge branch 'lp/typofixes' into maint
Typofixes.
* lp/typofixes:
typofix: assorted typofixes in comments, documentation and messages
Junio C Hamano [Thu, 26 May 2016 20:17:21 +0000 (13:17 -0700)]
Merge branch 'sb/z-is-gnutar-ism' into maint
Test fix.
* sb/z-is-gnutar-ism:
t6041: do not compress backup tar file
t3513: do not compress backup tar file
Junio C Hamano [Thu, 26 May 2016 20:17:20 +0000 (13:17 -0700)]
Merge branch 'va/i18n-misc-updates' into maint
Mark several messages for translation.
* va/i18n-misc-updates:
i18n: unpack-trees: avoid substituting only a verb in sentences
i18n: builtin/pull.c: split strings marked for translation
i18n: builtin/pull.c: mark placeholders for translation
i18n: git-parse-remote.sh: mark strings for translation
i18n: branch: move comment for translators
i18n: branch: unmark string for translation
i18n: builtin/rm.c: remove a comma ',' from string
i18n: unpack-trees: mark strings for translation
i18n: builtin/branch.c: mark option for translation
i18n: index-pack: use plural string instead of normal one
Junio C Hamano [Thu, 26 May 2016 20:17:19 +0000 (13:17 -0700)]
Merge branch 'bn/config-doc-tt-varnames' into maint
Doc formatting fixes.
* bn/config-doc-tt-varnames:
config: consistently format $variables in monospaced font
config: describe 'pathname' value type
Junio C Hamano [Thu, 26 May 2016 20:17:18 +0000 (13:17 -0700)]
Merge branch 'nd/remote-plural-ours-plus-theirs' into maint
Message fix.
* nd/remote-plural-ours-plus-theirs:
remote.c: specify correct plural form in "commit diverge" message
Junio C Hamano [Thu, 26 May 2016 20:17:17 +0000 (13:17 -0700)]
Merge branch 'ak/t4151-ls-files-could-be-empty' into maint
Test fix.
* ak/t4151-ls-files-could-be-empty:
t4151: make sure argument to 'test -z' is given
Junio C Hamano [Thu, 26 May 2016 20:17:16 +0000 (13:17 -0700)]
Merge branch 'jc/test-seq' into maint
Test fix.
* jc/test-seq:
test-lib-functions.sh: rewrite test_seq without Perl
test-lib-functions.sh: remove misleading comment on test_seq
Junio C Hamano [Thu, 26 May 2016 20:17:15 +0000 (13:17 -0700)]
Merge branch 'tb/t5601-sed-fix' into maint
Test fix.
* tb/t5601-sed-fix:
t5601: Remove trailing space in sed expression
Junio C Hamano [Thu, 26 May 2016 20:17:14 +0000 (13:17 -0700)]
Merge branch 'va/i18n-remote-comment-to-align' into maint
Message fix.
* va/i18n-remote-comment-to-align:
i18n: remote: add comment for translators
Junio C Hamano [Thu, 26 May 2016 20:17:13 +0000 (13:17 -0700)]
Merge branch 'va/mailinfo-doc-typofix' into maint
Typofix.
* va/mailinfo-doc-typofix:
Documentation/git-mailinfo: fix typo
Junio C Hamano [Thu, 26 May 2016 20:16:51 +0000 (13:16 -0700)]
Merge branch 'maint-2.7' into maint
* maint-2.7:
archive-tar: convert snprintf to xsnprintf
Junio C Hamano [Thu, 26 May 2016 17:45:37 +0000 (10:45 -0700)]
Merge branch 'jk/war-on-sprintf' into maint-2.7
* jk/war-on-sprintf:
archive-tar: convert snprintf to xsnprintf
Jeff King [Thu, 26 May 2016 04:28:08 +0000 (00:28 -0400)]
archive-tar: convert snprintf to xsnprintf
Commit
f2f0267 (archive-tar: use xsnprintf for trivial
formatting, 2015-09-24) converted cases of "sprintf" to
"xsnprintf", but accidentally left one as just "snprintf".
This meant that we could silently truncate the resulting
buffer instead of flagging an error.
In practice, this is impossible to achieve, as we are
formatting a ustar checksum, which can be at most 7
characters. But the point of xsnprintf is to document and
check for "should be impossible" conditions; this site was
just accidentally mis-converted during
f2f0267.
Noticed-by: Paul Green <Paul.Green@stratus.com>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Mon, 23 May 2016 22:02:48 +0000 (15:02 -0700)]
Git 2.9-rc0
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Mon, 23 May 2016 22:01:03 +0000 (15:01 -0700)]
Merge branch 'svn-travis' of git://bogomips.org/git-svn
* 'svn-travis' of git://bogomips.org/git-svn:
travis-ci: enable Git SVN tests t91xx on Linux
Junio C Hamano [Mon, 23 May 2016 21:54:37 +0000 (14:54 -0700)]
Merge branch 'jc/rerere-multi'
* jc/rerere-multi:
rerere: remove an null statement
rerere: plug memory leaks upon "rerere forget" failure
Junio C Hamano [Mon, 23 May 2016 21:54:36 +0000 (14:54 -0700)]
Merge branch 'da/difftool'
"git difftool" learned to handle unmerged paths correctly in
dir-diff mode.
* da/difftool:
difftool: handle unmerged files in dir-diff mode
difftool: initialize variables for readability
Junio C Hamano [Mon, 23 May 2016 21:54:35 +0000 (14:54 -0700)]
Merge branch 'jk/test-z-n-unquoted'
t9xxx series has been updated primarily for readability, while
fixing small bugs in it. A few scripted Porcelains have also been
updated to fix possible bugs around their use of "test -z" and
"test -n".
* jk/test-z-n-unquoted:
always quote shell arguments to test -z/-n
t9103: modernize test style
t9107: switch inverted single/double quotes in test
t9107: use "return 1" instead of "exit 1"
t9100,t3419: enclose all test code in single-quotes
t/lib-git-svn: drop $remote_git_svn and $git_svn_id
Junio C Hamano [Mon, 23 May 2016 21:54:35 +0000 (14:54 -0700)]
Merge branch 'ar/diff-args-osx-precompose'
Many commands normalize command line arguments from NFD to NFC
variant of UTF-8 on OSX, but commands in the "diff" family did
not, causing "git diff $path" to complain that no such path is
known to Git. They have been taught to do the normalization.
* ar/diff-args-osx-precompose:
diff: run arguments through precompose_argv
Junio C Hamano [Mon, 23 May 2016 21:54:34 +0000 (14:54 -0700)]
Merge branch 'jc/doc-lint'
Find common mistakes when writing gitlink: in our documentation and
drive the check from "make check-docs".
I am not entirely happy with the way the script chooses what input
file to validate, but it is not worse than not having anything, so
let's move it forward and have the logic improved later when people
care about it deeply.
* jc/doc-lint:
ci: validate "linkgit:" in documentation
Junio C Hamano [Mon, 23 May 2016 21:54:33 +0000 (14:54 -0700)]
Merge branch 'js/perf-rebase-i'
Add perf test for "rebase -i"
* js/perf-rebase-i:
perf: run "rebase -i" under perf
perf: make the tests work in worktrees
perf: let's disable symlinks when they are not available
Junio C Hamano [Mon, 23 May 2016 21:54:32 +0000 (14:54 -0700)]
Merge branch 'jc/test-parse-options-expect'
t0040 had too many unnecessary repetitions in its test data. Teach
test-parse-options program so that a caller can tell what it
expects in its output, so that these repetitions can be cleaned up.
* jc/test-parse-options-expect:
t0040: convert a few tests to use test-parse-options --expect
t0040: remove unused test helpers
test-parse-options: --expect=<string> option to simplify tests
test-parse-options: fix output when callback option fails
Junio C Hamano [Mon, 23 May 2016 21:54:31 +0000 (14:54 -0700)]
Merge branch 'pb/commit-verbose-config'
"git commit" learned to pay attention to "commit.verbose"
configuration variable and act as if "--verbose" option was
given from the command line.
* pb/commit-verbose-config:
commit: add a commit.verbose config variable
t7507-commit-verbose: improve test coverage by testing number of diffs
parse-options.c: make OPTION_COUNTUP respect "unspecified" values
t/t7507: improve test coverage
t0040-parse-options: improve test coverage
test-parse-options: print quiet as integer
t0040-test-parse-options.sh: fix style issues
Junio C Hamano [Mon, 23 May 2016 21:54:31 +0000 (14:54 -0700)]
Merge branch 'xy/format-patch-base'
"git format-patch" learned a new "--base" option to record what
(public, well-known) commit the original series was built on in
its output.
* xy/format-patch-base:
format-patch: introduce format.useAutoBase configuration
format-patch: introduce --base=auto option
format-patch: add '--base' option to record base tree info
patch-ids: make commit_patch_id() a public helper function
Junio C Hamano [Mon, 23 May 2016 21:54:30 +0000 (14:54 -0700)]
Merge branch 'tb/core-eol-fix'
A couple of bugs around core.autocrlf have been fixed.
* tb/core-eol-fix:
convert.c: ident + core.autocrlf didn't work
t0027: test cases for combined attributes
convert: allow core.autocrlf=input and core.eol=crlf
t0027: make commit_chk_wrnNNO() reliable
Junio C Hamano [Mon, 23 May 2016 21:54:29 +0000 (14:54 -0700)]
Merge branch 'nd/worktree-various-heads'
The experimental "multiple worktree" feature gains more safety to
forbid operations on a branch that is checked out or being actively
worked on elsewhere, by noticing that e.g. it is being rebased.
* nd/worktree-various-heads:
branch: do not rename a branch under bisect or rebase
worktree.c: check whether branch is bisected in another worktree
wt-status.c: split bisect detection out of wt_status_get_state()
worktree.c: check whether branch is rebased in another worktree
worktree.c: avoid referencing to worktrees[i] multiple times
wt-status.c: make wt_status_check_rebase() work on any worktree
wt-status.c: split rebase detection out of wt_status_get_state()
path.c: refactor and add worktree_git_path()
worktree.c: mark current worktree
worktree.c: make find_shared_symref() return struct worktree *
worktree.c: store "id" instead of "git_dir"
path.c: add git_common_path() and strbuf_git_common_path()
dir.c: rename str(n)cmp_icase to fspath(n)cmp
Junio C Hamano [Mon, 23 May 2016 21:54:28 +0000 (14:54 -0700)]
Merge branch 'ss/commit-dry-run-resolve-merge-to-no-op'
"git commit --dry-run" reported "No, no, you cannot commit." in one
case where "git commit" would have allowed you to commit, and this
improves it a little bit ("git commit --dry-run --short" still does
not give you the correct answer, for example). This is a stop-gap
measure in that "commit --short --dry-run" still gives an incorrect
result.
* ss/commit-dry-run-resolve-merge-to-no-op:
wt-status.c: set commitable bit if there is a meaningful merge.
Lars Schneider [Thu, 19 May 2016 09:10:08 +0000 (11:10 +0200)]
travis-ci: enable Git SVN tests t91xx on Linux
Install the "git-svn" package to make the Perl SVN libraries available
to the Git SVN tests on Travis-CI Linux build machines.
Signed-off-by: Lars Schneider <larsxschneider@gmail.com>
Signed-off-by: Eric Wong <e@80x24.org>
Junio C Hamano [Thu, 19 May 2016 19:51:22 +0000 (12:51 -0700)]
rerere: remove an null statement
J6t spotted that previous commit added an empty statement by
mistake.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Wed, 18 May 2016 22:33:57 +0000 (15:33 -0700)]
Sync with 2.8.3
* maint:
Git 2.8.3
Junio C Hamano [Wed, 18 May 2016 21:45:08 +0000 (14:45 -0700)]
Git 2.8.3
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Wed, 18 May 2016 22:11:46 +0000 (15:11 -0700)]
Merge branch 'jk/push-client-deadlock-fix'
Some Windows SDK lacks pthread_sigmask() implementation and fails
to compile the recently updated "git push" codepath that uses it.
* jk/push-client-deadlock-fix:
Windows: only add a no-op pthread_sigmask() when needed
Windows: add pthread_sigmask() that does nothing
Junio C Hamano [Wed, 18 May 2016 21:40:15 +0000 (14:40 -0700)]
Merge branch 'sb/misc-cleanups' into HEAD
* sb/misc-cleanups:
submodule-config: don't shadow `cache`
config.c: drop local variable
credential-cache, send_request: close fd when done
bundle: don't leak an fd in case of early return
abbrev_sha1_in_line: don't leak memory
notes: don't leak memory in git_config_get_notes_strategy
Junio C Hamano [Wed, 18 May 2016 21:40:15 +0000 (14:40 -0700)]
Merge branch 'ew/doc-split-pack-disables-bitmap' into HEAD
Doc update.
* ew/doc-split-pack-disables-bitmap:
pack-objects: warn on split packs disabling bitmaps
Junio C Hamano [Wed, 18 May 2016 21:40:14 +0000 (14:40 -0700)]
Merge branch 'sb/clean-test-fix' into HEAD
* sb/clean-test-fix:
t7300: mark test with SANITY
Junio C Hamano [Wed, 18 May 2016 21:40:13 +0000 (14:40 -0700)]
Merge branch 'rn/glossary-typofix' into HEAD
* rn/glossary-typofix:
Documentation: fix typo 'In such these cases'
Junio C Hamano [Wed, 18 May 2016 21:40:12 +0000 (14:40 -0700)]
Merge branch 'ew/normal-to-e' into HEAD
* ew/normal-to-e:
.mailmap: update to my shorter email address
Junio C Hamano [Wed, 18 May 2016 21:40:12 +0000 (14:40 -0700)]
Merge branch 'sb/config-exit-status-list' into HEAD
Doc update.
* sb/config-exit-status-list:
config doc: improve exit code listing
Junio C Hamano [Wed, 18 May 2016 21:40:12 +0000 (14:40 -0700)]
Merge branch 'rt/string-list-lookup-cleanup' into HEAD
Code cleanup.
* rt/string-list-lookup-cleanup:
string_list: use string-list API in unsorted_string_list_lookup()
Junio C Hamano [Wed, 18 May 2016 21:40:12 +0000 (14:40 -0700)]
Merge branch 'jk/fix-attribute-macro-in-2.5' into HEAD
Code fixup.
* jk/fix-attribute-macro-in-2.5:
remote.c: spell __attribute__ correctly
Junio C Hamano [Wed, 18 May 2016 21:40:11 +0000 (14:40 -0700)]
Merge branch 'sg/test-lib-simplify-expr-away' into HEAD
Code cleanup.
* sg/test-lib-simplify-expr-away:
test-lib: simplify '--option=value' parsing
Junio C Hamano [Wed, 18 May 2016 21:40:11 +0000 (14:40 -0700)]
Merge branch 'nd/remove-unused' into HEAD
Code cleanup.
* nd/remove-unused:
wrapper.c: delete dead function git_mkstemps()
dir.c: remove dead function fnmatch_icase()
Junio C Hamano [Wed, 18 May 2016 21:40:10 +0000 (14:40 -0700)]
Merge branch 'sk/gitweb-highlight-encoding' into HEAD
Some multi-byte encoding can have a backslash byte as a later part
of one letter, which would confuse "highlight" filter used in
gitweb.
* sk/gitweb-highlight-encoding:
gitweb: apply fallback encoding before highlight
Junio C Hamano [Wed, 18 May 2016 21:40:09 +0000 (14:40 -0700)]
Merge branch 'ls/travis-submitting-patches' into HEAD
* ls/travis-submitting-patches:
Documentation: add setup instructions for Travis CI
Junio C Hamano [Wed, 18 May 2016 21:40:09 +0000 (14:40 -0700)]
Merge branch 'js/close-packs-before-gc' into HEAD
* js/close-packs-before-gc:
t5510: run auto-gc in the foreground
Junio C Hamano [Wed, 18 May 2016 21:40:08 +0000 (14:40 -0700)]
Merge branch 'ls/p4-lfs' into HEAD
Recent update to Git LFS broke "git p4" by changing the output from
its "lfs pointer" subcommand.
* ls/p4-lfs:
git-p4: fix Git LFS pointer parsing
travis-ci: express Linux/OS X dependency versions more clearly
travis-ci: update Git-LFS and P4 to the latest version
Junio C Hamano [Wed, 18 May 2016 21:40:08 +0000 (14:40 -0700)]
Merge branch 'ls/p4-lfs-test-fix-2.7.0' into HEAD
Fix a broken test.
* ls/p4-lfs-test-fix-2.7.0:
t9824: fix wrong reference value
t9824: fix broken &&-chain in a subshell
Junio C Hamano [Wed, 18 May 2016 21:40:07 +0000 (14:40 -0700)]
Merge branch 'nf/mergetool-prompt' into HEAD
UI consistency improvements.
* nf/mergetool-prompt:
difftool/mergetool: make the form of yes/no questions consistent
Junio C Hamano [Wed, 18 May 2016 21:40:07 +0000 (14:40 -0700)]
Merge branch 'jd/send-email-to-whom' into HEAD
A question by "git send-email" to ask the identity of the sender
has been updated.
* jd/send-email-to-whom:
send-email: fix grammo in the prompt that asks e-mail recipients
Junio C Hamano [Wed, 18 May 2016 21:40:06 +0000 (14:40 -0700)]
Merge branch 'js/win32-mmap' into HEAD
mmap emulation on Windows has been optimized and work better without
consuming paging store when not needed.
* js/win32-mmap:
mmap(win32): avoid expensive fstat() call
mmap(win32): avoid copy-on-write when it is unnecessary
win32mmap: set errno appropriately
Junio C Hamano [Wed, 18 May 2016 21:40:06 +0000 (14:40 -0700)]
Merge branch 'jk/push-client-deadlock-fix' into HEAD
Some Windows SDK lacks pthread_sigmask() implementation and fails
to compile the recently updated "git push" codepath that uses it.
* jk/push-client-deadlock-fix:
Windows: only add a no-op pthread_sigmask() when needed
Windows: add pthread_sigmask() that does nothing
t5504: drop sigpipe=ok from push tests
fetch-pack: isolate sigpipe in demuxer thread
send-pack: isolate sigpipe in demuxer thread
run-command: teach async threads to ignore SIGPIPE
send-pack: close demux pipe before finishing async process
Junio C Hamano [Wed, 18 May 2016 21:40:05 +0000 (14:40 -0700)]
Merge branch 'sb/mv-submodule-fix' into HEAD
"git mv old new" did not adjust the path for a submodule that lives
as a subdirectory inside old/ directory correctly.
* sb/mv-submodule-fix:
mv: allow moving nested submodules
Junio C Hamano [Wed, 18 May 2016 21:40:05 +0000 (14:40 -0700)]
Merge branch 'da/user-useconfigonly' into HEAD
The "user.useConfigOnly" configuration variable makes it an error
if users do not explicitly set user.name and user.email. However,
its check was not done early enough and allowed another error to
trigger, reporting that the default value we guessed from the
system setting was unusable. This was a suboptimal end-user
experience as we want the users to set user.name/user.email without
relying on the auto-detection at all.
* da/user-useconfigonly:
ident: give "please tell me" message upon useConfigOnly error
ident: check for useConfigOnly before auto-detection of name/email
Junio C Hamano [Wed, 18 May 2016 21:40:04 +0000 (14:40 -0700)]
Merge branch 'ld/p4-test-py3' into HEAD
The test scripts for "git p4" (but not "git p4" implementation
itself) has been updated so that they would work even on a system
where the installed version of Python is python 3.
* ld/p4-test-py3:
git-p4 tests: time_in_seconds should use $PYTHON_PATH
git-p4 tests: work with python3 as well as python2
git-p4 tests: cd to / before running python
Junio C Hamano [Tue, 17 May 2016 21:47:06 +0000 (14:47 -0700)]
Thirteenth batch for 2.9
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Tue, 17 May 2016 21:38:39 +0000 (14:38 -0700)]
Merge branch 'kf/gpg-sig-verification-doc'
Documentation for "git merge --verify-signatures" has been updated
to clarify that the signature of only the commit at the tip is
verified. Also the phrasing used for signature and key validity is
adjusted to align with that used by OpenPGP.
* kf/gpg-sig-verification-doc:
Documentation: clarify signature verification
Junio C Hamano [Tue, 17 May 2016 21:38:39 +0000 (14:38 -0700)]
Merge branch 'js/windows-dotgit'
On Windows, .git and optionally any files whose name starts with a
dot are now marked as hidden, with a core.hideDotFiles knob to
customize this behaviour.
* js/windows-dotgit:
mingw: remove unnecessary definition
mingw: introduce the 'core.hideDotFiles' setting
Junio C Hamano [Tue, 17 May 2016 21:38:37 +0000 (14:38 -0700)]
Merge branch 'va/mailinfo-doc-typofix'
Typofix.
* va/mailinfo-doc-typofix:
Documentation/git-mailinfo: fix typo
Junio C Hamano [Tue, 17 May 2016 21:38:36 +0000 (14:38 -0700)]
Merge branch 'jk/test-send-sh-x-trace-elsewhere'
Running tests with '-x' option to trace the individual command
executions is a useful way to debug test scripts, but some tests
that capture the standard error stream and check what the command
said can be broken with the trace output mixed in. When running
our tests under "bash", however, we can redirect the trace output
to another file descriptor to keep the standard error of programs
being tested intact.
* jk/test-send-sh-x-trace-elsewhere:
test-lib: set BASH_XTRACEFD automatically
Junio C Hamano [Tue, 17 May 2016 21:38:35 +0000 (14:38 -0700)]
Merge branch 'js/http-custom-headers'
Update tests for "http.extraHeaders=<header>" to be portable back
to Apache 2.2 (the original depended on <RequireAll/> which is a
more recent feature).
* js/http-custom-headers:
submodule: ensure that -c http.extraheader is heeded
t5551: make the test for extra HTTP headers more robust
tests: adjust the configuration for Apache 2.2
Junio C Hamano [Tue, 17 May 2016 21:38:35 +0000 (14:38 -0700)]
Merge branch 'jk/rebase-interative-eval-fix'
Portability enhancement for "rebase -i" to help platforms whose
shell does not like "for i in <empty>" (which is not POSIX-kosher).
* jk/rebase-interative-eval-fix:
rebase--interactive: avoid empty list in shell for-loop
Junio C Hamano [Tue, 17 May 2016 21:38:34 +0000 (14:38 -0700)]
Merge branch 'jc/fsck-nul-in-commit'
"git fsck" learned to catch NUL byte in a commit object as
potential error and warn.
* jc/fsck-nul-in-commit:
fsck: detect and warn a commit with embedded NUL
fsck_commit_buffer(): do not special case the last validation
Junio C Hamano [Tue, 17 May 2016 21:38:33 +0000 (14:38 -0700)]
Merge branch 'nd/test-helpers'
Switching between 'master' and 'next', between which the paths to
test helper binaries have changed, did not update bin-wrappers/*
scripts used in tests, causing false test failures.
* nd/test-helpers:
wrap-for-bin.sh: regenerate bin-wrappers when switching branches
Junio C Hamano [Tue, 17 May 2016 21:38:33 +0000 (14:38 -0700)]
Merge branch 'ls/travis-build-doc'
CI test was taught to build documentation pages.
* ls/travis-build-doc:
travis-ci: build documentation
Junio C Hamano [Tue, 17 May 2016 21:38:32 +0000 (14:38 -0700)]
Merge branch 'jc/ll-merge-internal'
"git rerere" can get confused by conflict markers deliberately left
by the inner merge step, because they are indistinguishable from
the real conflict markers left by the outermost merge which are
what the end user and "rerere" need to look at. This was fixed by
making the conflict markers left by the inner merges a bit longer.
* jc/ll-merge-internal:
t6036: remove pointless test that expects failure
ll-merge: use a longer conflict marker for internal merge
ll-merge: fix typo in comment
Junio C Hamano [Tue, 17 May 2016 21:38:31 +0000 (14:38 -0700)]
Merge branch 'jc/linkgit-fix'
Many 'linkgit:<git documentation page>' references were broken,
which are all fixed with this.
* jc/linkgit-fix:
Documentation: fix linkgit references
Junio C Hamano [Tue, 17 May 2016 21:38:30 +0000 (14:38 -0700)]
Merge branch 'va/i18n-remote-comment-to-align'
Message fix.
* va/i18n-remote-comment-to-align:
i18n: remote: add comment for translators
Junio C Hamano [Tue, 17 May 2016 21:38:29 +0000 (14:38 -0700)]
Merge branch 'tb/t5601-sed-fix'
Test fix.
* tb/t5601-sed-fix:
t5601: Remove trailing space in sed expression
Junio C Hamano [Tue, 17 May 2016 21:38:28 +0000 (14:38 -0700)]
Merge branch 'nd/error-errno'
The code for warning_errno/die_errno has been refactored and a new
error_errno() reporting helper is introduced.
* nd/error-errno: (41 commits)
wrapper.c: use warning_errno()
vcs-svn: use error_errno()
upload-pack.c: use error_errno()
unpack-trees.c: use error_errno()
transport-helper.c: use error_errno()
sha1_file.c: use {error,die,warning}_errno()
server-info.c: use error_errno()
sequencer.c: use error_errno()
run-command.c: use error_errno()
rerere.c: use error_errno() and warning_errno()
reachable.c: use error_errno()
mailmap.c: use error_errno()
ident.c: use warning_errno()
http.c: use error_errno() and warning_errno()
grep.c: use error_errno()
gpg-interface.c: use error_errno()
fast-import.c: use error_errno()
entry.c: use error_errno()
editor.c: use error_errno()
diff-no-index.c: use error_errno()
...
Junio C Hamano [Tue, 17 May 2016 21:38:28 +0000 (14:38 -0700)]
Merge branch 'jc/test-seq'
Test fix.
* jc/test-seq:
test-lib-functions.sh: rewrite test_seq without Perl
test-lib-functions.sh: remove misleading comment on test_seq
Junio C Hamano [Tue, 17 May 2016 21:38:27 +0000 (14:38 -0700)]
Merge branch 'es/test-gpg-tags'
Test fix.
* es/test-gpg-tags:
t6302: simplify non-gpg cases
Junio C Hamano [Tue, 17 May 2016 21:38:26 +0000 (14:38 -0700)]
Merge branch 'ak/t4151-ls-files-could-be-empty'
Test fix.
* ak/t4151-ls-files-could-be-empty:
t4151: make sure argument to 'test -z' is given
Junio C Hamano [Tue, 17 May 2016 21:38:25 +0000 (14:38 -0700)]
Merge branch 'jk/submodule-c-credential'
An earlier addition of "sanitize_submodule_env" with
14111fc4 (git:
submodule honor -c credential.* from command line, 2016-02-29)
turned out to be a convoluted no-op; implement what it wanted to do
correctly, and stop filtering settings given via "git -c var=val".
* jk/submodule-c-credential:
submodule: stop sanitizing config options
submodule: use prepare_submodule_repo_env consistently
submodule--helper: move config-sanitizing to submodule.c
submodule: export sanitized GIT_CONFIG_PARAMETERS
t5550: break submodule config test into multiple sub-tests
t5550: fix typo in $HTTPD_URL
Junio C Hamano [Tue, 17 May 2016 21:38:24 +0000 (14:38 -0700)]
Merge branch 'nd/remote-plural-ours-plus-theirs'
Message fix.
* nd/remote-plural-ours-plus-theirs:
remote.c: specify correct plural form in "commit diverge" message
Junio C Hamano [Tue, 17 May 2016 21:38:23 +0000 (14:38 -0700)]
Merge branch 'bn/config-doc-tt-varnames'
Doc formatting fixes.
* bn/config-doc-tt-varnames:
config: consistently format $variables in monospaced font
Junio C Hamano [Tue, 17 May 2016 21:38:22 +0000 (14:38 -0700)]
Merge branch 'va/i18n-misc-updates'
Mark several messages for translation.
* va/i18n-misc-updates:
i18n: unpack-trees: avoid substituting only a verb in sentences
i18n: builtin/pull.c: split strings marked for translation
i18n: builtin/pull.c: mark placeholders for translation
i18n: git-parse-remote.sh: mark strings for translation
i18n: branch: move comment for translators
i18n: branch: unmark string for translation
i18n: builtin/rm.c: remove a comma ',' from string
i18n: unpack-trees: mark strings for translation
i18n: builtin/branch.c: mark option for translation
i18n: index-pack: use plural string instead of normal one
Junio C Hamano [Tue, 17 May 2016 21:38:22 +0000 (14:38 -0700)]
Merge branch 'js/t3404-typofix'
* js/t3404-typofix:
t3404: fix typo
Junio C Hamano [Tue, 17 May 2016 21:38:21 +0000 (14:38 -0700)]
Merge branch 'sb/z-is-gnutar-ism'
* sb/z-is-gnutar-ism:
t6041: do not compress backup tar file
t3513: do not compress backup tar file
Junio C Hamano [Tue, 17 May 2016 21:38:20 +0000 (14:38 -0700)]
Merge branch 'lp/typofixes'
* lp/typofixes:
typofix: assorted typofixes in comments, documentation and messages
Junio C Hamano [Tue, 17 May 2016 21:38:19 +0000 (14:38 -0700)]
Merge branch 'sb/submodule-deinit-all'
Correct faulty recommendation to use "git submodule deinit ." when
de-initialising all submodules, which would result in a strange
error message in a pathological corner case.
* sb/submodule-deinit-all:
submodule deinit: require '--all' instead of '.' for all submodules
Junio C Hamano [Tue, 17 May 2016 21:38:19 +0000 (14:38 -0700)]
Merge branch 'jc/config-pathname-type'
Consolidate description of tilde-expansion that is done to
configuration variables that take pathname to a single place.
* jc/config-pathname-type:
config: describe 'pathname' value type
Junio C Hamano [Tue, 17 May 2016 21:38:18 +0000 (14:38 -0700)]
Merge branch 'bn/http-cookiefile-config'
"http.cookieFile" configuration variable clearly wants a pathname,
but we forgot to treat it as such by e.g. applying tilde expansion.
* bn/http-cookiefile-config:
http: expand http.cookieFile as a path
Documentation: config: improve word ordering for http.cookieFile
Junio C Hamano [Tue, 17 May 2016 21:38:17 +0000 (14:38 -0700)]
Merge branch 'ab/hooks'
A new configuration variable core.hooksPath allows customizing
where the hook directory is.
* ab/hooks:
hooks: allow customizing where the hook directory is
githooks.txt: minor improvements to the grammar & phrasing
githooks.txt: amend dangerous advice about 'update' hook ACL
githooks.txt: improve the intro section
Junio C Hamano [Tue, 17 May 2016 21:38:16 +0000 (14:38 -0700)]
Merge branch 'sb/submodule-init'
Update of "git submodule" to move pieces of logic to C continues.
* sb/submodule-init:
submodule init: redirect stdout to stderr
submodule--helper update-clone: abort gracefully on missing .gitmodules
submodule init: fail gracefully with a missing .gitmodules file
submodule: port init from shell to C
submodule: port resolve_relative_url from shell to C
David Aguilar [Mon, 16 May 2016 18:05:37 +0000 (11:05 -0700)]
difftool: handle unmerged files in dir-diff mode
When files are unmerged they can show up as both unmerged and
modified in the output of `git diff --raw`. This causes
difftool's dir-diff to create filesystem entries for the same
path twice, which fails when it encounters a duplicate path.
Ensure that each worktree path is only processed once.
Add a test to demonstrate the breakage.
Reported-by: Jan Smets <jan@smets.cx>
Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
David Aguilar [Mon, 16 May 2016 18:05:36 +0000 (11:05 -0700)]
difftool: initialize variables for readability
The code always goes into one of the two conditional blocks but make it
clear that not doing so is an error condition by setting $ok to 0.
Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King [Fri, 13 May 2016 20:47:33 +0000 (16:47 -0400)]
always quote shell arguments to test -z/-n
In shell code like:
test -z $foo
test -n $foo
that does not quote its arguments, it's easy to think that
it is actually looking at the contents of $foo in each case.
But if $foo is empty, then "test" does not see any argument
at all! The results are quite subtle.
POSIX specifies that test's behavior depends on the number
of arguments it sees, and if $foo is empty, it sees only
one. The behavior in this case is:
1 argument: Exit true (0) if $1 is not null; otherwise,
exit false.
So in the "-z $foo" case, if $foo is empty, then we check
that "-z" is non-null, and it returns success. Which happens
to match what we expected. But for "-n $foo", if $foo is
empty, we'll see that "-n" is non-null and still return
success. That's the opposite of what we intended!
Furthermore, if $foo contains whitespace, we'll end up with
more than 2 arguments. The results in this case are
generally unspecified (unless the first part of $foo happens
to be a valid binary operator, in which case the results are
specified but certainly not what we intended).
And on top of this, even though "test -z $foo" _should_ work
for the empty case, some older shells (reportedly ksh88)
complain about the missing argument.
So let's make sure we consistently quote our variable
arguments to "test". After this patch, the results of:
git grep 'test -[zn] [^"]'
are empty.
Reported-by: Armin Kunaschik <megabreit@googlemail.com>
Helped-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King [Fri, 13 May 2016 20:47:28 +0000 (16:47 -0400)]
t9103: modernize test style
The main goal here was to avoid double-quotes for
surrounding the test snippet, since it makes the code hard
to read (and to grep for common problems).
But while we're here, we can fix a few other things:
- use test_path_* helpers, which are more robust and give
better error messages
- only "cd" inside a subshell, which leaves the
environment pristine if further tests are added
- consistently quote shell arguments. These aren't wrong
if we assume find-rev output doesn't have any
whitespace, but it doesn't hurt to be careful.
- replace the old-style 'test x$foo = x' with 'test -z
"$foo"'. Besides the quoting fix, this is the form we
generally use in our test suite.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King [Fri, 13 May 2016 20:47:24 +0000 (16:47 -0400)]
t9107: switch inverted single/double quotes in test
One of the test snippets in t9107 is enclosed in double
quotes, but then uses single quotes to surround an
interpolated variable inside the snippet, like:
test_expect_success '...' "
test -n '$head'
"
This happens to work because the variable is interpolated
_before_ the snippet is run, and the result is eval'd. So as
long as the variable does not contain any single quotes, the
two are equivalent. And it doesn't, as we know it is a sha1
from rev-parse above. But this construct is unnecessarily
confusing.
But we can go a step further in cleaning up. The test is
really checking that a particular ref has a value. Rather
than checking if rev-parse produced output, we can just move
rev-parse into the test itself, and rely on the exit code
from --verify. Nobody else cares about the $head variable at
all.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>