git/git.git
4 years agoupdate-ref: pass reflog message to delete_ref()
Kyle Meyer [Tue, 21 Feb 2017 01:10:33 +0000 (20:10 -0500)]
update-ref: pass reflog message to delete_ref()

Now that delete_ref() accepts a reflog message, pass the user-provided
message to delete_ref() rather than silently dropping it.

Signed-off-by: Kyle Meyer <kyle@kyleam.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
4 years agodelete_ref: accept a reflog message argument
Kyle Meyer [Tue, 21 Feb 2017 01:10:32 +0000 (20:10 -0500)]
delete_ref: accept a reflog message argument

When the current branch is renamed with 'git branch -m/-M' or deleted
with 'git update-ref -m<msg> -d', the event is recorded in HEAD's log
with an empty message.  In preparation for adding a more meaningful
message to HEAD's log in these cases, update delete_ref() to take a
message argument and pass it along to ref_transaction_delete().
Modify all callers to pass NULL for the new message argument; no
change in behavior is intended.

Note that this is relevant for HEAD's log but not for the deleted
ref's log, which is currently deleted along with the ref.  Even if it
were not, an entry for the deletion wouldn't be present in the deleted
ref's log.  files_transaction_commit() writes to the log if
REF_NEEDS_COMMIT or REF_LOG_ONLY are set, but lock_ref_for_update()
doesn't set REF_NEEDS_COMMIT for the deleted ref because REF_DELETING
is set.  In contrast, the update for HEAD has REF_LOG_ONLY set by
split_head_update(), resulting in the deletion being logged.

Signed-off-by: Kyle Meyer <kyle@kyleam.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
4 years agoGit 2.12-rc2 v2.12.0-rc2
Junio C Hamano [Fri, 17 Feb 2017 22:00:19 +0000 (14:00 -0800)]
Git 2.12-rc2

Signed-off-by: Junio C Hamano <gitster@pobox.com>
4 years agoHopefully the final batch of mini-topics before the final 139/head
Junio C Hamano [Thu, 16 Feb 2017 22:46:35 +0000 (14:46 -0800)]
Hopefully the final batch of mini-topics before the final

Signed-off-by: Junio C Hamano <gitster@pobox.com>
4 years agoMerge branch 'jk/tempfile-ferror-fclose-confusion'
Junio C Hamano [Thu, 16 Feb 2017 22:45:15 +0000 (14:45 -0800)]
Merge branch 'jk/tempfile-ferror-fclose-confusion'

Code clean-up.

* jk/tempfile-ferror-fclose-confusion:
  tempfile: avoid "ferror | fclose" trick

4 years agoMerge branch 'dp/submodule-doc-markup-fix'
Junio C Hamano [Thu, 16 Feb 2017 22:45:15 +0000 (14:45 -0800)]
Merge branch 'dp/submodule-doc-markup-fix'

Doc fix.

* dp/submodule-doc-markup-fix:
  config.txt: fix formatting of submodule.alternateErrorStrategy section

4 years agoMerge branch 'jk/reset-to-break-a-commit-doc-updated'
Junio C Hamano [Thu, 16 Feb 2017 22:45:14 +0000 (14:45 -0800)]
Merge branch 'jk/reset-to-break-a-commit-doc-updated'

Doc update.

* jk/reset-to-break-a-commit-doc-updated:
  reset: add an example of how to split a commit into two

4 years agoMerge branch 'jk/reset-to-break-a-commit-doc'
Junio C Hamano [Thu, 16 Feb 2017 22:45:14 +0000 (14:45 -0800)]
Merge branch 'jk/reset-to-break-a-commit-doc'

Doc update.

* jk/reset-to-break-a-commit-doc:
  Revert "reset: add an example of how to split a commit into two"

4 years agoMerge branch 'js/mingw-isatty'
Junio C Hamano [Thu, 16 Feb 2017 22:45:13 +0000 (14:45 -0800)]
Merge branch 'js/mingw-isatty'

A hotfix for a topic already in 'master'.

* js/mingw-isatty:
  mingw: make stderr unbuffered again

4 years agoMerge branch 'rs/strbuf-cleanup-in-rmdir-recursively'
Junio C Hamano [Thu, 16 Feb 2017 22:45:13 +0000 (14:45 -0800)]
Merge branch 'rs/strbuf-cleanup-in-rmdir-recursively'

Code clean-up.

* rs/strbuf-cleanup-in-rmdir-recursively:
  rm: reuse strbuf for all remove_dir_recursively() calls, again

4 years agoMerge branch 'rs/ls-files-partial-optim'
Junio C Hamano [Thu, 16 Feb 2017 22:45:13 +0000 (14:45 -0800)]
Merge branch 'rs/ls-files-partial-optim'

"ls-files" run with pathspec has been micro-optimized to avoid
having to memmove(3) unnecessary bytes.

* rs/ls-files-partial-optim:
  ls-files: move only kept cache entries in prune_cache()
  ls-files: pass prefix length explicitly to prune_cache()

4 years agoMerge branch 'rs/cocci-check-free-only-null'
Junio C Hamano [Thu, 16 Feb 2017 22:45:13 +0000 (14:45 -0800)]
Merge branch 'rs/cocci-check-free-only-null'

A new coccinelle rule that catches a check of !pointer before the
pointer is free(3)d, which most likely is a bug.

* rs/cocci-check-free-only-null:
  cocci: detect useless free(3) calls

4 years agoMerge branch 'ls/p4-path-encoding'
Junio C Hamano [Thu, 16 Feb 2017 22:45:12 +0000 (14:45 -0800)]
Merge branch 'ls/p4-path-encoding'

When "git p4" imports changelist that removes paths, it failed to
convert pathnames when the p4 used encoding different from the one
used on the Git side.  This has been corrected.

* ls/p4-path-encoding:
  git-p4: fix git-p4.pathEncoding for removed files

