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.
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
Junio C Hamano [Fri, 13 May 2016 20:23:24 +0000 (13:23 -0700)]
Twelfth batch for 2.9
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Fri, 13 May 2016 20:18:28 +0000 (13:18 -0700)]
Merge branch 'sb/submodule-module-list-pathspec-fix'
* sb/submodule-module-list-pathspec-fix:
submodule deinit test: fix broken && chain in subshell
Junio C Hamano [Fri, 13 May 2016 20:18:27 +0000 (13:18 -0700)]
Merge branch 'jc/commit-tree-ignore-commit-gpgsign'
"git commit-tree" plumbing command required the user to always sign
its result when the user sets the commit.gpgsign configuration
variable, which was an ancient mistake. Rework "git rebase" that
relied on this mistake so that it reads commit.gpgsign and pass (or
not pass) the -S option to "git commit-tree" to keep the end-user
expectation the same, while teaching "git commit-tree" to ignore
the configuration variable. This will stop requiring the users to
sign commit objects used internally as an implementation detail of
"git stash".
* jc/commit-tree-ignore-commit-gpgsign:
commit-tree: do not pay attention to commit.gpgsign
Matthieu Moy [Fri, 13 May 2016 17:00:41 +0000 (19:00 +0200)]
git-multimail: update to release 1.3.1
The changes are described in CHANGES.
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Keller Fuchs [Fri, 13 May 2016 09:51:01 +0000 (09:51 +0000)]
Documentation: clarify signature verification
Clarify that "merge --verify-signatures" checks the signature on the
tip commit of the history being merged.
Uniformise the vocabulary used wrt. key/signature validity with OpenPGP:
- a signature is valid if made by a key with a valid uid;
- in the default trust-model, a uid is valid if signed by a trusted key;
- a key is trusted if the (local) user set a trust level for it.
Helped-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Keller Fuchs <KellerFuchs@hashbang.sh>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Vasco Almeida [Thu, 12 May 2016 23:16:26 +0000 (23:16 +0000)]
i18n: unpack-trees: avoid substituting only a verb in sentences
Instead of reusing the same set of message templates for checkout
and other actions and substituting the verb with "%s", prepare
separate message templates for each known action. That would make
it easier for translation into languages where the same verb may
conjugate differently depending on the message we are giving.
See gettext documentation for details:
http://www.gnu.org/software/gettext/manual/html_node/Preparing-Strings.html
Helped-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Vasco Almeida [Wed, 11 May 2016 20:42:54 +0000 (20:42 +0000)]
Documentation/git-mailinfo: fix typo
Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King [Wed, 11 May 2016 13:44:04 +0000 (09:44 -0400)]
test-lib: set BASH_XTRACEFD automatically
Passing "-x" to a test script enables the shell's "set -x"
tracing, which can help with tracking down the command that
is causing a failure. Unfortunately, it can also _cause_
failures in some tests that redirect the stderr of a shell
function. Inside the function the shell continues to
respect "set -x", and the trace output is collected along
with whatever stderr is generated normally by the function.
You can see an example of this by running:
./t0040-parse-options.sh -x -i
which will fail immediately in the first test, as it
expects:
test_must_fail some-cmd 2>output.err
to leave output.err empty (but with "-x" it has our trace
output).
Unfortunately there isn't a portable or scalable solution to
this. We could teach test_must_fail to disable "set -x", but
that doesn't help any of the other functions or subshells.
However, we can work around it by pointing the "set -x"
output to our descriptor 4, which always points to the
original stderr of the test script. Unfortunately this only
works for bash, but it's better than nothing (and other
shells will just ignore the BASH_XTRACEFD variable).
The patch itself is a simple one-liner, but note the caveats
in the accompanying comments.
Automatic tests for our "-x" option may be a bit too meta
(and a pain, because they are bash-specific), but I did
confirm that it works correctly both with regular "-x" and
with "--verbose-only=1". This works because the latter flips
"set -x" off and on for particular tests (if it didn't, we
would get tracing for all tests, as going to descriptor 4
effectively circumvents the verbose flag).
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Johannes Schindelin [Wed, 11 May 2016 15:10:30 +0000 (17:10 +0200)]
Windows: only add a no-op pthread_sigmask() when needed
In
f924b52 (Windows: add pthread_sigmask() that does nothing,
2016-05-01), we introduced a no-op for Windows. However, this breaks
building Git in Git for Windows' SDK because pthread_sigmask() is
already a no-op there, #define'd in the pthread_signal.h header in
/mingw64/x86_64-w64-mingw32/include/.
Let's wrap the definition of pthread_sigmask() in a guard that skips
it when compiling with MinGW-w64' headers.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Johannes Schindelin [Wed, 11 May 2016 08:43:41 +0000 (10:43 +0200)]
mingw: remove unnecessary definition
For some reason, the definition of the MINGW version of
`mark_as_git_dir()` slipped into this developer's patch series to
support building Git for Windows.
As the `mark_as_git_dir()` function is not needed at all anymore (it was
used originally to support the core.hideDotFiles = gitDirOnly setting,
but we now use a different method to support that case), let's just
remove it.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Johannes Schindelin [Wed, 11 May 2016 08:43:37 +0000 (10:43 +0200)]
mingw: introduce the 'core.hideDotFiles' setting
On Unix (and Linux), files and directories whose names start with a dot
are usually not shown by default. This convention is used by Git: the
.git/ directory should be left alone by regular users, and only accessed
through Git itself.
On Windows, no such convention exists. Instead, there is an explicit flag
to mark files or directories as hidden.
In the early days, Git for Windows did not mark the .git/ directory (or
for that matter, any file or directory whose name starts with a dot)
hidden. This lead to quite a bit of confusion, and even loss of data.
Consequently, Git for Windows introduced the core.hideDotFiles setting,
with three possible values: true, false, and dotGitOnly, defaulting to
marking only the .git/ directory as hidden.
The rationale: users do not need to access .git/ directly, and indeed (as
was demonstrated) should not really see that directory, either. However,
not all dot files should be hidden by default, as e.g. Eclipse does not
show them (and the user would therefore be unable to see, say, a
.gitattributes file).
In over five years since the last attempt to bring this patch into core
Git, a slightly buggy version of this patch has served Git for Windows'
users well: no single report indicated problems with the hidden .git/
directory, and the stream of problems caused by the previously non-hidden
.git/ directory simply stopped. The bugs have been fixed during the
process of getting this patch upstream.
Note that there is a funny quirk we have to pay attention to when
creating hidden files: we use Win32's _wopen() function which
transmogrifies its arguments and hands off to Win32's CreateFile()
function. That latter function errors out with ERROR_ACCESS_DENIED (the
equivalent of EACCES) when the equivalent of the O_CREAT flag was passed
and the file attributes (including the hidden flag) do not match an
existing file's. And _wopen() accepts no parameter that would be
transmogrified into said hidden flag. Therefore, we simply try again
without O_CREAT.
A slightly different method is required for our fopen()/freopen()
function as we cannot even *remove* the implicit O_CREAT flag.
Therefore, we briefly mark existing files as unhidden when opening them
via fopen()/freopen().
The ERROR_ACCESS_DENIED error can also be triggered by opening a file
that is marked as a system file (which is unlikely to be tracked in
Git), and by trying to create a file that has *just* been deleted and is
awaiting the last open handles to be released (which would be handled
better by the "Try again?" logic, a story for a different patch series,
though). In both cases, it does not matter much if we try again without
the O_CREAT flag, read: it does not hurt, either.
For details how ERROR_ACCESS_DENIED can be triggered, see
https://msdn.microsoft.com/en-us/library/windows/desktop/
aa363858
Original-patch-by: Erik Faye-Lund <kusmabite@gmail.com>
Initial-Test-By: Pat Thoyts <patthoyts@users.sourceforge.net>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King [Tue, 10 May 2016 21:07:10 +0000 (17:07 -0400)]
rebase--interactive: avoid empty list in shell for-loop
The $strategy_opts variable contains a space-separated list
of strategy options, each individually shell-quoted. To loop
over each, we "unwrap" them by doing an eval like:
eval '
for opt in '"$strategy_opts"'
do
...
done
'
Note the quoting that means we expand $strategy_opts inline
in the code to be evaluated (which is the right thing
because we want the IFS-split and de-quoting). If the
variable is empty, however, we ask the shell to eval the
following code:
for opt in
do
...
done
without anything between "in" and "do". Most modern shells
are happy to treat that like a noop, but reportedly ksh88 on
AIX considers it a syntax error. So let's catch the case
that the variable is empty and skip the eval altogether
(since we know the loop would be a noop anyway).
Reported-by: Armin Kunaschik <megabreit@googlemail.com>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Tue, 10 May 2016 20:46:57 +0000 (13:46 -0700)]
Eleventh batch for 2.9
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Tue, 10 May 2016 20:40:57 +0000 (13:40 -0700)]
Merge branch 'svn/bad-ref' of git://bogomips.org/git-svn
* 'svn/bad-ref' of git://bogomips.org/git-svn:
Git/SVN: die when there is no commit metadata
Junio C Hamano [Tue, 10 May 2016 20:40:33 +0000 (13:40 -0700)]
Merge branch 'sk/gitweb-highlight-encoding'
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 [Tue, 10 May 2016 20:40:32 +0000 (13:40 -0700)]
Merge branch 'sb/clean-test-fix'
* sb/clean-test-fix:
t7300: mark test with SANITY
Junio C Hamano [Tue, 10 May 2016 20:40:31 +0000 (13:40 -0700)]
Merge branch 'rn/glossary-typofix'
* rn/glossary-typofix:
Documentation: fix typo 'In such these cases'
Junio C Hamano [Tue, 10 May 2016 20:40:30 +0000 (13:40 -0700)]
Merge branch 'ls/travis-submitting-patches'
* ls/travis-submitting-patches:
Documentation: add setup instructions for Travis CI
Junio C Hamano [Tue, 10 May 2016 20:40:30 +0000 (13:40 -0700)]
Merge branch 'js/close-packs-before-gc'
* js/close-packs-before-gc:
t5510: run auto-gc in the foreground
Junio C Hamano [Tue, 10 May 2016 20:40:29 +0000 (13:40 -0700)]
Merge branch 'ew/normal-to-e'
* ew/normal-to-e:
.mailmap: update to my shorter email address
Junio C Hamano [Tue, 10 May 2016 20:40:29 +0000 (13:40 -0700)]
Merge branch 'ls/p4-lfs'
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 [Tue, 10 May 2016 20:40:29 +0000 (13:40 -0700)]
Merge branch 'sb/misc-cleanups'
* sb/misc-cleanups:
submodule-config: don't shadow `cache`
config.c: drop local variable
Junio C Hamano [Tue, 10 May 2016 20:40:28 +0000 (13:40 -0700)]
Merge branch 'ew/doc-split-pack-disables-bitmap'
Doc update.
* ew/doc-split-pack-disables-bitmap:
pack-objects: warn on split packs disabling bitmaps
Duy Nguyen [Tue, 10 May 2016 11:58:56 +0000 (18:58 +0700)]
wrap-for-bin.sh: regenerate bin-wrappers when switching branches
Commit
e6e7530 (test helpers: move test-* to t/helper/ subdirectory -
2016-04-13) moves test-* to t/helper. However because bin-wrappers/*
only depend on wrap-for-bin.sh, when switching between a branch that has
this commit and one that does not, bin-wrappers/* may not be regenerated
and point to the old/outdated test programs.
This commit makes a non-functional change in wrap-for-bin.sh, just
enough for 'make' to detect and re-execute wrap-for-bin.sh. When
switching between a branch containing both this commit and
e6e7530 and
one containing neither, bin-wrappers/*, we should get fresh bin-wrappers/*.
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Fri, 6 May 2016 18:17:05 +0000 (11:17 -0700)]
t0040: convert a few tests to use test-parse-options --expect
As a small example of using "test-parse-options --expect",
rewrite the "check" helper using it, instead of comparing
the whole variable dump.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Fri, 6 May 2016 17:52:34 +0000 (10:52 -0700)]
t0040: remove unused test helpers
9a001381 (Fix tests under GETTEXT_POISON on parseopt, 2012-08-27)
introduced check_i18n, but the helper was never used from the
beginning.
The same commit also introduced check_unknown_i18n to replace the
helper check_unknown and changed all users of the latter to use the
former, but failed to remove check_unknown itself.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Thu, 5 May 2016 21:36:55 +0000 (14:36 -0700)]
test-parse-options: --expect=<string> option to simplify tests
Existing tests in t0040 follow a rather verbose pattern:
cat >expect <<\EOF
boolean: 0
integer: 0
magnitude: 0
timestamp: 0
string: (not set)
abbrev: 7
verbose: 0
quiet: 3
dry run: no
file: (not set)
EOF
test_expect_success 'multiple quiet levels' '
test-parse-options -q -q -q >output 2>output.err &&
test_must_be_empty output.err &&
test_cmp expect output
'
But the only thing this test cares about is if "quiet: 3" is in the
output. We should be able to write the above 18 lines with just
four lines, like this:
test_expect_success 'multiple quiet levels' '
test-parse-options --expect="quiet: 3" -q -q -q
'
Teach the new --expect=<string> option to test-parse-options helper.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Thu, 5 May 2016 20:30:10 +0000 (13:30 -0700)]
test-parse-options: fix output when callback option fails
When test-parse-options detects an error on the command line, it
gives the usage string just like any parse-options API users do,
without showing any "variable dump". An exception is the callback
test, where a "variable dump" for the option is done before the
command line options are fully parsed.
Do not expose this implementation detail by separating the handling
of callback test into two phases, one to capture the fact that an
option was given during the option parsing phase, and the other to
show that fact as a part of normal "variable dump".
The effect of this fix is seen in the patch to t/t0040 where it
tried "test-parse-options --no-length" where "--length" is a callback
that does not take a negative form.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Johannes Schindelin [Tue, 10 May 2016 07:08:56 +0000 (09:08 +0200)]
submodule: ensure that -c http.extraheader is heeded
To support this developer's use case of allowing build agents token-based
access to private repositories, we introduced the http.extraheader
feature, allowing extra HTTP headers to be sent along with every HTTP
request.
This patch verifies that we can configure these extra HTTP headers via the
command-line for use with `git submodule update`, too. Example: git -c
http.extraheader="Secret: Sauce" submodule update --init
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Johannes Schindelin [Tue, 10 May 2016 14:05:58 +0000 (16:05 +0200)]
t3404: fix typo
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Lars Schneider [Wed, 4 May 2016 08:38:36 +0000 (10:38 +0200)]
travis-ci: build documentation
Build documentation as separate Travis CI job to check for
documentation errors.
Signed-off-by: Lars Schneider <larsxschneider@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Tue, 10 May 2016 17:38:31 +0000 (10:38 -0700)]
Merge branch 'jk/submodule-c-credential' into js/http-custom-headers
* 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
git_config_push_parameter: handle empty GIT_CONFIG_PARAMETERS
git: submodule honor -c credential.* from command line
quote: implement sq_quotef()
submodule: fix segmentation fault in submodule--helper clone
submodule: fix submodule--helper clone usage
submodule: check argc count for git submodule--helper clone
submodule: don't pass empty string arguments to submodule--helper clone
Johannes Schindelin [Mon, 9 May 2016 06:19:00 +0000 (08:19 +0200)]
t5551: make the test for extra HTTP headers more robust
To test that extra HTTP headers are passed correctly, t5551 verifies that
a fetch succeeds when two required headers are passed, and that the fetch
does not succeed when those headers are not passed.
However, this test would also succeed if the configuration required only
one header. As Apache's configuration is notoriously tricky (this
developer frequently requires StackOverflow's help to understand Apache's
documentation), especially when still supporting the 2.2 line, let's just
really make sure that the test verifies what we want it to verify.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Reviewed-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Johannes Schindelin [Mon, 9 May 2016 05:59:16 +0000 (07:59 +0200)]
tests: adjust the configuration for Apache 2.2
Lars Schneider noticed that the configuration introduced to test the
extra HTTP headers cannot be used with Apache 2.2 (which is still
actively maintained, as pointed out by Junio Hamano).
To let the tests pass with Apache 2.2 again, let's substitute the
offending <RequireAll> and `expr` by using old school RewriteCond
statements.
As RewriteCond does not allow testing for *non*-matches, we simply match
the desired case first and let it pass by marking the RewriteRule as
'[L]' ("last rule, do not process any other matching RewriteRules after
this"), and then have another RewriteRule that matches all other cases
and lets them fail via '[F]' ("fail").
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Tested-by: Lars Schneider <larsxschneider@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Pranit Bauva [Thu, 5 May 2016 09:50:02 +0000 (15:20 +0530)]
commit: add a commit.verbose config variable
Add commit.verbose configuration variable as a convenience for those
who always prefer --verbose.
Add tests to check the behavior introduced by this commit and also to
verify that behavior of status doesn't break because of this commit.
Helped-by: Junio C Hamano <gitster@pobox.com>
Helped-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Pranit Bauva <pranit.bauva@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Thu, 14 Apr 2016 17:58:22 +0000 (10:58 -0700)]
fsck: detect and warn a commit with embedded NUL
Even though a Git commit object is designed to be capable of storing
any binary data as its payload, in practice people use it to describe
the changes in textual form, and tools like "git log" are designed to
treat the payload as text.
Detect and warn when we see any commit object with a NUL byte in
it.
Note that a NUL byte in the header part is already detected as a
grave error. This change is purely about the message part.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Wed, 4 May 2016 17:36:24 +0000 (10:36 -0700)]
Documentation: fix linkgit references
There are a handful of incorrect "linkgit:<page>[<section>]"
instances in our documentation set.
* Some have an extra colon after "linkgit:"; fix them by removing
the extra colon;
* Some refer to a page outside the Git suite, namely curl(1); fix
them by using the `curl(1)` that already appears on the same page
for the same purpose of referring the readers to its manual page.
* Some spell the name of the page incorrectly, e.g. "rev-list" when
they mean "git-rev-list"; fix them.
* Some list the manual section incorrectly; fix them to make sure
they match what is at the top of the target of the link.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Wed, 27 Apr 2016 22:05:57 +0000 (15:05 -0700)]
t6036: remove pointless test that expects failure
One test in t6036 prepares a file whose contents contain these
lines:
<<<<<<< Temporary merge branch 1
C
=======
B
>>>>>>> Temporary merge branch 2
and uses recursive merge strategy to run criss-cross merge with it.
Manual merge resolution by users fundamentally depends on being able
to distinguish the tracked contents from the separator lines added
by "git merge" in order to allow users to tell which block of lines
came from where. You can deliberately craft a file with lines that
resemble conflict marker lines to make it impossible for the user
(the outer merge of merge-recursive counts as a user of the result
of "virtual parent" merge) to tell which part is which, and write a
test to demonstrate that with such a file that "git merge" cannot
fundamentally work well and has to fail.
It however is pointless and waste of time and resource to run such a
test that asserts the obvious.
In real life, people who do need to track files with such lines that
have <<<< ==== >>>> as their prefixes set the conflict-marker-size
attribute to make sure they will be able to tell between the tracked
lines that happen to begin with these (confusing) prefixes and the
marker lines that are added by "git merge".
Remove the test as pointless waste of resource.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Thu, 14 Apr 2016 22:35:09 +0000 (15:35 -0700)]
ll-merge: use a longer conflict marker for internal merge
The primary use of conflict markers is to help the user who resolves
the final (outer) merge by hand to show which part came from which
branch by separating the blocks of lines apart. When the conflicted
parts from a "virtual ancestor" merge created by merge-recursive
remains in the common ancestor part in the final result, however,
the conflict markers that are the same size as the final merge
become harder to see.
Increase the conflict marker size slightly for these inner merges so
that the markers from the final merge and cruft from internal merge
can be distinguished more easily.
This would help reduce the common issue that prevents "rerere" from
being used on a really complex conflict.
Signed-off-by: Junio C Hamano <gitster@pobox.com>