gitweb.git
convert: convert crlf_to_git to take an indexBrandon Williams Mon, 12 Jun 2017 22:13:53 +0000 (15:13 -0700)

convert: convert crlf_to_git to take an index

Signed-off-by: Brandon Williams <bmwill@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

convert: convert get_cached_convert_stats_ascii to... Brandon Williams Mon, 12 Jun 2017 22:13:52 +0000 (15:13 -0700)

convert: convert get_cached_convert_stats_ascii to take an index

Signed-off-by: Brandon Williams <bmwill@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Configure Git contribution guidelines for github.comLars Schneider Tue, 13 Jun 2017 08:18:07 +0000 (10:18 +0200)

Configure Git contribution guidelines for github.com

Many open source projects use github.com for their contribution process.
Although we mirror the Git core repository to github.com [1] we do not
use any other github.com service. This is unknown/unexpected to a
number of (potential) contributors and consequently they create Pull
Requests against our mirror with their contributions. These Pull
Requests become stale. This is frustrating to them as they think we
ignore them and it is also unsatisfactory for us as we miss potential
code improvements and/or new contributors.

GitHub contribution guidelines and a GitHub Pull Request template that
is visible to every Pull Request creator can be configured with special
files in a Git repository [2]. Let's make use of this!

[1] https://github.com/git/git
[2] https://help.github.com/articles/creating-a-pull-request-template-for-your-repository/

Signed-off-by: Lars Schneider <larsxschneider@gmail.com>
Helped-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-stash: fix pushing stash with pathspec from subdirPatrick Steinhardt Tue, 13 Jun 2017 11:38:34 +0000 (13:38 +0200)

git-stash: fix pushing stash with pathspec from subdir

The `git stash push` command recently gained the ability to get a
pathspec as its argument to only stash matching files. Calling this
command from a subdirectory does not work, though, as one of the first
things we do is changing to the top level directory without keeping
track of the prefix from which the command is being run.

Fix the shortcoming by storing the prefix previous to the call to
`cd_to_toplevel` and then subsequently using `git rev-parse --prefix` to
correctly resolve the pathspec. Add a test to catch future breakage of
this usecase.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t3200: add test for single parameter passed to -m optionSahil Dua Tue, 13 Jun 2017 10:47:22 +0000 (10:47 +0000)

t3200: add test for single parameter passed to -m option

Add a test for the case when only one parameter is passed to '-m'
(move/rename) option.

For example - if 'git branch -m bbb' is run while checked out on aaa
branch, it should rename the currently checked out branch to bbb.
There was no test for this particular case with only one parameter
for -m option. However, there's one similar test case for -M option.

Add test for making sure HEAD points to the bbb (new branch name). Also
add a test for making sure the reflog that is moved to 'bbb' retains
entries created for the currently checked out branch. Note that since
the topmost entry on reflog for bbb will be about branch creation, we
compare bbb@{1} (instead of bbb@{0}) with aaa@{0} to make sure the
reflog for bbb retains entries from aaa.

Signed-off-by: Sahil Dua <sahildua2305@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

revision.c: use skip_prefix() in handle_revision_pseudo... SZEDER Gábor Fri, 9 Jun 2017 18:17:33 +0000 (20:17 +0200)

revision.c: use skip_prefix() in handle_revision_pseudo_opt()

Instead of starts_with() and a bunch of magic numbers.

Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
Reviewed-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

revision.c: use skip_prefix() in handle_revision_opt()SZEDER Gábor Fri, 9 Jun 2017 18:17:32 +0000 (20:17 +0200)

revision.c: use skip_prefix() in handle_revision_opt()

Instead of starts_with() and a bunch of magic numbers.

Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
Reviewed-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

revision.c: stricter parsing of '--early-output'SZEDER Gábor Fri, 9 Jun 2017 18:17:31 +0000 (20:17 +0200)

revision.c: stricter parsing of '--early-output'

The parsing of '--early-output' with or without its optional integer
argument allowed bogus options like '--early-output-foobarbaz' to slip
through and be ignored.

Fix it by parsing '--early-output' in the same way as other options
with an optional argument are parsed. Furthermore, use strtoul_ui()
to parse the optional integer argument and to refuse negative numbers.

While at it, use skip_prefix() instead of starts_with() and magic
numbers.

Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
Reviewed-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

revision.c: stricter parsing of '--no-{min,max}-parents'SZEDER Gábor Fri, 9 Jun 2017 18:17:30 +0000 (20:17 +0200)

revision.c: stricter parsing of '--no-{min,max}-parents'

These two options are parsed using starts_with(), allowing things like
'git log --no-min-parents-foobarbaz' to succeed.

Use strcmp() instead.

Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
Reviewed-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

revision.h: turn rev_info.early_output back into an... SZEDER Gábor Sat, 10 Jun 2017 11:41:01 +0000 (13:41 +0200)

