Junio C Hamano [Tue, 13 Jun 2017 20:47:10 +0000 (13:47 -0700)]
Merge branch 'jk/pack-idx-corruption-safety'
A flaky test has been corrected.
* jk/pack-idx-corruption-safety:
t5313: make extended-table test more deterministic
Junio C Hamano [Tue, 13 Jun 2017 20:47:09 +0000 (13:47 -0700)]
Merge branch 'nd/fopen-errors'
We often try to open a file for reading whose existence is
optional, and silently ignore errors from open/fopen; report such
errors if they are not due to missing files.
* nd/fopen-errors:
mingw_fopen: report ENOENT for invalid file names
mingw: verify that paths are not mistaken for remote nicknames
log: fix memory leak in open_next_file()
rerere.c: move error_errno() closer to the source system call
print errno when reporting a system call error
wrapper.c: make warn_on_inaccessible() static
wrapper.c: add and use fopen_or_warn()
wrapper.c: add and use warn_on_fopen_errors()
config.mak.uname: set FREAD_READS_DIRECTORIES for Darwin, too
config.mak.uname: set FREAD_READS_DIRECTORIES for Linux and FreeBSD
clone: use xfopen() instead of fopen()
use xfopen() in more places
git_fopen: fix a sparse 'not declared' warning
Junio C Hamano [Tue, 13 Jun 2017 20:47:09 +0000 (13:47 -0700)]
Merge branch 'rf/completion'
Completion updates.
* rf/completion:
completion: add git config credentialCache.ignoreSIGHUP
completion: add git config credential completions
completion: add git config advice completions
completion: add git config am.threeWay completion
completion: add git config core completions
completion: add git config gc completions
Junio C Hamano [Tue, 13 Jun 2017 20:47:08 +0000 (13:47 -0700)]
Merge branch 'jc/diff-tree-stale-comment'
Comment fix.
* jc/diff-tree-stale-comment:
diff-tree: update stale in-code comments
Junio C Hamano [Tue, 13 Jun 2017 20:47:07 +0000 (13:47 -0700)]
Merge branch 'sb/submodule-blanket-recursive'
Many commands learned to pay attention to submodule.recurse
configuration.
* sb/submodule-blanket-recursive:
builtin/fetch.c: respect 'submodule.recurse' option
builtin/push.c: respect 'submodule.recurse' option
builtin/grep.c: respect 'submodule.recurse' option
Introduce 'submodule.recurse' option for worktree manipulators
submodule loading: separate code path for .gitmodules and config overlay
reset/checkout/read-tree: unify config callback for submodule recursion
submodule test invocation: only pass additional arguments
submodule recursing: do not write a config variable twice
Junio C Hamano [Tue, 13 Jun 2017 20:47:06 +0000 (13:47 -0700)]
Merge branch 'jc/noent-notdir'
Our code often opens a path to an optional file, to work on its
contents when we can successfully open it. We can ignore a failure
to open if such an optional file does not exist, but we do want to
report a failure in opening for other reasons (e.g. we got an I/O
error, or the file is there, but we lack the permission to open).
The exact errors we need to ignore are ENOENT (obviously) and
ENOTDIR (less obvious). Instead of repeating comparison of errno
with these two constants, introduce a helper function to do so.
* jc/noent-notdir:
treewide: use is_missing_file_error() where ENOENT and ENOTDIR are checked
compat-util: is_missing_file_error()
Junio C Hamano [Sat, 10 Jun 2017 05:29:26 +0000 (14:29 +0900)]
Merge branch 'master' of git://bogomips.org/git-svn
* 'master' of git://bogomips.org/git-svn:
doc: describe git svn init --ignore-refs
Andreas Heiduk [Wed, 7 Jun 2017 18:32:14 +0000 (20:32 +0200)]
doc: describe git svn init --ignore-refs
Add the missing documentation for `git svn init --ignore-refs`.
Signed-off-by: Andreas Heiduk <asheiduk@gmail.com>
Signed-off-by: Eric Wong <e@80x24.org>
Junio C Hamano [Wed, 7 Jun 2017 00:32:04 +0000 (09:32 +0900)]
Sync with maint
* maint:
sha1dc: update from upstream
sha1dc: ignore indent-with-non-tab whitespace violations
Junio C Hamano [Wed, 7 Jun 2017 00:31:53 +0000 (09:31 +0900)]
Merge branch 'ab/sha1dc-maint' into maint
* ab/sha1dc-maint:
sha1dc: update from upstream
sha1dc: ignore indent-with-non-tab whitespace violations
Ævar Arnfjörð Bjarmason [Tue, 6 Jun 2017 15:12:29 +0000 (15:12 +0000)]
sha1dc: update from upstream
Update sha1dc from the latest version by the upstream
maintainer[1].
See commit
a0103914c2 ("sha1dc: update from upstream", 2017-05-20) for
the latest update. That update was done sans some whitespace changes
by upstream, which is why the diff here isn't the same as the upstream
cc46554..
e139984.
It also brings in a change[2] upstream made which should hopefully
address the breakage in 2.13.1 on Cygwin, see [3]. Cygwin defines both
_BIG_ENDIAN and _LITTLE_ENDIAN.
Adam Dinwoodie reports on the mailing list that that upstream commit
fixes the issue on Cygwin[4].
1. https://github.com/cr-marcstevens/sha1collisiondetection/commit/
e1399840b501a68ac6c8d7ed9a5cb1455480200e
2. https://github.com/cr-marcstevens/sha1collisiondetection/commit/
a24eef58c0684078405f8c7a89f9b78271432005
3. <
20170606100355.GC25777@dinwoodie.org> (https://public-inbox.org/git/
20170606100355.GC25777@dinwoodie.org/)
4. <
20170606124323.GD25777@dinwoodie.org> (https://public-inbox.org/git/
20170606124323.GD25777@dinwoodie.org/)
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King [Tue, 6 Jun 2017 19:01:11 +0000 (15:01 -0400)]
sha1dc: ignore indent-with-non-tab whitespace violations
The upstream sha1dc code indents some lines with spaces.
While this doesn't match Git's coding guidelines, it's better
to leave this imported code untouched than to try to make it
match our style. However, we can use .gitattributes to tell
"diff --check" and "git am" not to bother us about it.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King [Mon, 5 Jun 2017 19:15:25 +0000 (15:15 -0400)]
t5313: make extended-table test more deterministic
Commit
a1283866b (t5313: test bounds-checks of
corrupted/malicious pack/idx files, 2016-02-25) added a test
that requires our corrupted pack index to have two objects.
The entry for the first one remains untouched, but we
corrupt the entry for second one. Since the index stores the
entries in sha1-sorted order, this means that the test must
make sure that the sha1 of the object we expect to be
corrupted ("$object") sorts after the other placeholder
object.
That commit used the HEAD commit as the placeholder, but the
script never calls test_tick. That means that the commit
object (and thus its sha1) depends on the timestamp when the
test script is run. This usually works in practice, because
the sha1 of $object starts with "fff". The commit object
will sort after that only 1 in 4096 times, but when it does
the test will fail.
One obvious solution is to add the test_tick call to get a
deterministic commit sha1. But since we're relying on the
sort order for the test to function, let's make that very
explicit by just generating a second blob with a known sha1.
Reported-by: Lars Schneider <larsxschneider@gmail.com>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Mon, 5 Jun 2017 00:33:16 +0000 (09:33 +0900)]
Sync with v2.13.1
Junio C Hamano [Mon, 5 Jun 2017 00:32:25 +0000 (09:32 +0900)]
Seventh batch for 2.14
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Mon, 5 Jun 2017 00:18:13 +0000 (09:18 +0900)]
Merge branch 'ad/pull-remote-doc'
Docfix.
* ad/pull-remote-doc:
docs: fix formatting and grammar
Junio C Hamano [Mon, 5 Jun 2017 00:18:13 +0000 (09:18 +0900)]
Merge branch 'tb/pull-ff-rebase-autostash'
"git pull --rebase --autostash" didn't auto-stash when the local history
fast-forwards to the upstream.
* tb/pull-ff-rebase-autostash:
pull: ff --rebase --autostash works in dirty repo
Junio C Hamano [Mon, 5 Jun 2017 00:18:13 +0000 (09:18 +0900)]
Merge branch 'jk/drop-free-refspecs'
Code clean-up.
* jk/drop-free-refspecs:
remote: drop free_refspecs() function
Junio C Hamano [Mon, 5 Jun 2017 00:18:12 +0000 (09:18 +0900)]
Merge branch 'jk/connect-symref-info-leak-fix'
Leakfix.
* jk/connect-symref-info-leak-fix:
connect.c: fix leak in parse_one_symref_info()
Junio C Hamano [Mon, 5 Jun 2017 00:18:11 +0000 (09:18 +0900)]
Merge branch 'js/blame-lib'
The internal logic used in "git blame" has been libified to make it
easier to use by cgit.
* js/blame-lib: (29 commits)
blame: move entry prepend to libgit
blame: move scoreboard setup to libgit
blame: move scoreboard-related methods to libgit
blame: move fake-commit-related methods to libgit
blame: move origin-related methods to libgit
blame: move core structures to header
blame: create entry prepend function
blame: create scoreboard setup function
blame: create scoreboard init function
blame: rework methods that determine 'final' commit
blame: wrap blame_sort and compare_blame_final
blame: move progress updates to a scoreboard callback
blame: make sanity_check use a callback in scoreboard
blame: move no_whole_file_rename flag to scoreboard
blame: move xdl_opts flags to scoreboard
blame: move show_root flag to scoreboard
blame: move reverse flag to scoreboard
blame: move contents_from to scoreboard
blame: move copy/move thresholds to scoreboard
blame: move stat counters to scoreboard
...
Junio C Hamano [Mon, 5 Jun 2017 00:18:11 +0000 (09:18 +0900)]
Merge branch 'mh/packed-ref-store-prep'
The implementation of "ref" API around the "packed refs" have been
cleaned up, in preparation for further changes.
* mh/packed-ref-store-prep: (25 commits)
cache_ref_iterator_begin(): avoid priming unneeded directories
ref-filter: limit traversal to prefix
create_ref_entry(): remove `check_name` option
refs_ref_iterator_begin(): handle `GIT_REF_PARANOIA`
read_packed_refs(): report unexpected fopen() failures
read_packed_refs(): do more of the work of reading packed refs
get_packed_ref_cache(): assume "packed-refs" won't change while locked
should_pack_ref(): new function, extracted from `files_pack_refs()`
ref_update_reject_duplicates(): add a sanity check
ref_update_reject_duplicates(): use `size_t` rather than `int`
ref_update_reject_duplicates(): expose function to whole refs module
ref_transaction_prepare(): new optional step for reference updates
ref_transaction_commit(): check for valid `transaction->state`
files_transaction_cleanup(): new helper function
files_ref_store: put the packed files lock directly in this struct
files-backend: move `lock` member to `files_ref_store`
lockfile: add a new method, is_lock_file_locked()
ref_store: take a `msg` parameter when deleting references
refs: use `size_t` indexes when iterating over ref transaction updates
refs_ref_iterator_begin(): don't check prefixes redundantly
...
Junio C Hamano [Mon, 5 Jun 2017 00:18:10 +0000 (09:18 +0900)]
Merge branch 'mb/diff-default-to-indent-heuristics'
Make the "indent" heuristics the default in "diff" and diff.indentHeuristics
configuration variable an escape hatch for those who do no want it.
* mb/diff-default-to-indent-heuristics:
add--interactive: drop diff.indentHeuristic handling
diff: enable indent heuristic by default
diff: have the diff-* builtins configure diff before initializing revisions
diff: make the indent heuristic part of diff's basic configuration
Junio C Hamano [Mon, 5 Jun 2017 00:18:10 +0000 (09:18 +0900)]
Merge branch 'jh/close-index-before-stat'
The timestamp of the index file is now taken after the file is
closed, to help Windows, on which a stale timestamp is reported by
fstat() on a file that is opened for writing and data was written
but not yet closed.
* jh/close-index-before-stat:
read-cache: close index.lock in do_write_index
Junio C Hamano [Mon, 5 Jun 2017 00:05:38 +0000 (09:05 +0900)]
Git 2.13.1
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Mon, 5 Jun 2017 00:03:23 +0000 (09:03 +0900)]
Merge branch 'ah/doc-rev-parse-short-default' into maint
Doc update.
* ah/doc-rev-parse-short-default:
doc: rewrite description for rev-parse --short
Junio C Hamano [Mon, 5 Jun 2017 00:03:22 +0000 (09:03 +0900)]
Merge branch 'ah/doc-filter-branch-export-env' into maint
Docfix.
* ah/doc-filter-branch-export-env:
doc: filter-branch does not require re-export of vars
Junio C Hamano [Mon, 5 Jun 2017 00:03:22 +0000 (09:03 +0900)]
Merge branch 'sd/t3200-typofix' into maint
Test fix.
* sd/t3200-typofix:
branch test: fix invalid config key access
Junio C Hamano [Mon, 5 Jun 2017 00:03:21 +0000 (09:03 +0900)]
Merge branch 'sb/t5531-update-desc' into maint
The description strings for a few tests have been updated.
* sb/t5531-update-desc:
t5531: fix test description
Junio C Hamano [Mon, 5 Jun 2017 00:03:20 +0000 (09:03 +0900)]
Merge branch 'ah/doc-pretty-format-fix' into maint
Documentation fix.
* ah/doc-pretty-format-fix:
Documentation: fix formatting typo in pretty-formats.txt
Junio C Hamano [Mon, 5 Jun 2017 00:03:19 +0000 (09:03 +0900)]
Merge branch 'ah/doc-interpret-trailers-ifexists' into maint
Documentation fix.
* ah/doc-interpret-trailers-ifexists:
Documentation: fix reference to ifExists for interpret-trailers
Junio C Hamano [Mon, 5 Jun 2017 00:03:18 +0000 (09:03 +0900)]
Merge branch 'ab/ref-filter-no-contains' into maint
Doc update to a recent topic.
* ab/ref-filter-no-contains:
tag: duplicate mention of --contains should mention --no-contains
Junio C Hamano [Mon, 5 Jun 2017 00:03:17 +0000 (09:03 +0900)]
Merge branch 'sg/core-filemode-doc-typofix' into maint
* sg/core-filemode-doc-typofix:
docs/config.txt: fix indefinite article in core.fileMode description
Junio C Hamano [Mon, 5 Jun 2017 00:03:16 +0000 (09:03 +0900)]
Merge branch 'tb/dedup-crlf-tests' into maint
* tb/dedup-crlf-tests:
t0027: tests are not expensive; remove t0025
Junio C Hamano [Mon, 5 Jun 2017 00:03:16 +0000 (09:03 +0900)]
Merge branch 'jn/credential-doc-on-clear' into maint
Doc update.
* jn/credential-doc-on-clear:
credential doc: make multiple-helper behavior more prominent
Junio C Hamano [Mon, 5 Jun 2017 00:03:15 +0000 (09:03 +0900)]
Merge branch 'jk/url-insteadof-config' into maint
The interaction of "url.*.insteadOf" and custom URL scheme's
whitelisting is now documented better.
* jk/url-insteadof-config:
docs/config: mention protocol implications of url.insteadOf
Junio C Hamano [Mon, 5 Jun 2017 00:03:15 +0000 (09:03 +0900)]
Merge branch 'jk/unbreak-am-h' into maint
"git am -h" triggered a BUG().
* jk/unbreak-am-h:
am: handle "-h" argument earlier
Junio C Hamano [Mon, 5 Jun 2017 00:03:15 +0000 (09:03 +0900)]
Merge branch 'ab/sha1dc-maint' into maint
The "collision detecting" SHA-1 implementation shipped with 2.13
was quite broken on some big-endian platforms and/or platforms that
do not like unaligned fetches. Update to the upstream code which
has already fixed these issues.
* ab/sha1dc-maint:
sha1dc: update from upstream
Junio C Hamano [Mon, 5 Jun 2017 00:03:15 +0000 (09:03 +0900)]
Merge branch 'js/bs-is-a-dir-sep-on-windows' into maint
"foo\bar\baz" in "git fetch foo\bar\baz", even though there is no
slashes in it, cannot be a nickname for a remote on Windows, as
that is likely to be a pathname on a local filesystem.
* js/bs-is-a-dir-sep-on-windows:
Windows: do not treat a path with backslashes as a remote's nick name
mingw.h: permit arguments with side effects for is_dir_sep
Junio C Hamano [Mon, 5 Jun 2017 00:03:14 +0000 (09:03 +0900)]
Merge branch 'jk/alternate-ref-optim' into maint
A test allowed both "git push" and "git receive-pack" on the other
end write their traces into the same file. This is OK on platforms
that allows atomically appending to a file opened with O_APPEND,
but on other platforms led to a mangled output, causing
intermittent test failures. This has been fixed by disabling
traces from "receive-pack" in the test.
* jk/alternate-ref-optim:
t5400: avoid concurrent writes into a trace file
Junio C Hamano [Mon, 5 Jun 2017 00:03:13 +0000 (09:03 +0900)]
Merge branch 'bm/interpret-trailers-cut-line-is-eom' into maint
"git interpret-trailers", when used as GIT_EDITOR for "git commit
-v", looked for and appended to a trailer block at the very end,
i.e. at the end of the "diff" output. The command has been
corrected to pay attention to the cut-mark line "commit -v" adds to
the buffer---the real trailer block should appear just before it.
* bm/interpret-trailers-cut-line-is-eom:
interpret-trailers: honor the cut line
Junio C Hamano [Mon, 5 Jun 2017 00:03:13 +0000 (09:03 +0900)]
Merge branch 'kn/ref-filter-branch-list' into maint
"git for-each-ref --format=..." with %(HEAD) in the format used to
resolve the HEAD symref as many times as it had processed refs,
which was wasteful, and "git branch" shared the same problem.
* kn/ref-filter-branch-list:
ref-filter: resolve HEAD when parsing %(HEAD) atom
Junio C Hamano [Mon, 5 Jun 2017 00:03:12 +0000 (09:03 +0900)]
Merge branch 'rs/checkout-am-fix-unborn' into maint
A few codepaths in "checkout" and "am" working on an unborn branch
tried to access an uninitialized piece of memory.
* rs/checkout-am-fix-unborn:
am: check return value of resolve_refdup before using hash
checkout: check return value of resolve_refdup before using hash
Junio C Hamano [Mon, 5 Jun 2017 00:03:11 +0000 (09:03 +0900)]
Merge branch 'jn/clone-add-empty-config-from-command-line' into maint
"git clone --config var=val" is a way to populate the
per-repository configuration file of the new repository, but it did
not work well when val is an empty string. This has been fixed.
* jn/clone-add-empty-config-from-command-line:
clone: handle empty config values in -c
Junio C Hamano [Mon, 5 Jun 2017 00:03:10 +0000 (09:03 +0900)]
Merge branch 'ab/c-translators-comment-style' into maint
Update the C style recommendation for notes for translators, as
recent versions of gettext tools can work with our style of
multi-line comments.
* ab/c-translators-comment-style:
C style: use standard style for "TRANSLATORS" comments
Junio C Hamano [Mon, 5 Jun 2017 00:03:10 +0000 (09:03 +0900)]
Merge branch 'ls/travis-doc-asciidoctor' into maint
Travis CI gained a task to format the documentation with both
AsciiDoc and AsciiDoctor.
* ls/travis-doc-asciidoctor:
travis-ci: check AsciiDoc/AsciiDoctor stderr output
travis-ci: unset compiler for jobs that do not need one
travis-ci: parallelize documentation build
travis-ci: build documentation with AsciiDoc and Asciidoctor
Junio C Hamano [Sun, 4 Jun 2017 01:29:26 +0000 (10:29 +0900)]
Sync with maint
Junio C Hamano [Sun, 4 Jun 2017 01:25:42 +0000 (10:25 +0900)]
Prepare for 2.13.1; more topics to follow
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Sun, 4 Jun 2017 01:21:07 +0000 (10:21 +0900)]
Merge branch 'tg/stash-push-fixup' into maint
The shell completion script (in contrib/) learned "git stash" has
a new "push" subcommand.
* tg/stash-push-fixup:
completion: add git stash push
Junio C Hamano [Sun, 4 Jun 2017 01:21:07 +0000 (10:21 +0900)]
Merge branch 'km/log-showsignature-doc' into maint
Doc update.
* km/log-showsignature-doc:
config.txt: add an entry for log.showSignature
Junio C Hamano [Sun, 4 Jun 2017 01:21:06 +0000 (10:21 +0900)]
Merge branch 'jt/use-trailer-api-in-commands' into maint
"git cherry-pick" and other uses of the sequencer machinery
mishandled a trailer block whose last line is an incomplete line.
This has been fixed so that an additional sign-off etc. are added
after completing the existing incomplete line.
* jt/use-trailer-api-in-commands:
sequencer: add newline before adding footers
Junio C Hamano [Sun, 4 Jun 2017 01:21:05 +0000 (10:21 +0900)]
Merge branch 'jt/push-options-doc' into maint
The receive-pack program now makes sure that the push certificate
records the same set of push options used for pushing.
* jt/push-options-doc:
receive-pack: verify push options in cert
docs: correct receive.advertisePushOptions default
Junio C Hamano [Sun, 4 Jun 2017 01:21:04 +0000 (10:21 +0900)]
Merge branch 'js/plug-leaks' into maint
Fix memory leaks pointed out by Coverity (and people).
* js/plug-leaks: (26 commits)
checkout: fix memory leak
submodule_uses_worktrees(): plug memory leak
show_worktree(): plug memory leak
name-rev: avoid leaking memory in the `deref` case
remote: plug memory leak in match_explicit()
add_reflog_for_walk: avoid memory leak
shallow: avoid memory leak
line-log: avoid memory leak
receive-pack: plug memory leak in update()
fast-export: avoid leaking memory in handle_tag()
mktree: plug memory leaks reported by Coverity
pack-redundant: plug memory leak
setup_discovered_git_dir(): plug memory leak
setup_bare_git_dir(): help static analysis
split_commit_in_progress(): simplify & fix memory leak
checkout: fix memory leak
cat-file: fix memory leak
mailinfo & mailsplit: check for EOF while parsing
status: close file descriptor after reading git-rebase-todo
difftool: address a couple of resource/memory leaks
...
Junio C Hamano [Sun, 4 Jun 2017 01:21:04 +0000 (10:21 +0900)]
Merge branch 'js/eol-on-ourselves' into maint
Make sure our tests would pass when the sources are checked out
with "platform native" line ending convention by default on
Windows. Some "text" files out tests use and the test scripts
themselves that are meant to be run with /bin/sh, ought to be
checked out with eol=LF even on Windows.
* js/eol-on-ourselves:
t4051: mark supporting files as requiring LF-only line endings
Fix the remaining tests that failed with core.autocrlf=true
t3901: move supporting files into t/t3901/
completion: mark bash script as LF-only
git-new-workdir: mark script as LF-only
Fix build with core.autocrlf=true
Junio C Hamano [Sun, 4 Jun 2017 01:21:04 +0000 (10:21 +0900)]
Merge branch 'jk/update-links-in-docs' into maint
A few http:// links that are redirected to https:// in the
documentation have been updated to https:// links.
* jk/update-links-in-docs:
doc: use https links to Wikipedia to avoid http redirects
Junio C Hamano [Sun, 4 Jun 2017 01:21:03 +0000 (10:21 +0900)]
Merge branch 'jk/ignore-broken-tags-when-ignoring-missing-links' into maint
Tag objects, which are not reachable from any ref, that point at
missing objects were mishandled by "git gc" and friends (they
should silently be ignored instead)
* jk/ignore-broken-tags-when-ignoring-missing-links:
revision.c: ignore broken tags with ignore_missing_links
Junio C Hamano [Sun, 4 Jun 2017 01:21:02 +0000 (10:21 +0900)]
Merge branch 'jk/doc-config-include' into maint
Clarify documentation for include.path and includeIf.<condition>.path
configuration variables.
* jk/doc-config-include:
docs/config: consistify include.path examples
docs/config: avoid the term "expand" for includes
docs/config: give a relative includeIf example
docs/config: clarify include/includeIf relationship
Junio C Hamano [Sun, 4 Jun 2017 01:21:02 +0000 (10:21 +0900)]
Merge branch 'jk/disable-pack-reuse-when-broken' into maint
"pack-objects" can stream a slice of an existing packfile out when
the pack bitmap can tell that the reachable objects are all needed
in the output, without inspecting individual objects. This
strategy however would not work well when "--local" and other
options are in use, and need to be disabled.
* jk/disable-pack-reuse-when-broken:
t5310: fix "; do" style
pack-objects: disable pack reuse for object-selection options
Junio C Hamano [Sun, 4 Jun 2017 01:21:01 +0000 (10:21 +0900)]
Merge branch 'jk/am-leakfix' into maint
The codepath in "git am" that is used when running "git rebase"
leaked memory held for the log message of the commits being rebased.
* jk/am-leakfix:
am: shorten ident_split variable name in get_commit_info()
am: simplify allocations in get_commit_info()
am: fix commit buffer leak in get_commit_info()
Junio C Hamano [Sun, 4 Jun 2017 01:21:00 +0000 (10:21 +0900)]
Merge branch 'jc/read-tree-empty-with-m' into maint
"git read-tree -m" (no tree-ish) gave a nonsense suggestion "use
--empty if you want to clear the index". With "-m", such a request
will still fail anyway, as you'd need to name at least one tree-ish
to be merged.
* jc/read-tree-empty-with-m:
read-tree: "read-tree -m --empty" does not make sense
Junio C Hamano [Sun, 4 Jun 2017 01:20:59 +0000 (10:20 +0900)]
Merge branch 'jc/apply-fix-mismerge' into maint
Mismerge fix.
* jc/apply-fix-mismerge:
apply.c: fix whitespace-only mismerge
Junio C Hamano [Sun, 4 Jun 2017 01:20:58 +0000 (10:20 +0900)]
Merge branch 'ja/do-not-ask-needless-questions' into maint
Git sometimes gives an advice in a rhetorical question that does
not require an answer, which can confuse new users and non native
speakers. Attempt to rephrase them.
* ja/do-not-ask-needless-questions:
git-filter-branch: be more direct in an error message
read-tree -m: make error message for merging 0 trees less smart aleck
usability: don't ask questions if no reply is required
Junio C Hamano [Sun, 4 Jun 2017 01:20:58 +0000 (10:20 +0900)]
Merge branch 'bw/submodule-with-bs-path' into maint
A hotfix to a topic that is already in v2.13.
* bw/submodule-with-bs-path:
t7400: add !CYGWIN prerequisite to 'add with \\ in path'
Junio C Hamano [Sun, 4 Jun 2017 01:20:57 +0000 (10:20 +0900)]
Merge branch 'ah/log-decorate-default-to-auto' into maint
Setting "log.decorate=false" in the configuration file did not take
effect in v2.13, which has been corrected.
* ah/log-decorate-default-to-auto:
builtin/log: honor log.decorate
Junio C Hamano [Sun, 4 Jun 2017 01:20:56 +0000 (10:20 +0900)]
Merge branch 'ab/fix-poison-tests' into maint
Update tests to pass under GETTEXT_POISON (a mechanism to ensure
that output strings that should not be translated are not
translated by mistake), and tell TravisCI to run them.
* ab/fix-poison-tests:
travis-ci: add job to run tests with GETTEXT_POISON
travis-ci: setup "prove cache" in "script" step
tests: fix tests broken under GETTEXT_POISON=YesPlease
Junio C Hamano [Sun, 4 Jun 2017 01:20:56 +0000 (10:20 +0900)]
Merge branch 'ab/doc-replace-gmane-links' into maint
The Web interface to gmane news archive is long gone, even though
the articles are still accessible via NTTP. Replace the links with
ones to public-inbox.org. Because their message identification is
based on the actual message-id, it is likely that it will be easier
to migrate away from it if/when necessary.
* ab/doc-replace-gmane-links:
doc: replace more gmane links
doc: replace a couple of broken gmane links
Junio C Hamano [Sun, 4 Jun 2017 01:20:56 +0000 (10:20 +0900)]
Merge branch 'ab/aix-needs-compat-regex' into maint
Build fix.
* ab/aix-needs-compat-regex:
config.mak.uname: set NO_REGEX=NeedsStartEnd on AIX
Junio C Hamano [Sun, 4 Jun 2017 01:20:55 +0000 (10:20 +0900)]
Merge branch 'pw/rebase-i-regression-fix' into maint
Just the first one of three? new tests that follows up a regression
fix.
* pw/rebase-i-regression-fix:
rebase -i: add missing newline to end of message
rebase -i: silence stash apply
rebase -i: fix reflog message
Junio C Hamano [Sun, 4 Jun 2017 00:58:01 +0000 (09:58 +0900)]
Sixth batch for 2.14
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Sun, 4 Jun 2017 00:55:45 +0000 (09:55 +0900)]
Merge branch 'jk/url-insteadof-config'
The interaction of "url.*.insteadOf" and custom URL scheme's
whitelisting is now documented better.
* jk/url-insteadof-config:
docs/config: mention protocol implications of url.insteadOf
Junio C Hamano [Sun, 4 Jun 2017 00:55:45 +0000 (09:55 +0900)]
Merge branch 'ah/doc-rev-parse-short-default'
Doc update.
* ah/doc-rev-parse-short-default:
doc: rewrite description for rev-parse --short
Junio C Hamano [Sun, 4 Jun 2017 00:55:44 +0000 (09:55 +0900)]
Merge branch 'rf/completion-config-commit'
Completion update.
* rf/completion-config-commit:
completion: add completions for git config commit
Junio C Hamano [Sun, 4 Jun 2017 00:55:44 +0000 (09:55 +0900)]
Merge branch 'ab/c-translators-comment-style'
Update the C style recommendation for notes for translators, as
recent versions of gettext tools can work with our style of
multi-line comments.
* ab/c-translators-comment-style:
C style: use standard style for "TRANSLATORS" comments
Junio C Hamano [Sun, 4 Jun 2017 00:55:44 +0000 (09:55 +0900)]
Merge branch 'jk/unbreak-am-h'
"git am -h" triggered a BUG().
* jk/unbreak-am-h:
am: handle "-h" argument earlier
Junio C Hamano [Sun, 4 Jun 2017 00:55:43 +0000 (09:55 +0900)]
Merge branch 'ab/t3070-test-dedup'
Test cleanup.
* ab/t3070-test-dedup:
wildmatch test: remove redundant duplicate test
Junio C Hamano [Sun, 4 Jun 2017 00:55:43 +0000 (09:55 +0900)]
Merge branch 'ah/doc-filter-branch-export-env'
Docfix.
* ah/doc-filter-branch-export-env:
doc: filter-branch does not require re-export of vars
Junio C Hamano [Sun, 4 Jun 2017 00:55:42 +0000 (09:55 +0900)]
Merge branch 'sd/t3200-typofix'
Test fix.
* sd/t3200-typofix:
branch test: fix invalid config key access
Junio C Hamano [Sun, 4 Jun 2017 00:55:41 +0000 (09:55 +0900)]
Merge branch 'ab/sha1dc-maint'
The "collision detecting" SHA-1 implementation shipped with 2.13
was quite broken on some big-endian platforms and/or platforms that
do not like unaligned fetches. Update to the upstream code which
has already fixed these issues.
* ab/sha1dc-maint:
sha1dc: update from upstream
Junio C Hamano [Fri, 2 Jun 2017 06:07:36 +0000 (15:07 +0900)]
Fifth batch for 2.14
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Fri, 2 Jun 2017 06:06:05 +0000 (15:06 +0900)]
Merge branch 'ab/grep-preparatory-cleanup'
The internal implementation of "git grep" has seen some clean-up.
* ab/grep-preparatory-cleanup: (31 commits)
grep: assert that threading is enabled when calling grep_{lock,unlock}
grep: given --threads with NO_PTHREADS=YesPlease, warn
pack-objects: fix buggy warning about threads
pack-objects & index-pack: add test for --threads warning
test-lib: add a PTHREADS prerequisite
grep: move is_fixed() earlier to avoid forward declaration
grep: change internal *pcre* variable & function names to be *pcre1*
grep: change the internal PCRE macro names to be PCRE1
grep: factor test for \0 in grep patterns into a function
grep: remove redundant regflags assignments
grep: catch a missing enum in switch statement
perf: add a comparison test of log --grep regex engines with -F
perf: add a comparison test of log --grep regex engines
perf: add a comparison test of grep regex engines with -F
perf: add a comparison test of grep regex engines
perf: emit progress output when unpacking & building
perf: add a GIT_PERF_MAKE_COMMAND for when *_MAKE_OPTS won't do
grep: add tests to fix blind spots with \0 patterns
grep: prepare for testing binary regexes containing rx metacharacters
grep: add a test helper function for less verbose -f \0 tests
...
Junio C Hamano [Fri, 2 Jun 2017 06:06:05 +0000 (15:06 +0900)]
Merge branch 'jk/diff-blob'
The result from "git diff" that compares two blobs, e.g. "git diff
$commit1:$path $commit2:$path", used to be shown with the full
object name as given on the command line, but it is more natural to
use the $path in the output and use it to look up .gitattributes.
* jk/diff-blob:
diff: use blob path for blob/file diffs
diff: use pending "path" if it is available
diff: use the word "path" instead of "name" for blobs
diff: pass whole pending entry in blobinfo
handle_revision_arg: record paths for pending objects
handle_revision_arg: record modes for "a..b" endpoints
t4063: add tests of direct blob diffs
get_sha1_with_context: dynamically allocate oc->path
get_sha1_with_context: always initialize oc->symlink_path
sha1_name: consistently refer to object_context as "oc"
handle_revision_arg: add handle_dotdot() helper
handle_revision_arg: hoist ".." check out of range parsing
handle_revision_arg: stop using "dotdot" as a generic pointer
handle_revision_arg: simplify commit reference lookups
handle_revision_arg: reset "dotdot" consistently
Junio C Hamano [Fri, 2 Jun 2017 06:06:04 +0000 (15:06 +0900)]
Merge branch 'sl/clean-d-ignored-fix'
"git clean -d" used to clean directories that has ignored files,
even though the command should not lose ignored ones without "-x".
"git status --ignored" did not list ignored and untracked files
without "-uall". These have been corrected.
* sl/clean-d-ignored-fix:
clean: teach clean -d to preserve ignored paths
dir: expose cmp_name() and check_contains()
dir: hide untracked contents of untracked dirs
dir: recurse into untracked dirs for ignored files
t7061: status --ignored should search untracked dirs
t7300: clean -d should skip dirs with ignored files
Junio C Hamano [Fri, 2 Jun 2017 06:06:03 +0000 (15:06 +0900)]
Merge branch 'sb/t5531-update-desc'
The description strings for a few tests have been updated.
* sb/t5531-update-desc:
t5531: fix test description
Junio C Hamano [Fri, 2 Jun 2017 06:06:03 +0000 (15:06 +0900)]
Merge branch 'ah/doc-pretty-format-fix'
Documentation fix.
* ah/doc-pretty-format-fix:
Documentation: fix formatting typo in pretty-formats.txt
Junio C Hamano [Fri, 2 Jun 2017 06:06:02 +0000 (15:06 +0900)]
Merge branch 'ah/doc-interpret-trailers-ifexists'
Documentation fix.
* ah/doc-interpret-trailers-ifexists:
Documentation: fix reference to ifExists for interpret-trailers
Junio C Hamano [Fri, 2 Jun 2017 06:06:01 +0000 (15:06 +0900)]
Merge branch 'rs/mingw-path-lookup-simplify'
Code simplification.
* rs/mingw-path-lookup-simplify:
mingw: simplify PATH handling
Junio C Hamano [Fri, 2 Jun 2017 06:06:00 +0000 (15:06 +0900)]
Merge branch 'ab/ref-filter-no-contains'
Doc update to a recent topic.
* ab/ref-filter-no-contains:
tag: duplicate mention of --contains should mention --no-contains
Junio C Hamano [Fri, 2 Jun 2017 06:05:59 +0000 (15:05 +0900)]
Merge branch 'jt/send-email-validate-hook'
A hotfix for a topic already in 'master'.
* jt/send-email-validate-hook:
send-email: check for repo before invoking hook
Junio C Hamano [Fri, 2 Jun 2017 06:05:59 +0000 (15:05 +0900)]
Merge branch 'dk/send-email-avoid-net-smtp-ssl-when-able'
A hotfix to a topic in 'master'.
* dk/send-email-avoid-net-smtp-ssl-when-able:
send-email: Net::SMTP::starttls was introduced in v2.34
Junio C Hamano [Fri, 2 Jun 2017 06:05:58 +0000 (15:05 +0900)]
Merge branch 'js/bs-is-a-dir-sep-on-windows'
"foo\bar\baz" in "git fetch foo\bar\baz", even though there is no
slashes in it, cannot be a nickname for a remote on Windows, as
that is likely to be a pathname on a local filesystem.
* js/bs-is-a-dir-sep-on-windows:
Windows: do not treat a path with backslashes as a remote's nick name
mingw.h: permit arguments with side effects for is_dir_sep
Adam Dinwoodie [Thu, 1 Jun 2017 10:37:03 +0000 (11:37 +0100)]
docs: fix formatting and grammar
When compiling the documentation, asciidoc thinks a backtick surrounded
by whitespace shouldn't be interpreted as marking the start or end of a
literal. In most cases, that's useful behaviour, but in the git-pull
documentation it means asciidoc is failing to correctly detect which
text should be monospaced and which shouldn't.
To avoid this, remove the extraneous spaces from the text to be
monospaced. It would also be possible to fix the formatting by
switching to asciidoc's ++ monospace format markers and still have the
space characters included in the monospace text, but the spaces aren't
necessary and not having them keeps the markup simpler.
Also include a minor grammar fix suggested by Jeff while we're changing
these lines.
Signed-off-by: Adam Dinwoodie <adam@dinwoodie.org>
Helped-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Fri, 2 Jun 2017 02:34:15 +0000 (11:34 +0900)]
diff-tree: update stale in-code comments
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Rikard Falkeborn [Sat, 27 May 2017 06:25:52 +0000 (08:25 +0200)]
completion: add git config credentialCache.ignoreSIGHUP
Signed-off-by: Rikard Falkeborn <rikard.falkeborn@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Rikard Falkeborn [Sat, 27 May 2017 06:25:51 +0000 (08:25 +0200)]
completion: add git config credential completions
Add missing completions for git config credential:
* credential.helper
* credential.useHttpPath
* credential.username
Signed-off-by: Rikard Falkeborn <rikard.falkeborn@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Rikard Falkeborn [Sat, 27 May 2017 06:25:50 +0000 (08:25 +0200)]
completion: add git config advice completions
Add missing completions for git config advice:
* advice.amWorkDir
* advice.pushAlreadyExists
* advice.pushFetchFirst
* advice.pushNeedsForce
* advice.pushNonFFCurrent
* advice.pushNonFFMatching
* advice.pushUpdateRejected
* advice.rmHints
* advice.statusUoption
Remove completion for git config advice.pushNonFastForward,
since it was renamed to pushUpdateRejected in
1184564eac8e.
The config still works, but is no longer part of the documentation.
Signed-off-by: Rikard Falkeborn <rikard.falkeborn@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Rikard Falkeborn [Sat, 27 May 2017 06:25:49 +0000 (08:25 +0200)]
completion: add git config am.threeWay completion
Signed-off-by: Rikard Falkeborn <rikard.falkeborn@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Rikard Falkeborn [Sat, 27 May 2017 06:25:48 +0000 (08:25 +0200)]
completion: add git config core completions
Add missing completions for git config core:
* core.checkStat
* core.commentChar
* core.hideDotFiles
* core.hooksPath
* core.packedRefsTimeout
* core.precomposeUnicode
* core.protectHFS
* core.protectNTFS
* core.splitIndex
* core.sshCommand
Note that some configs are only used for some platforms
(hideDotFiles on Windows and precomposeUnicode on Mac).
Signed-off-by: Rikard Falkeborn <rikard.falkeborn@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Rikard Falkeborn [Sat, 27 May 2017 06:25:47 +0000 (08:25 +0200)]
completion: add git config gc completions
Add missing completion for git config gc options:
* gc.aggressiveDepth
* gc.autoDetach
* gc.logExpiry
* gc.worktreePruneExpire
Signed-off-by: Rikard Falkeborn <rikard.falkeborn@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jonathan Tan [Thu, 1 Jun 2017 23:50:55 +0000 (16:50 -0700)]
send-email: check for repo before invoking hook
Unless --no-validate is passed, send-email will invoke
$repo->repo_path() in its search for a validate hook regardless of
whether a Git repo is actually present. Teach send-email to first check
for repo existence.
Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Johannes Sixt [Mon, 29 May 2017 20:27:35 +0000 (22:27 +0200)]
mingw_fopen: report ENOENT for invalid file names
On Windows, certain characters are prohibited in file names, most
prominently the colon. When fopen() is called with such an invalid file
name, the underlying Windows API actually reports a particular error,
but since there is no suitable errno value, this error is translated
to EINVAL. Detect the case and report ENOENT instead.
Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Johannes Schindelin [Mon, 29 May 2017 20:25:25 +0000 (22:25 +0200)]
mingw: verify that paths are not mistaken for remote nicknames
This added test case simply verifies that users will not be bothered
with bogus complaints à la
warning: unable to access '.git/remotes/D:\repo': Invalid argument
when fetching from a Windows path (in this case, D:\repo).
[j6t: mark the new test as test_expect_failure]
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>