4 years agotempfile: avoid "ferror | fclose" trick
Jeff King [Thu, 16 Feb 2017 21:31:40 +0000 (16:31 -0500)]
tempfile: avoid "ferror | fclose" trick

The current code wants to record an error condition from
either ferror() or fclose(), but makes sure that we always
call both functions. So it can't use logical-OR "||", which
would short-circuit when ferror() is true. Instead, it uses
bitwise-OR "|" to evaluate both functions and set one or
more bits in the "err" flag if they reported a failure.

Unlike logical-OR, though, bitwise-OR does not introduce a
sequence point, and the order of evaluation for its operands
is unspecified. So a compiler would be free to generate code
which calls fclose() first, and then ferror() on the
now-freed filehandle.

There's no indication that this has happened in practice,
but let's write it out in a way that follows the standard.

Noticed-by: Andreas Schwab <schwab@linux-m68k.org>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
4 years agoconfig.txt: fix formatting of submodule.alternateErrorStrategy section
David Pursehouse [Thu, 16 Feb 2017 05:05:35 +0000 (14:05 +0900)]
config.txt: fix formatting of submodule.alternateErrorStrategy section

Add missing `::` after the title.

Signed-off-by: David Pursehouse <dpursehouse@collab.net>
Acked-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
4 years agoreset: add an example of how to split a commit into two
Jacob Keller [Thu, 16 Feb 2017 00:22:12 +0000 (16:22 -0800)]
reset: add an example of how to split a commit into two

It is often useful to break a commit into multiple parts that are more
logical separations. This can be tricky to learn how to do without the
brute-force method if re-writing code or commit messages from scratch.

Add a section to the git-reset documentation which shows an example
process for how to use git add -p and git commit -c HEAD@{1} to
interactively break a commit apart and re-use the original commit
message as a starting point when making the new commit message.

Signed-off-by: Jacob Keller <jacob.keller@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
4 years agoRevert "reset: add an example of how to split a commit into two"
Junio C Hamano [Thu, 16 Feb 2017 21:35:50 +0000 (13:35 -0800)]
Revert "reset: add an example of how to split a commit into two"

This reverts commit 7326451bedaa67d29afe02184b166e28d9393c91; a
better rewrite will be queued separately.

4 years agoA bit more for -rc2
Junio C Hamano [Wed, 15 Feb 2017 22:58:25 +0000 (14:58 -0800)]
A bit more for -rc2

4 years agoMerge branch 'tg/stash-doc-cleanup'
Junio C Hamano [Wed, 15 Feb 2017 22:56:41 +0000 (14:56 -0800)]
Merge branch 'tg/stash-doc-cleanup'

The documentation explained what "git stash" does to the working
tree (after stashing away the local changes) in terms of "reset
--hard", which was exposing an unnecessary implementation detail.

* tg/stash-doc-cleanup:
  Documentation/stash: remove mention of git reset --hard

4 years agoMerge branch 'jk/doc-submodule-markup-fix'
Junio C Hamano [Wed, 15 Feb 2017 22:56:40 +0000 (14:56 -0800)]
Merge branch 'jk/doc-submodule-markup-fix'

Doc markup fix.

* jk/doc-submodule-markup-fix:
  docs/git-submodule: fix unbalanced quote

4 years agoMerge branch 'jk/doc-remote-helpers-markup-fix'
Junio C Hamano [Wed, 15 Feb 2017 22:56:40 +0000 (14:56 -0800)]
Merge branch 'jk/doc-remote-helpers-markup-fix'

Doc markup fix.

* jk/doc-remote-helpers-markup-fix:
  docs/gitremote-helpers: fix unbalanced quotes

4 years agoMerge branch 'sb/doc-unify-bottom'
Junio C Hamano [Wed, 15 Feb 2017 20:54:20 +0000 (12:54 -0800)]
Merge branch 'sb/doc-unify-bottom'

Doc clean-up.

* sb/doc-unify-bottom:
  Documentation: unify bottom "part of git suite" lines

4 years agoMerge branch 'sb/push-options-via-transport'
Junio C Hamano [Wed, 15 Feb 2017 20:54:19 +0000 (12:54 -0800)]
Merge branch 'sb/push-options-via-transport'

The push-options given via the "--push-options" option were not
passed through to external remote helpers such as "smart HTTP" that
are invoked via the transport helper.

* sb/push-options-via-transport:
  push options: pass push options to the transport helper

4 years agoMerge branch 'cw/completion'
Junio C Hamano [Wed, 15 Feb 2017 20:54:19 +0000 (12:54 -0800)]
Merge branch 'cw/completion'

More command line completion (in contrib/) for recent additions.

* cw/completion:
  completion: recognize more long-options
  completion: teach remote subcommands to complete options
  completion: teach replace to complete options
  completion: teach ls-remote to complete options
  completion: improve bash completion for git-add
  completion: add subcommand completion for rerere
  completion: teach submodule subcommands to complete options

4 years agoMerge branch 'rs/swap'
Junio C Hamano [Wed, 15 Feb 2017 20:54:19 +0000 (12:54 -0800)]
Merge branch 'rs/swap'

Code clean-up.

* rs/swap:
  graph: use SWAP macro
  diff: use SWAP macro
  use SWAP macro
  apply: use SWAP macro
  add SWAP macro

4 years agoMerge branch 'sb/submodule-doc'
Junio C Hamano [Wed, 15 Feb 2017 20:54:18 +0000 (12:54 -0800)]
Merge branch 'sb/submodule-doc'

Doc updates.

* sb/submodule-doc:
  submodule update documentation: don't repeat ourselves
  submodule documentation: add options to the subcommand

4 years agomingw: make stderr unbuffered again
Johannes Schindelin [Mon, 13 Feb 2017 22:34:06 +0000 (23:34 +0100)]
mingw: make stderr unbuffered again

When removing the hack for isatty(), we actually removed more than just
an isatty() hack: we removed the hack where internal data structures of
the MSVC runtime are modified in order to redirect stdout/stderr.