revision.h: turn rev_info.early_output back into an unsigned int

rev_info.early_output started out as an unsigned int in cdcefbc97 (Add
"--early-output" log flag for interactive GUI use, 2007-11-03), but
later it was turned into a single bit in a bit field in cc243c3ce
(show: --ignore-missing, 2011-05-18) without explanation, though the
code using it still expects it to be a regular integer type and uses
it as a counter. Consequently, any even number given via
'--early-output=<N>', or indeed a plain '--early-output' defaulting to
100 effectively disabled the feature.

Turn rev_info.early_output back into its origin unsigned int data
type, making '--early-output' work again.

Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
Reviewed-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

dir: create function count_slashes()Prathamesh Chavan Thu, 8 Jun 2017 18:08:12 +0000 (23:38 +0530)

dir: create function count_slashes()

Similar functions exist in apply.c and builtin/show-branch.c for
counting the number of slashes in a string. Also in the later
patches, we introduce a third caller for the same. Hence, we unify
it now by cleaning the existing functions and declaring a common
function count_slashes in dir.h and implementing it in dir.c to
remove this code duplication.

Mentored-by: Christian Couder <christian.couder@gmail.com>
Mentored-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Prathamesh Chavan <pc44800@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

fast-import: increase the default pack depth to 50Mike Hommey Thu, 8 Jun 2017 05:34:36 +0000 (14:34 +0900)

fast-import: increase the default pack depth to 50

In 618e613a70, 10 years ago, the default for pack depth used for
git-pack-objects and git-repack was changed from 10 to 50, while
leaving fast-import's default to 10.

There doesn't seem to be a reason besides oversight for the change not
having happened in fast-import as well.

Interestingly, fast-import uses pack.depth when it's set, and the
git-config manual says the default for pack.depth is 50. While the
git-fast-import manual does say the default depth is 10, the
inconsistency is also confusing.

Signed-off-by: Mike Hommey <mh@glandium.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

filter-branch: add [--] to usageAndreas Heiduk Sat, 10 Jun 2017 08:54:45 +0000 (10:54 +0200)

filter-branch: add [--] to usage

Signed-off-by: Andreas Heiduk <asheiduk@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

filter-branch: add `--setup` stepAndreas Heiduk Sat, 10 Jun 2017 08:54:44 +0000 (10:54 +0200)

filter-branch: add `--setup` step

A `--setup` step in `git filter-branch` makes it much easier to
define the initial values of variables used in the real filters.
Also sourcing/defining utility functions here instead of
`--env-filter` improves performance and minimizes clogging the
output in case of errors.

Signed-off-by: Andreas Heiduk <asheiduk@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t5100: add some more mailinfo testsKyle J. McKay Wed, 31 May 2017 10:26:10 +0000 (03:26 -0700)

t5100: add some more mailinfo tests

Add some more simple mailinfo tests including a few that
produce:

fatal: `pos + len' is too far after the end of the buffer

Mark those as 'test_expect_failure'.

Signed-off-by: Kyle J. McKay <mackyle@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'master' of git://bogomips.org/git-svnJunio 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

t4005: modernize style and drop hard coded sha1Stefan Beller Wed, 7 Jun 2017 02:18:05 +0000 (19:18 -0700)

t4005: modernize style and drop hard coded sha1

Use modern style in the test t4005. Remove hard coded sha1 values.
Combine test prep work and the actual test. Rename the first
test to contain the word "setup".

Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

doc: describe git svn init --ignore-refsAndreas 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>

Sync with maintJunio 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

Merge branch 'ab/sha1dc-maint' into maintJunio 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

sha1dc: update from upstreamÆ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>

sha1dc: ignore indent-with-non-tab whitespace violationsJeff 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>

t5313: make extended-table test more deterministicJeff 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>

t0012: test "-h" with builtinsJeff King Tue, 30 May 2017 05:19:30 +0000 (01:19 -0400)

t0012: test "-h" with builtins

Since commit 99caeed05 (Let 'git <command> -h' show usage
without a git dir, 2009-11-09), the git wrapper handles "-h"
specially, skipping any repository setup but still calling
the builtin's cmd_foo() function. This means that every
cmd_foo() must be ready to handle this case, but we don't
have any systematic tests. This led to "git am -h" being
broken for some time without anybody noticing.

This patch just tests that "git foo -h" works for every
builtin, where we see a 129 exit code (the normal code for
our usage() helper), and that the word "usage" appears in
the output.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git: add hidden --list-builtins optionJeff King Tue, 30 May 2017 05:18:43 +0000 (01:18 -0400)

git: add hidden --list-builtins option

It can be useful in the test suite to be able to iterate
over the list of builtins. We could do this with some
Makefile magic. But since the authoritative list is in the
commands array inside git.c, and since this could also be
handy for debugging, let's add a hidden command-line option
to dump that list.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

version: convert to parse-optionsJeff King Tue, 30 May 2017 05:17:42 +0000 (01:17 -0400)

version: convert to parse-options

The "git version" command didn't traditionally accept any
options, and in fact ignores any you give it. When we added
simple option parsing for "--build-options" in 6b9c38e14, we
didn't improve this; we just loop over the arguments and
pick out the one we recognize.

Instead, let's move to a real parsing loop, complain about
nonsense options, and recognize conventions like "-h".

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

diff- and log- family: handle "git cmd -h" earlyJunio C Hamano Thu, 1 Jun 2017 04:38:16 +0000 (13:38 +0900)

diff- and log- family: handle "git cmd -h" early

"git $builtin -h" bypasses the usual repository setup and calls the
cmd_$builtin() function, expecting it to show the help text.

Unfortunately the commands in the log- and the diff- family want to
call into the revisions machinery, which by definition needs to have
a repository already discovered. Strictly speaking, they may not
need a repository only for parsing "-h", but it is a good discipline
to future-proof codepath to ensure that setup_revisions() is called
after we know that a repository is there.

Handle the "git $builtin -h" special case very early in these
commands to work around potential issues.

Signed-off-by: Junio C Hamano <gitster@pobox.com>

diff: rename diff_fill_sha1_info to diff_fill_oid_infoBrandon Williams Tue, 30 May 2017 17:31:09 +0000 (10:31 -0700)

diff: rename diff_fill_sha1_info to diff_fill_oid_info

Signed-off-by: Brandon Williams <bmwill@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

diffcore-rename: use is_empty_blob_oidBrandon Williams Tue, 30 May 2017 17:31:08 +0000 (10:31 -0700)

diffcore-rename: use is_empty_blob_oid

Signed-off-by: Brandon Williams <bmwill@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

tree-diff: convert path_appendnew to object_idBrandon Williams Tue, 30 May 2017 17:31:07 +0000 (10:31 -0700)

tree-diff: convert path_appendnew to object_id

Signed-off-by: Brandon Williams <bmwill@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

tree-diff: convert diff_tree_paths to struct object_idBrandon Williams Tue, 30 May 2017 17:31:06 +0000 (10:31 -0700)

tree-diff: convert diff_tree_paths to struct object_id

Signed-off-by: Brandon Williams <bmwill@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

tree-diff: convert try_to_follow_renames to struct... Brandon Williams Tue, 30 May 2017 17:31:05 +0000 (10:31 -0700)

tree-diff: convert try_to_follow_renames to struct object_id

Signed-off-by: Brandon Williams <bmwill@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

builtin/diff-tree: cleanup references to sha1Brandon Williams Tue, 30 May 2017 17:31:04 +0000 (10:31 -0700)

builtin/diff-tree: cleanup references to sha1

Signed-off-by: Brandon Williams <bmwill@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

diff-tree: convert diff_tree_sha1 to struct object_idBrandon Williams Tue, 30 May 2017 17:31:03 +0000 (10:31 -0700)

diff-tree: convert diff_tree_sha1 to struct object_id

Signed-off-by: Brandon Williams <bmwill@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

notes-merge: convert write_note_to_worktree to struct... Brandon Williams Tue, 30 May 2017 17:31:02 +0000 (10:31 -0700)

notes-merge: convert write_note_to_worktree to struct object_id

Signed-off-by: Brandon Williams <bmwill@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

notes-merge: convert verify_notes_filepair to struct... Brandon Williams Tue, 30 May 2017 17:31:01 +0000 (10:31 -0700)

notes-merge: convert verify_notes_filepair to struct object_id

Signed-off-by: Brandon Williams <bmwill@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

notes-merge: convert find_notes_merge_pair_ps to struct... Brandon Williams Tue, 30 May 2017 17:31:00 +0000 (10:31 -0700)

notes-merge: convert find_notes_merge_pair_ps to struct object_id

Signed-off-by: Brandon Williams <bmwill@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

notes-merge: convert merge_from_diffs to struct object_idBrandon Williams Tue, 30 May 2017 17:30:59 +0000 (10:30 -0700)

notes-merge: convert merge_from_diffs to struct object_id

Signed-off-by: Brandon Williams <bmwill@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

notes-merge: convert notes_merge* to struct object_idBrandon Williams Tue, 30 May 2017 17:30:58 +0000 (10:30 -0700)

notes-merge: convert notes_merge* to struct object_id

Convert notes_merge and notes_merge_commit to use struct object_id.

Signed-off-by: Brandon Williams <bmwill@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

perf: work around the tested repo having an index.lockÆvar Arnfjörð Bjarmason Fri, 2 Jun 2017 10:33:30 +0000 (10:33 +0000)

perf: work around the tested repo having an index.lock

When the tested repo has an index.lock file it should be removed. This
file may be present if e.g. git-status previously crashed in that
repo, and it will make a lot of git commands fail. Let's try harder
and remove the lock.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Sync with v2.13.1Junio C Hamano Mon, 5 Jun 2017 00:33:16 +0000 (09:33 +0900)

Sync with v2.13.1

Seventh batch for 2.14Junio 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>

Merge branch 'ad/pull-remote-doc'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

Merge branch 'tb/pull-ff-rebase-autostash'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

Merge branch 'jk/drop-free-refspecs'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

Merge branch 'jk/connect-symref-info-leak-fix'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()

Merge branch 'js/blame-lib'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
...

Merge branch 'mh/packed-ref-store-prep'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
...

Merge branch 'mb/diff-default-to-indent-heuristics'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

Merge branch 'jh/close-index-before-stat'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

Git 2.13.1 v2.13.1Junio 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>

Merge branch 'ah/doc-rev-parse-short-default' into... 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

Merge branch 'ah/doc-filter-branch-export-env' into... 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

Merge branch 'sd/t3200-typofix' into maintJunio 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

Merge branch 'sb/t5531-update-desc' into maintJunio 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

Merge branch 'ah/doc-pretty-format-fix' into maintJunio 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

Merge branch 'ah/doc-interpret-trailers-ifexists' into... 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

Merge branch 'ab/ref-filter-no-contains' into maintJunio 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

Merge branch 'sg/core-filemode-doc-typofix' into maintJunio 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

Merge branch 'tb/dedup-crlf-tests' into maintJunio 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

Merge branch 'jn/credential-doc-on-clear' into maintJunio 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

Merge branch 'jk/url-insteadof-config' into maintJunio 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

Merge branch 'jk/unbreak-am-h' into maintJunio 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

Merge branch 'ab/sha1dc-maint' into maintJunio 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

Merge branch 'js/bs-is-a-dir-sep-on-windows' into maintJunio 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

Merge branch 'jk/alternate-ref-optim' into maintJunio 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

Merge branch 'bm/interpret-trailers-cut-line-is-eom... 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

Merge branch 'kn/ref-filter-branch-list' into maintJunio 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

Merge branch 'rs/checkout-am-fix-unborn' into maintJunio 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

Merge branch 'jn/clone-add-empty-config-from-command... 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

Merge branch 'ab/c-translators-comment-style' into... 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

Merge branch 'ls/travis-doc-asciidoctor' into maintJunio 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

Documentation/git-rm: correct submodule descriptionStefan Beller Fri, 2 Jun 2017 19:28:10 +0000 (12:28 -0700)

Documentation/git-rm: correct submodule description

Since 3ccd681c2a (Merge branch 'sb/submodule-rm-absorb', 2017-01-18)
git-rm tries to absorb any submodules git dir before deleting the
submodule. Correct the documentation to say so.

Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Sync with maintJunio C Hamano Sun, 4 Jun 2017 01:29:26 +0000 (10:29 +0900)

Sync with maint

Prepare for 2.13.1; more topics to followJunio 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>

Merge branch 'tg/stash-push-fixup' into maintJunio 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

Merge branch 'km/log-showsignature-doc' into maintJunio 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

Merge branch 'jt/use-trailer-api-in-commands' into... 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

Merge branch 'jt/push-options-doc' into maintJunio 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

Merge branch 'js/plug-leaks' into maintJunio 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
...

Merge branch 'js/eol-on-ourselves' into maintJunio 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

Merge branch 'jk/update-links-in-docs' into maintJunio 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

Merge branch 'jk/ignore-broken-tags-when-ignoring-missi... 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

Merge branch 'jk/doc-config-include' into maintJunio 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

Merge branch 'jk/disable-pack-reuse-when-broken' into... 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

Merge branch 'jk/am-leakfix' into maintJunio 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()

Merge branch 'jc/read-tree-empty-with-m' into maintJunio 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

Merge branch 'jc/apply-fix-mismerge' into maintJunio 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

Merge branch 'ja/do-not-ask-needless-questions' into... 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

Merge branch 'bw/submodule-with-bs-path' into maintJunio 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'

Merge branch 'ah/log-decorate-default-to-auto' into... 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

Merge branch 'ab/fix-poison-tests' into maintJunio 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

Merge branch 'ab/doc-replace-gmane-links' into maintJunio 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

Merge branch 'ab/aix-needs-compat-regex' into maintJunio 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

Merge branch 'pw/rebase-i-regression-fix' into maintJunio 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

Sixth batch for 2.14Junio 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>

Merge branch 'jk/url-insteadof-config'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

Merge branch 'ah/doc-rev-parse-short-default'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

Merge branch 'rf/completion-config-commit'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

Merge branch 'ab/c-translators-comment-style'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