Instead of using that hack (that does not work with newer versions of
the runtime, anyway), we replaced it by reopening the respective file
descriptors.

What we forgot was to mark stderr as unbuffered again.

Reported by Hannes Sixt. Fixed with Jeff Hostetler's assistance.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Tested-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
4 years agorm: reuse strbuf for all remove_dir_recursively() calls, again
René Scharfe [Sat, 11 Feb 2017 19:51:08 +0000 (20:51 +0100)]
rm: reuse strbuf for all remove_dir_recursively() calls, again

Don't throw the memory allocated for remove_dir_recursively() away after
a single call, use it for the other entries as well instead.

This change was done before in deb8e15a (rm: reuse strbuf for all
remove_dir_recursively() calls), but was reverted as a side-effect of
55856a35 (rm: absorb a submodules git dir before deletion). Reinstate
the optimization.

Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
4 years agoDocumentation/stash: remove mention of git reset --hard
Thomas Gummerer [Sun, 12 Feb 2017 21:54:14 +0000 (21:54 +0000)]
Documentation/stash: remove mention of git reset --hard

Don't mention git reset --hard in the documentation for git stash save.
It's an implementation detail that doesn't matter to the end user and
thus shouldn't be exposed to them.  In addition it's not quite true for
git stash -p, and will not be true when a filename argument to limit the
stash to a few files is introduced.

Signed-off-by: Thomas Gummerer <t.gummerer@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
4 years agodocs/git-submodule: fix unbalanced quote
Jeff King [Mon, 13 Feb 2017 21:05:49 +0000 (16:05 -0500)]
docs/git-submodule: fix unbalanced quote

The documentation gives an example of the submodule foreach
command that uses both backticks and single-quotes. We stick
the whole thing inside "+" markers to make it monospace, but
the inside punctuation still needs escaping. We handle the
backticks with "{backtick}", and use backslash-escaping for
the single-quotes.

But we missed the escaping on the second quote. Fortunately,
asciidoc renders this unbalanced quote as we want (showing
the quote), but asciidoctor does not. We could fix it by
adding the missing backslash.

However, let's take a step back. Even when rendered
correctly, it's hard to read a long command stuck into the
middle of a paragraph, and the important punctuation is hard
to notice. Let's instead bump it into its own single-line
code block. That makes both the source and the rendered
result more readable, and as a bonus we don't have to worry
about quoting at all.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
4 years agodocs/gitremote-helpers: fix unbalanced quotes
Jeff King [Mon, 13 Feb 2017 20:38:35 +0000 (15:38 -0500)]
docs/gitremote-helpers: fix unbalanced quotes

Each of these options is missing the closing single-quote on
the option name. This understandably confuses asciidoc,
which ends up rendering a stray quote, like:

  option cloning {'true|false}

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
4 years agols-files: move only kept cache entries in prune_cache()
René Scharfe [Fri, 10 Feb 2017 20:03:30 +0000 (21:03 +0100)]
ls-files: move only kept cache entries in prune_cache()

prune_cache() first identifies those entries at the start of the sorted
array that can be discarded.  Then it moves the rest of the entries up.
Last it identifies the unwanted trailing entries among the moved ones
and cuts them off.

Change the order: Identify both start *and* end of the range to keep
first and then move only those entries to the top.  The resulting code
is slightly shorter and a bit more efficient.

Signed-off-by: Rene Scharfe <l.s.r@web.de>
Reviewed-by: Brandon Williams <bmwill@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
4 years agols-files: pass prefix length explicitly to prune_cache()
René Scharfe [Fri, 10 Feb 2017 19:42:28 +0000 (20:42 +0100)]
ls-files: pass prefix length explicitly to prune_cache()

The function prune_cache() relies on the fact that it is only called on
max_prefix and sneakily uses the matching global variable max_prefix_len
directly.  Tighten its interface by passing both the string and its
length as parameters.  While at it move the NULL check into the function
to collect all cache-pruning related logic in one place.

Signed-off-by: Rene Scharfe <l.s.r@web.de>
Reviewed-by: Brandon Williams <bmwill@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
4 years agococci: detect useless free(3) calls
René Scharfe [Sat, 11 Feb 2017 13:58:44 +0000 (14:58 +0100)]
cocci: detect useless free(3) calls

Add a semantic patch for removing checks that cause free(3) to only be
called with a NULL pointer, as that must be a programming mistake.

Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
4 years agogit-p4: fix git-p4.pathEncoding for removed files
Lars Schneider [Thu, 9 Feb 2017 15:06:56 +0000 (16:06 +0100)]
git-p4: fix git-p4.pathEncoding for removed files

In a9e38359e3 we taught git-p4 a way to re-encode path names from what
was used in Perforce to UTF-8. This path re-encoding worked properly for
"added" paths. "Removed" paths were not re-encoded and therefore
different from the "added" paths. Consequently, these files were not
removed in a git-p4 cloned Git repository because the path names did not
match.

Fix this by moving the re-encoding to a place that affects "added" and
"removed" paths. Add a test to demonstrate the issue.

Signed-off-by: Lars Schneider <larsxschneider@gmail.com>
Reviewed-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
4 years agoGit 2.12-rc1 v2.12.0-rc1
Junio C Hamano [Fri, 10 Feb 2017 20:54:23 +0000 (12:54 -0800)]
Git 2.12-rc1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
4 years agoMerge branch 'nd/rev-list-all-includes-HEAD-doc'
Junio C Hamano [Fri, 10 Feb 2017 20:52:27 +0000 (12:52 -0800)]
Merge branch 'nd/rev-list-all-includes-HEAD-doc'

Doc update.

* nd/rev-list-all-includes-HEAD-doc:
  rev-list-options.txt: update --all about HEAD

4 years agoMerge branch 'rs/fill-directory-optim'
Junio C Hamano [Fri, 10 Feb 2017 20:52:27 +0000 (12:52 -0800)]
Merge branch 'rs/fill-directory-optim'

Code clean-up.

* rs/fill-directory-optim:
  dir: avoid allocation in fill_directory()

4 years agoMerge branch 'jk/log-graph-name-only'
Junio C Hamano [Fri, 10 Feb 2017 20:52:26 +0000 (12:52 -0800)]
Merge branch 'jk/log-graph-name-only'

"git log --graph" did not work well with "--name-only", even though
other forms of "diff" output were handled correctly.

* jk/log-graph-name-only:
  diff: print line prefix for --name-only output

4 years agoMerge branch 'da/t7800-cleanup'
Junio C Hamano [Fri, 10 Feb 2017 20:52:26 +0000 (12:52 -0800)]
Merge branch 'da/t7800-cleanup'

Test updates.

* da/t7800-cleanup:
  t7800: replace "wc -l" with test_line_count

4 years agoMerge branch 'dl/difftool-doc-no-gui-option'
Junio C Hamano [Fri, 10 Feb 2017 20:52:26 +0000 (12:52 -0800)]
Merge branch 'dl/difftool-doc-no-gui-option'

Doc update.

* dl/difftool-doc-no-gui-option:
  Document the --no-gui option in difftool

4 years agoMerge branch 'js/difftool-builtin'
Junio C Hamano [Fri, 10 Feb 2017 20:52:25 +0000 (12:52 -0800)]
Merge branch 'js/difftool-builtin'

A few hot-fixes to C-rewrite of "git difftool".

* js/difftool-builtin:
  t7800: simplify basic usage test
  difftool: fix bug when printing usage

4 years agoMerge branch 'rs/p5302-create-repositories-before-tests'
Junio C Hamano [Fri, 10 Feb 2017 20:52:25 +0000 (12:52 -0800)]
Merge branch 'rs/p5302-create-repositories-before-tests'

Adjust a perf test to new world order where commands that do
require a repository are really strict about having a repository.

* rs/p5302-create-repositories-before-tests:
  p5302: create repositories for index-pack results explicitly

4 years agoMerge branch 'ps/worktree-prune-help-fix'
Junio C Hamano [Fri, 10 Feb 2017 20:52:25 +0000 (12:52 -0800)]
Merge branch 'ps/worktree-prune-help-fix'

Incorrect usage help message for "git worktree prune" has been fixed.

* ps/worktree-prune-help-fix:
  worktree: fix option descriptions for `prune`

4 years agoMerge branch 'ew/complete-svn-authorship-options'
Junio C Hamano [Fri, 10 Feb 2017 20:52:24 +0000 (12:52 -0800)]
Merge branch 'ew/complete-svn-authorship-options'

Correct command line completion (in contrib/) on "git svn"

* ew/complete-svn-authorship-options:
  completion: fix git svn authorship switches

4 years agoMerge branch 'jk/reset-to-break-a-commit-doc'
Junio C Hamano [Fri, 10 Feb 2017 20:52:23 +0000 (12:52 -0800)]
Merge branch 'jk/reset-to-break-a-commit-doc'

A minor doc update.

* jk/reset-to-break-a-commit-doc:
  reset: add an example of how to split a commit into two

4 years agoMerge branch 'bw/push-submodule-only'
Junio C Hamano [Fri, 10 Feb 2017 20:52:23 +0000 (12:52 -0800)]
Merge branch 'bw/push-submodule-only'

Add missing documentation update to a recent topic.

* bw/push-submodule-only:
  completion: add completion for --recurse-submodules=only
  doc: add doc for git-push --recurse-submodules=only

4 years agoDocumentation: unify bottom "part of git suite" lines
Stefan Beller [Thu, 9 Feb 2017 01:29:30 +0000 (17:29 -0800)]
Documentation: unify bottom "part of git suite" lines

We currently have 168 man pages that mention they are part of Git, you
can check yourself easily via:
  $ git grep "Part of the linkgit:git\[1\] suite" |wc -l
  168
However some have a trailing period, i.e.
  $ git grep "Part of the linkgit:git\[1\] suite." |wc -l
  8

Unify the bottom line in all man pages to not end with a period.

Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
4 years agopush options: pass push options to the transport helper
Stefan Beller [Wed, 8 Feb 2017 22:04:00 +0000 (14:04 -0800)]
push options: pass push options to the transport helper

When using non-builtin protocols relying on a transport helper
(such as http), push options are not propagated to the helper.

The user could ask for push options and a push would seemingly succeed,
but the push options would never be transported to the server,
misleading the users expectation.

Fix this by propagating the push options to the transport helper.

This is only addressing the first issue of
   (1) the helper protocol does not propagate push-option
   (2) the http helper is not prepared to handle push-option

Once we fix (2), the http transport helper can make use of push options
as well, but that happens as a follow up. (1) is a bug fix, whereas (2)
is a feature, which is why we only do (1) here.

Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
4 years agodiff: print line prefix for --name-only output
Jeff King [Wed, 8 Feb 2017 20:31:15 +0000 (15:31 -0500)]
diff: print line prefix for --name-only output

If you run "git log --graph --name-only", the pathnames are
not indented to go along with their matching commits (unlike
all of the other diff formats). We need to output the line
prefix for each item before writing it.

The tests cover both --name-status and --name-only. The
former actually gets this right already, because it builds
on the --raw format functions. It's only --name-only which
uses its own code (and this fix mirrors the code in
diff_flush_raw()).

Note that the tests don't follow our usual style of setting
up the "expect" output inside the test block. This matches
the surrounding style, but more importantly it is easier to
read: we don't have to worry about embedded single-quotes,
and the leading indentation is more obvious.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
4 years agodir: avoid allocation in fill_directory()
René Scharfe [Tue, 7 Feb 2017 22:04:25 +0000 (23:04 +0100)]
dir: avoid allocation in fill_directory()

Pass the match member of the first pathspec item directly to
read_directory() instead of using common_prefix() to duplicate it first,
thus avoiding memory duplication, strlen(3) and free(3).

Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
4 years agorev-list-options.txt: update --all about HEAD
Nguyễn Thái Ngọc Duy [Wed, 8 Feb 2017 06:06:41 +0000 (13:06 +0700)]
rev-list-options.txt: update --all about HEAD

This is the document patch for f0298cf1c6 (revision walker: include a
detached HEAD in --all - 2009-01-16).

Even though that commit is about detached HEAD, as Jeff pointed out,
always adding HEAD in that case may have subtle differences with
--source or --exclude. So the document mentions nothing about the
detached-ness.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
4 years agot7800: replace "wc -l" with test_line_count
David Aguilar [Tue, 7 Feb 2017 09:17:00 +0000 (01:17 -0800)]
t7800: replace "wc -l" with test_line_count

Make t7800 easier to debug by capturing output into temporary files and
using test_line_count to make assertions on those files.

Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
4 years agoMerge branch 'da/difftool-dir-diff-fix' into da/t7800-cleanup
Junio C Hamano [Wed, 8 Feb 2017 21:36:03 +0000 (13:36 -0800)]
Merge branch 'da/difftool-dir-diff-fix' into da/t7800-cleanup

* da/difftool-dir-diff-fix:
  difftool: fix dir-diff index creation when in a subdirectory

4 years agot7800: simplify basic usage test
David Aguilar [Tue, 7 Feb 2017 09:16:59 +0000 (01:16 -0800)]
t7800: simplify basic usage test

Use "test_line_count" instead of "wc -l", use "git -C" instead of a
subshell, and use test_expect_code when calling difftool.  Ease
debugging by capturing output into temporary files.

Suggested-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
4 years agoDocument the --no-gui option in difftool
Denton Liu [Tue, 7 Feb 2017 06:32:07 +0000 (22:32 -0800)]
Document the --no-gui option in difftool

Prior to this, the `--no-gui` option was not documented in the manpage.
This commit introduces this into the manpage

Signed-off-by: Denton Liu <liu.denton@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
4 years agoworktree: fix option descriptions for `prune`
Patrick Steinhardt [Mon, 6 Feb 2017 13:13:59 +0000 (14:13 +0100)]
worktree: fix option descriptions for `prune`

The `verbose` and `expire` options of the `git worktree prune`
subcommand have wrong descriptions in that they pretend to relate to
objects. But as the git-worktree(1) correctly states, these options have
nothing to do with objects but only with worktrees. Fix the description
accordingly.

Signed-off-by: Patrick Steinhardt <patrick.steinhardt@elego.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
4 years agop5302: create repositories for index-pack results explicitly
René Scharfe [Sun, 5 Feb 2017 11:43:29 +0000 (12:43 +0100)]
p5302: create repositories for index-pack results explicitly

Before 7176a314 (index-pack: complain when --stdin is used outside of a
repo) index-pack silently created a non-existing target directory; now
the command refuses to work unless it's used against a valid repository.
That causes p5302 to fail, which relies on the former behavior.  Fix it
by setting up the destinations for its performance tests using git init.

Signed-off-by: Rene Scharfe <l.s.r@web.de>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
4 years agocompletion: fix git svn authorship switches
Eric Wong [Sun, 5 Feb 2017 02:18:57 +0000 (02:18 +0000)]
completion: fix git svn authorship switches

--add-author-from and --use-log-author are for "git svn dcommit",
not "git svn (init|clone)"

Signed-off-by: Eric Wong <e@80x24.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
4 years agodifftool: fix bug when printing usage
David Aguilar [Sun, 5 Feb 2017 21:23:38 +0000 (13:23 -0800)]
difftool: fix bug when printing usage

"git difftool -h" reports an error:

fatal: BUG: setup_git_env called without repository

Defer repository setup so that the help option processing happens before
the repository is initialized.

Add tests to ensure that the basic usage works inside and outside of a
repository.

Signed-off-by: David Aguilar <davvid@gmail.com>
Acked-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
4 years agoreset: add an example of how to split a commit into two
Jacob Keller [Fri, 3 Feb 2017 20:28:33 +0000 (12:28 -0800)]
reset: add an example of how to split a commit into two

It is often useful to break a commit into multiple parts that are more
logical separations. This can be tricky to learn how to do without the
brute-force method if re-writing code or commit messages from scratch.

Add a section to the git-reset documentation which shows an example
process for how to use git add -p and git commit -c HEAD@{1} to
interactively break a commit apart and re-use the original commit
message as a starting point when making the new commit message.

Signed-off-by: Jacob Keller <jacob.keller@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
4 years agocompletion: recognize more long-options
Cornelius Weig [Fri, 3 Feb 2017 11:01:59 +0000 (12:01 +0100)]
completion: recognize more long-options

Command completion only recognizes a subset of the available options for
the various git commands. The set of recognized options needs to balance
between having all useful options and to not clutter the terminal.

This commit adds all long-options that are mentioned in the man-page
synopsis of the respective git command. Possibly dangerous options are
not included in this set, to avoid accidental data loss. The added
options are:

 - apply: --recount --directory=
 - archive: --output
 - branch: --column --no-column --sort= --points-at
 - clone: --no-single-branch --shallow-submodules
 - commit: --patch --short --date --allow-empty
 - describe: --first-parent
 - fetch, pull: --unshallow --update-shallow
 - fsck: --name-objects
 - grep: --break --heading --show-function --function-context
         --untracked --no-index
 - mergetool: --prompt --no-prompt
 - reset: --keep
 - revert: --strategy= --strategy-option=
 - shortlog: --email
 - tag: --merged --no-merged --create-reflog

Signed-off-by: Cornelius Weig <cornelius.weig@tngtech.com>
Helped-by: Johannes Sixt <j6t@kdbg.org>
Reviewed-by: SZEDER Gábor <szeder.dev@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
4 years agocompletion: teach remote subcommands to complete options
Cornelius Weig [Fri, 3 Feb 2017 11:01:58 +0000 (12:01 +0100)]
completion: teach remote subcommands to complete options

Git-remote needs to complete remote names, its subcommands, and options
thereof. In addition to the existing subcommand and remote name
completion, do also complete the options

 - add: --track --master --fetch --tags --no-tags --mirror=
 - set-url: --push --add --delete
 - get-url: --push --all
 - prune: --dry-run

Signed-off-by: Cornelius Weig <cornelius.weig@tngtech.com>
Reviewed-by: SZEDER Gábor <szeder.dev@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
4 years agocompletion: teach replace to complete options
Cornelius Weig [Fri, 3 Feb 2017 11:01:57 +0000 (12:01 +0100)]
completion: teach replace to complete options

Git-replace needs to complete references and its own options. In
addition to the existing references completions, do also complete the
options --edit --graft --format= --list --delete.

Signed-off-by: Cornelius Weig <cornelius.weig@tngtech.com>
Reviewed-by: SZEDER Gábor <szeder.dev@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
4 years agocompletion: teach ls-remote to complete options
Cornelius Weig [Fri, 3 Feb 2017 11:01:56 +0000 (12:01 +0100)]
completion: teach ls-remote to complete options

ls-remote needs to complete remote names and its own options. In
addition to the existing remote name completions, do also complete
the options --heads, --tags, --refs, --get-url, and --symref.

Signed-off-by: Cornelius Weig <cornelius.weig@tngtech.com>
Reviewed-by: SZEDER Gábor <szeder.dev@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
4 years agocompletion: improve bash completion for git-add
Cornelius Weig [Fri, 3 Feb 2017 11:01:55 +0000 (12:01 +0100)]
completion: improve bash completion for git-add

Command completion for git-add did not recognize some long-options.
This commits adds completion for all long-options that are mentioned in
the man-page synopsis. In addition, if the user specified `--update` or
`-u`, path completion will only suggest modified tracked files.

Signed-off-by: Cornelius Weig <cornelius.weig@tngtech.com>
Reviewed-by: SZEDER Gábor <szeder.dev@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
4 years agocompletion: add subcommand completion for rerere
Cornelius Weig [Fri, 3 Feb 2017 11:01:54 +0000 (12:01 +0100)]
completion: add subcommand completion for rerere

Managing recorded resolutions requires command-line usage of git-rerere.
Added subcommand completion for rerere and path completion for its
subcommand forget.

Signed-off-by: Cornelius Weig <cornelius.weig@tngtech.com>
Reviewed-by: SZEDER Gábor <szeder.dev@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
4 years agocompletion: teach submodule subcommands to complete options
Cornelius Weig [Fri, 3 Feb 2017 11:01:53 +0000 (12:01 +0100)]
completion: teach submodule subcommands to complete options

Each submodule subcommand has specific long-options. Therefore, teach
bash completion to support option completion based on the current
subcommand. All long-options that are mentioned in the man-page synopsis
are added.

Signed-off-by: Cornelius Weig <cornelius.weig@tngtech.com>
Reviewed-by: SZEDER Gábor <szeder.dev@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
4 years agoGit 2.12-rc0 v2.12.0-rc0
Junio C Hamano [Fri, 3 Feb 2017 19:29:52 +0000 (11:29 -0800)]
Git 2.12-rc0

Signed-off-by: Junio C Hamano <gitster@pobox.com>
4 years agoMerge branch 'cw/log-updates-for-all-refs-really'
Junio C Hamano [Fri, 3 Feb 2017 19:25:19 +0000 (11:25 -0800)]
Merge branch 'cw/log-updates-for-all-refs-really'

The "core.logAllRefUpdates" that used to be boolean has been
enhanced to take 'always' as well, to record ref updates to refs
other than the ones that are expected to be updated (i.e. branches,
remote-tracking branches and notes).

* cw/log-updates-for-all-refs-really:
  doc: add note about ignoring '--no-create-reflog'
  update-ref: add test cases for bare repository
  refs: add option core.logAllRefUpdates = always
  config: add markup to core.logAllRefUpdates doc

4 years agoMerge branch 'pl/complete-diff-submodule-diff'
Junio C Hamano [Fri, 3 Feb 2017 19:25:19 +0000 (11:25 -0800)]
Merge branch 'pl/complete-diff-submodule-diff'

The command line completion (in contrib/) learned that
"git diff --submodule=" can take "diff" as a recently added option.

* pl/complete-diff-submodule-diff:
  Completion: Add support for --submodule=diff

4 years agoMerge branch 'rs/object-id'
Junio C Hamano [Fri, 3 Feb 2017 19:25:19 +0000 (11:25 -0800)]
Merge branch 'rs/object-id'

"uchar [40]" to "struct object_id" conversion continues.

* rs/object-id:
  checkout: convert post_checkout_hook() to struct object_id
  use oidcpy() for copying hashes between instances of struct object_id
  use oid_to_hex_r() for converting struct object_id hashes to hex strings

4 years agoMerge branch 'js/re-running-failed-tests'
Junio C Hamano [Fri, 3 Feb 2017 19:25:19 +0000 (11:25 -0800)]
Merge branch 'js/re-running-failed-tests'

"make -C t failed" will now run only the tests that failed in the
previous run.  This is usable only when prove is not use, and gives
a useless error message when run after "make clean", but otherwise
is serviceable.

* js/re-running-failed-tests:
  t/Makefile: add a rule to re-run previously-failed tests

4 years agoMerge branch 'sb/submodule-update-initial-runs-custom-script'
Junio C Hamano [Fri, 3 Feb 2017 19:25:19 +0000 (11:25 -0800)]
Merge branch 'sb/submodule-update-initial-runs-custom-script'

The user can specify a custom update method that is run when
"submodule update" updates an already checked out submodule.  This
was ignored when checking the submodule out for the first time and
we instead always just checked out the commit that is bound to the
path in the superproject's index.

* sb/submodule-update-initial-runs-custom-script:
  submodule update: run custom update script for initial populating as well

4 years agoMerge branch 'sb/submodule-recursive-absorb'
Junio C Hamano [Fri, 3 Feb 2017 19:25:18 +0000 (11:25 -0800)]
Merge branch 'sb/submodule-recursive-absorb'

When a submodule "A", which has another submodule "B" nested within
it, is "absorbed" into the top-level superproject, the inner
submodule "B" used to be left in a strange state.  The logic to
adjust the .git pointers in these submodules has been corrected.

* sb/submodule-recursive-absorb:
  submodule absorbing: fix worktree/gitdir pointers recursively for non-moves
  cache.h: expose the dying procedure for reading gitlinks
  setup: add gentle version of resolve_git_dir

4 years agoMerge branch 'sb/unpack-trees-super-prefix'
Junio C Hamano [Fri, 3 Feb 2017 19:25:18 +0000 (11:25 -0800)]
Merge branch 'sb/unpack-trees-super-prefix'

"git read-tree" and its underlying unpack_trees() machinery learned
to report problematic paths prefixed with the --super-prefix option.

* sb/unpack-trees-super-prefix:
  unpack-trees: support super-prefix option
  t1001: modernize style
  t1000: modernize style
  read-tree: use OPT_BOOL instead of OPT_SET_INT

4 years agoSync with v2.11.1
Junio C Hamano [Thu, 2 Feb 2017 21:43:19 +0000 (13:43 -0800)]
Sync with v2.11.1

* maint:
  Git 2.11.1

4 years agoNinth batch for 2.12; almost ready for -rc0
Junio C Hamano [Thu, 2 Feb 2017 21:43:10 +0000 (13:43 -0800)]
Ninth batch for 2.12; almost ready for -rc0

Signed-off-by: Junio C Hamano <gitster@pobox.com>
4 years agoMerge branch 'nd/log-graph-configurable-colors'
Junio C Hamano [Thu, 2 Feb 2017 21:36:58 +0000 (13:36 -0800)]
Merge branch 'nd/log-graph-configurable-colors'

Some people feel the default set of colors used by "git log --graph"
rather limiting.  A mechanism to customize the set of colors has
been introduced.

* nd/log-graph-configurable-colors:
  document behavior of empty color name
  color_parse_mem: allow empty color spec
  log --graph: customize the graph lines with config log.graphColors
  color.c: trim leading spaces in color_parse_mem()
  color.c: fix color_parse_mem() with value_len == 0

4 years agoMerge branch 'ep/commit-static-buf-cleanup'
Junio C Hamano [Thu, 2 Feb 2017 21:36:57 +0000 (13:36 -0800)]
Merge branch 'ep/commit-static-buf-cleanup'

Code clean-up.

* ep/commit-static-buf-cleanup:
  builtin/commit.c: switch to strbuf, instead of snprintf()
  builtin/commit.c: remove the PATH_MAX limitation via dynamic allocation

4 years agoMerge branch 'bc/use-asciidoctor-opt'
Junio C Hamano [Thu, 2 Feb 2017 21:36:57 +0000 (13:36 -0800)]
Merge branch 'bc/use-asciidoctor-opt'

Asciidoctor, an alternative reimplementation of AsciiDoc, still
needs some changes to work with documents meant to be formatted
with AsciiDoc.  "make USE_ASCIIDOCTOR=YesPlease" to use it out of
the box to document our pages is getting closer to reality.

* bc/use-asciidoctor-opt:
  Documentation: implement linkgit macro for Asciidoctor
  Makefile: add a knob to enable the use of Asciidoctor
  Documentation: move dblatex arguments into variable
  Documentation: add XSLT to fix DocBook for Texinfo
  Documentation: sort sources for gitman.texi
  Documentation: remove unneeded argument in cat-texi.perl
  Documentation: modernize cat-texi.perl
  Documentation: fix warning in cat-texi.perl

4 years agoMerge branch 'sg/mailmap-self'
Junio C Hamano [Thu, 2 Feb 2017 21:36:57 +0000 (13:36 -0800)]
Merge branch 'sg/mailmap-self'

* sg/mailmap-self:
  .mailmap: update Gábor Szeder's email address

4 years agoMerge branch 'js/mingw-hooks-with-exe-suffix'
Junio C Hamano [Thu, 2 Feb 2017 21:36:57 +0000 (13:36 -0800)]
Merge branch 'js/mingw-hooks-with-exe-suffix'

Names of the various hook scripts must be spelled exactly, but on
Windows, an .exe binary must be named with .exe suffix; notice
$GIT_DIR/hooks/<hookname>.exe as a valid <hookname> hook.

* js/mingw-hooks-with-exe-suffix:
  mingw: allow hooks to be .exe files

4 years agoMerge branch 'rs/receive-pack-cleanup'
Junio C Hamano [Thu, 2 Feb 2017 21:36:56 +0000 (13:36 -0800)]
Merge branch 'rs/receive-pack-cleanup'

Code clean-up.

* rs/receive-pack-cleanup:
  receive-pack: call string_list_clear() unconditionally

4 years agoMerge branch 'mm/reset-facl-before-umask-test'
Junio C Hamano [Thu, 2 Feb 2017 21:36:56 +0000 (13:36 -0800)]
Merge branch 'mm/reset-facl-before-umask-test'

Test tweaks for those who have default ACL in their git source tree
that interfere with the umask test.

* mm/reset-facl-before-umask-test:
  t0001: don't let a default ACL interfere with the umask test

4 years agoMerge branch 'hv/mingw-help-is-executable'
Junio C Hamano [Thu, 2 Feb 2017 21:36:55 +0000 (13:36 -0800)]
Merge branch 'hv/mingw-help-is-executable'

"git help" enumerates executable files in $PATH; the implementation
of "is this file executable?" on Windows has been optimized.

* hv/mingw-help-is-executable:
  help: improve is_executable() on Windows

4 years agoMerge branch 'gv/mingw-p4-mapuser'
Junio C Hamano [Thu, 2 Feb 2017 21:36:55 +0000 (13:36 -0800)]
Merge branch 'gv/mingw-p4-mapuser'

"git p4" did not work well with multiple git-p4.mapUser entries on
Windows.

* gv/mingw-p4-mapuser:
  git-p4: fix git-p4.mapUser on Windows

4 years agoMerge branch 'rs/absolute-pathdup'
Junio C Hamano [Thu, 2 Feb 2017 21:36:55 +0000 (13:36 -0800)]
Merge branch 'rs/absolute-pathdup'

Code cleanup.

* rs/absolute-pathdup:
  use absolute_pathdup()
  abspath: add absolute_pathdup()

4 years agoMerge branch 'js/unzip-in-usr-bin-workaround'
Junio C Hamano [Thu, 2 Feb 2017 21:36:55 +0000 (13:36 -0800)]
Merge branch 'js/unzip-in-usr-bin-workaround'

Test tweak for FreeBSD where /usr/bin/unzip is unsuitable to run
our tests but /usr/local/bin/unzip is usable.

* js/unzip-in-usr-bin-workaround:
  test-lib: on FreeBSD, look for unzip(1) in /usr/local/bin/

4 years agoMerge branch 'cw/doc-sign-off'
Junio C Hamano [Thu, 2 Feb 2017 21:36:54 +0000 (13:36 -0800)]
Merge branch 'cw/doc-sign-off'

Doc update.

* cw/doc-sign-off:
  doc: clarify distinction between sign-off and pgp-signing

4 years agoMerge branch 'js/status-pre-rebase-i'
Junio C Hamano [Thu, 2 Feb 2017 21:36:54 +0000 (13:36 -0800)]
Merge branch 'js/status-pre-rebase-i'

After starting "git rebase -i", which first opens the user's editor
to edit the series of patches to apply, but before saving the
contents of that file, "git status" failed to show the current
state (i.e. you are in an interactive rebase session, but you have
applied no steps yet) correctly.

* js/status-pre-rebase-i:
  status: be prepared for not-yet-started interactive rebase

4 years agoMerge branch 'js/retire-relink'
Junio C Hamano [Thu, 2 Feb 2017 21:36:54 +0000 (13:36 -0800)]
Merge branch 'js/retire-relink'

Cruft removal.

* js/retire-relink:
  relink: really remove the command
  relink: retire the command

4 years agoMerge branch 'sb/submodule-add-force'
Junio C Hamano [Thu, 2 Feb 2017 21:36:54 +0000 (13:36 -0800)]
Merge branch 'sb/submodule-add-force'

"git submodule add" used to be confused and refused to add a
locally created repository; users can now use "--force" option
to add them.

* sb/submodule-add-force:
  submodule add: extend force flag to add existing repos

4 years agoGit 2.11.1 v2.11.1
Junio C Hamano [Thu, 2 Feb 2017 21:21:27 +0000 (13:21 -0800)]
Git 2.11.1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
4 years agoMerge branch 'ws/request-pull-code-cleanup' into maint
Junio C Hamano [Thu, 2 Feb 2017 21:20:30 +0000 (13:20 -0800)]
Merge branch 'ws/request-pull-code-cleanup' into maint

Code clean-up.

* ws/request-pull-code-cleanup:
  request-pull: drop old USAGE stuff

4 years agoMerge branch 'jk/execv-dashed-external' into maint
Junio C Hamano [Thu, 2 Feb 2017 21:20:29 +0000 (13:20 -0800)]
Merge branch 'jk/execv-dashed-external' into maint

Typing ^C to pager, which usually does not kill it, killed Git and
took the pager down as a collateral damage in certain process-tree
structure.  This has been fixed.

* jk/execv-dashed-external:
  execv_dashed_external: wait for child on signal death
  execv_dashed_external: stop exiting with negative code
  execv_dashed_external: use child_process struct

4 years agodocument behavior of empty color name
Jeff King [Thu, 2 Feb 2017 12:42:44 +0000 (13:42 +0100)]
document behavior of empty color name

Commit 55cccf4bb (color_parse_mem: allow empty color spec,
2017-02-01) clearly defined the behavior of an empty color
config variable. Let's document that, and give a hint about
why it might be useful.

It's important not to say that it makes the item uncolored,
because it doesn't. It just sets no attributes, which means
that any previous attributes continue to take effect.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
4 years agodoc: add note about ignoring '--no-create-reflog'
Cornelius Weig [Wed, 1 Feb 2017 22:07:27 +0000 (23:07 +0100)]
doc: add note about ignoring '--no-create-reflog'

The commands git-branch and git-tag accept the '--create-reflog'
option, and create reflog even when core.logallrefupdates
configuration is explicitly set not to.

On the other hand, the negated form '--no-create-reflog' is accepted
as a valid option but has no effect (other than overriding an
earlier '--create-reflog' on the command line). This silent noop may
puzzle users.  To communicate that this is a known limitation, add a
short note in the manuals for git-branch and git-tag.

Signed-off-by: Cornelius Weig <cornelius.weig@tngtech.com>
Helped-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
4 years agocompletion: add completion for --recurse-submodules=only
Cornelius Weig [Wed, 1 Feb 2017 23:07:53 +0000 (00:07 +0100)]
completion: add completion for --recurse-submodules=only

Command completion for 'git-push --recurse-submodules' already knows to
complete some modes. However, the recently added mode 'only' is missing.

Adding 'only' to the recognized modes completes the list of non-trivial
modes.

Signed-off-by: Cornelius Weig <cornelius.weig@tngtech.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
4 years agodoc: add doc for git-push --recurse-submodules=only
Cornelius Weig [Wed, 1 Feb 2017 23:07:52 +0000 (00:07 +0100)]
doc: add doc for git-push --recurse-submodules=only

Add documentation for the `--recurse-submodules=only` option of
git-push. The feature was added in commit 225e8bf (add option to
push only submodules).

Signed-off-by: Cornelius Weig <cornelius.weig@tngtech.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>