git/git.git
3 years agobuiltin.h: take over documentation from api-builtin.txt
Martin Ågren [Wed, 2 Aug 2017 19:40:49 +0000 (21:40 +0200)]
builtin.h: take over documentation from api-builtin.txt

Delete Documentation/technical/api-builtin.txt and move its content
into builtin.h. Format it as a comment. Remove a '+' which was needed
when the information was formatted for AsciiDoc. Similarly, change
"::" to ":".

Document SUPPORT_SUPER_PREFIX, thereby bringing the documentation up to
date with the available flags.

While at it, correct '3 more things to do' to '4 more things to do'.

Signed-off-by: Martin Ågren <martin.agren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agorevision: do not fallback to default when rev_input_given is set
Jeff King [Wed, 2 Aug 2017 22:30:19 +0000 (18:30 -0400)]
revision: do not fallback to default when rev_input_given is set

If revs->def is set (as it is in "git log") and there are no
pending objects after parsing the user's input, then we show
whatever is in "def". But if the user _did_ ask for some
input that just happened to be empty (e.g., "--glob" that
does not match anything), showing the default revision is
confusing. We should just show nothing, as that is what the
user's request yielded.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agorev-list: don't show usage when we see empty ref patterns
Jeff King [Wed, 2 Aug 2017 22:26:06 +0000 (18:26 -0400)]
rev-list: don't show usage when we see empty ref patterns

If the user gives us no starting point for a traversal, we
want to complain with our normal usage message. But if they
tried to do so with "--all" or "--glob", but that happened
not to match any refs, the usage message isn't helpful. We
should just give them the empty output they asked for
instead.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agorevision: add rev_input_given flag
Jeff King [Wed, 2 Aug 2017 22:25:27 +0000 (18:25 -0400)]
revision: add rev_input_given flag

Normally a caller that invokes setup_revisions() has to
check rev.pending to see if anything was actually queued for
the traversal. But they can't tell the difference between
two cases:

  1. The user gave us no tip from which to start a
     traversal.

  2. The user tried to give us tips via --glob, --all, etc,
     but their patterns ended up being empty.

Let's set a flag in the rev_info struct that callers can use
to tell the difference.  We can set this from the
init_all_refs_cb() function.  That's a little funny because
it's not exactly about initializing the "cb" struct itself.
But that function is the common setup place for doing
pattern traversals that is used by --glob, --all, etc.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agot6018: flesh out empty input/output rev-list tests
Jeff King [Wed, 2 Aug 2017 22:24:51 +0000 (18:24 -0400)]
t6018: flesh out empty input/output rev-list tests

In 751a2ac6e (rev-list --exclude: tests, 2013-11-01), we
added a few tests for handling "empty" inputs with rev-list
(i.e., where the user gave us some pattern but it turned out
not to queue any objects for traversal), all of which were
marked as failing.

In preparation for working on this area of the code, let's
give each test a more descriptive name. Let's also include
one more case which we should cover: feeding a --glob
pattern that doesn't match anything.

We can also drop the explanatory comment; we'll be
converting these to expect_success in the next few patches,
so the discussion isn't necessary.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agocherry-pick/revert: reject --rerere-autoupdate when continuing
Phillip Wood [Wed, 2 Aug 2017 10:44:20 +0000 (11:44 +0100)]
cherry-pick/revert: reject --rerere-autoupdate when continuing

cherry-pick and revert should not accept --[no-]rerere-autoupdate once
they have started.

Signed-off-by: Phillip Wood <phillip.wood@dunelm.org.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agocherry-pick/revert: remember --rerere-autoupdate
Phillip Wood [Wed, 2 Aug 2017 10:44:19 +0000 (11:44 +0100)]
cherry-pick/revert: remember --rerere-autoupdate

When continuing after conflicts, cherry-pick forgot if the user had specified
'--rerere-autoupdate'.

Redo the cherry-pick rerere tests to check --rerere-autoupdate works
as expected.

Signed-off-by: Phillip Wood <phillip.wood@dunelm.org.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agot3504: use test_commit
Phillip Wood [Wed, 2 Aug 2017 10:44:18 +0000 (11:44 +0100)]
t3504: use test_commit

Using test_commit is simpler than chaining echo && git add &&
test_tick && commit. Also having tags makes it clearer which commit
is being selecting by reset.

Signed-off-by: Phillip Wood <phillip.wood@dunelm.org.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agorebase -i: honor --rerere-autoupdate
Phillip Wood [Wed, 2 Aug 2017 10:44:17 +0000 (11:44 +0100)]
rebase -i: honor --rerere-autoupdate

Interactive rebase was ignoring '--rerere-autoupdate'. Fix this by
reading it appropriate file when restoring the sequencer state for an
interactive rebase and passing '--rerere-autoupdate' to merge and
cherry-pick when rebasing with '--preserve-merges'.

Reported-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Phillip Wood <phillip.wood@dunelm.org.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agorebase: honor --rerere-autoupdate
Phillip Wood [Wed, 2 Aug 2017 10:44:16 +0000 (11:44 +0100)]
rebase: honor --rerere-autoupdate

Rebase accepts '--rerere-autoupdate' as an option but only honors it
if '-m' is also given. Fix it for a non-interactive rebase by passing
on the option to 'git am' and 'git cherry-pick'. Rework the tests so
that they can be used for each rebase flavor and extend them.

Reported-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Phillip Wood <phillip.wood@dunelm.org.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoam: remember --rerere-autoupdate setting
Phillip Wood [Wed, 2 Aug 2017 10:44:15 +0000 (11:44 +0100)]
am: remember --rerere-autoupdate setting

Save the rerere-autoupdate setting so that it is remembered after
stopping for the user to resolve conflicts.

Signed-off-by: Phillip Wood <phillip.wood@dunelm.org.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agogrep: recurse in-process using 'struct repository'
Brandon Williams [Wed, 2 Aug 2017 19:49:23 +0000 (12:49 -0700)]
grep: recurse in-process using 'struct repository'

Convert grep to use 'struct repository' which enables recursing into
submodules to be handled in-process.

Signed-off-by: Brandon Williams <bmwill@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agosubmodule: merge repo_read_gitmodules and gitmodules_config
Brandon Williams [Wed, 2 Aug 2017 19:49:22 +0000 (12:49 -0700)]
submodule: merge repo_read_gitmodules and gitmodules_config

Since 69aba5329 (submodule: add repo_read_gitmodules) there have been
two ways to load a repository's .gitmodules file:
'repo_read_gitmodules()' is used if you have a repository object you are
working with or 'gitmodules_config()' if you are implicitly working with
'the_repository'.  Merge the logic of these two functions to remove
duplicate code.

In addition, 'repo_read_gitmodules()' can segfault by passing in a NULL
pointer to 'git_config_from_file()' if a repository doesn't have a
worktree.  Instead check for the existence of a worktree before
attempting to load the .gitmodules file.

Signed-off-by: Brandon Williams <bmwill@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agosubmodule: check for unmerged .gitmodules outside of config parsing
Brandon Williams [Wed, 2 Aug 2017 19:49:21 +0000 (12:49 -0700)]
submodule: check for unmerged .gitmodules outside of config parsing

Add 'is_gitmodules_unmerged()' function which can be used to determine
in the '.gitmodules' file is unmerged based on the passed in index
instead of relying on a global variable which is set during the
submodule-config parsing.

Signed-off-by: Brandon Williams <bmwill@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agosubmodule: check for unstaged .gitmodules outside of config parsing
Brandon Williams [Wed, 2 Aug 2017 19:49:20 +0000 (12:49 -0700)]
submodule: check for unstaged .gitmodules outside of config parsing

Teach 'is_staging_gitmodules_ok()' to be able to determine in the
'.gitmodules' file has unstaged changes based on the passed in index
instead of relying on a global variable which is set during the
submodule-config parsing.

Signed-off-by: Brandon Williams <bmwill@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agosubmodule: remove fetch.recursesubmodules from submodule-config parsing
Brandon Williams [Wed, 2 Aug 2017 19:49:19 +0000 (12:49 -0700)]
submodule: remove fetch.recursesubmodules from submodule-config parsing

Remove the 'fetch.recursesubmodules' configuration option from the
general submodule-config parsing and instead rely on using
'config_from_gitmodules()' in order to maintain backwards compatibility
with this config being placed in the '.gitmodules' file.

Signed-off-by: Brandon Williams <bmwill@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agosubmodule: remove submodule.fetchjobs from submodule-config parsing
Brandon Williams [Wed, 2 Aug 2017 19:49:18 +0000 (12:49 -0700)]
submodule: remove submodule.fetchjobs from submodule-config parsing

The '.gitmodules' file should only contain information pertinent to
configuring individual submodules (name to path mapping, URL where to
obtain the submodule, etc.) while other configuration like the number of
jobs to use when fetching submodules should be a part of the
repository's config.

Remove the 'submodule.fetchjobs' configuration option from the general
submodule-config parsing and instead rely on using the
'config_from_gitmodules()' in order to maintain backwards compatibility
with this config being placed in the '.gitmodules' file.

Signed-off-by: Brandon Williams <bmwill@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoconfig: add config_from_gitmodules
Brandon Williams [Wed, 2 Aug 2017 19:49:17 +0000 (12:49 -0700)]
config: add config_from_gitmodules

Add 'config_from_gitmodules()' function which can be used by 'fetch' and
'update_clone' in order to maintain backwards compatibility with
configuration being stored in .gitmodules' since a future patch will
remove reading these values in the submodule-config.

This function should not be used anywhere other than in 'fetch' and
'update_clone'.

Signed-off-by: Brandon Williams <bmwill@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agocache.h: add GITMODULES_FILE macro
Brandon Williams [Wed, 2 Aug 2017 19:49:16 +0000 (12:49 -0700)]
cache.h: add GITMODULES_FILE macro

Add a macro to be used when specifying the '.gitmodules' file and
convert any existing hard coded '.gitmodules' file strings to use the
new macro.

Signed-off-by: Brandon Williams <bmwill@google.com>
Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoMerge tag 'l10n-2.14.0-rnd2' of git://github.com/git-l10n/git-po
Junio C Hamano [Wed, 2 Aug 2017 17:52:33 +0000 (10:52 -0700)]
Merge tag 'l10n-2.14.0-rnd2' of git://github.com/git-l10n/git-po

l10n for Git 2.14.0 round 2

* tag 'l10n-2.14.0-rnd2' of git://github.com/git-l10n/git-po:
  l10n: zh_CN: review for git v2.14.0 l10n
  l10n: ko.po: Update Korean translation
  l10n: zh_CN: for git v2.14.0 l10n round 2
  l10n: de.po: various fixes in German translation
  l10n: ru.po: update Russian translation
  l10n: fr.po v2.14.0 rnd 2
  l10n: fr.po Fix some french typos
  l10n: fr.po Fix typo
  l10n: fr.po Fix some translations
  l10n: de.po: update German translation
  l10n: vi.po (3213t): Updated 9 new strings
  l10n: Update Catalan translation
  l10n: bg.po: Updated Bulgarian translation (3213t)

3 years agol10n: zh_CN: review for git v2.14.0 l10n
Jiang Xin [Wed, 2 Aug 2017 00:02:37 +0000 (08:02 +0800)]
l10n: zh_CN: review for git v2.14.0 l10n

Reviewed-by: 依云 <lilydjwg@gmail.com>
Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
3 years agoGit 2.13.5 v2.13.5
Junio C Hamano [Tue, 1 Aug 2017 19:30:00 +0000 (12:30 -0700)]
Git 2.13.5

Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoMerge tag 'v2.12.4' into maint
Junio C Hamano [Tue, 1 Aug 2017 19:27:31 +0000 (12:27 -0700)]
Merge tag 'v2.12.4' into maint

3 years agoSync with v2.13.4
Junio C Hamano [Tue, 1 Aug 2017 18:46:51 +0000 (11:46 -0700)]
Sync with v2.13.4

3 years agoGit 2.13.4 v2.13.4
Junio C Hamano [Tue, 1 Aug 2017 18:45:17 +0000 (11:45 -0700)]
Git 2.13.4

Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agol10n: ko.po: Update Korean translation
Changwoo Ryu [Tue, 1 Aug 2017 03:32:00 +0000 (12:32 +0900)]
l10n: ko.po: Update Korean translation

Signed-off-by: Changwoo Ryu <cwryu@debian.org>
3 years agol10n: zh_CN: for git v2.14.0 l10n round 2
Jiang Xin [Sun, 11 Jun 2017 03:28:31 +0000 (11:28 +0800)]
l10n: zh_CN: for git v2.14.0 l10n round 2

Translate new l10n messages for git 2.14.0, and update translations on
"stash".

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
3 years agoSync with maint
Junio C Hamano [Mon, 31 Jul 2017 20:52:53 +0000 (13:52 -0700)]
Sync with maint

* maint:
  Preparation for 2.13.4 continues

3 years agoPreparation for 2.13.4 continues
Junio C Hamano [Mon, 31 Jul 2017 20:52:40 +0000 (13:52 -0700)]
Preparation for 2.13.4 continues

Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoMerge branch 'ks/doc-fixes' into maint
Junio C Hamano [Mon, 31 Jul 2017 20:51:06 +0000 (13:51 -0700)]
Merge branch 'ks/doc-fixes' into maint

Doc clean-up.

* ks/doc-fixes:
  doc: reformat the paragraph containing the 'cut-line'
  doc: camelCase the i18n config variables to improve readability

3 years agoMerge branch 'jk/test-copy-bytes-fix' into maint
Junio C Hamano [Mon, 31 Jul 2017 20:51:05 +0000 (13:51 -0700)]
Merge branch 'jk/test-copy-bytes-fix' into maint

A test fix.

* jk/test-copy-bytes-fix:
  t: handle EOF in test_copy_bytes()

3 years agoMerge branch 'pw/unquote-path-in-git-pm' into maint
Junio C Hamano [Mon, 31 Jul 2017 20:51:05 +0000 (13:51 -0700)]
Merge branch 'pw/unquote-path-in-git-pm' into maint

Code refactoring.

* pw/unquote-path-in-git-pm:
  t9700: add tests for Git::unquote_path()
  Git::unquote_path(): throw an exception on bad path
  Git::unquote_path(): handle '\a'
  add -i: move unquote_path() to Git.pm

3 years agoMerge branch 'jk/gc-pre-detach-under-hook' into maint
Junio C Hamano [Mon, 31 Jul 2017 20:51:05 +0000 (13:51 -0700)]
Merge branch 'jk/gc-pre-detach-under-hook' into maint

We run an early part of "git gc" that deals with refs before
daemonising (and not under lock) even when running a background
auto-gc, which caused multiple gc processes attempting to run the
early part at the same time.  This is now prevented by running the
early part also under the GC lock.

* jk/gc-pre-detach-under-hook:
  gc: run pre-detach operations under lock

3 years agoMerge branch 'jn/hooks-pre-rebase-sample-fix' into maint
Junio C Hamano [Mon, 31 Jul 2017 20:51:05 +0000 (13:51 -0700)]
Merge branch 'jn/hooks-pre-rebase-sample-fix' into maint

Code clean-up, that makes us in sync with Debian by one patch.

* jn/hooks-pre-rebase-sample-fix:
  pre-rebase hook: capture documentation in a <<here document

3 years agoMerge branch 'rs/progress-overall-throughput-at-the-end' into maint
Junio C Hamano [Mon, 31 Jul 2017 20:51:04 +0000 (13:51 -0700)]
Merge branch 'rs/progress-overall-throughput-at-the-end' into maint

The progress meter did not give a useful output when we haven't had
0.5 seconds to measure the throughput during the interval.  Instead
show the overall throughput rate at the end, which is a much more
useful number.

* rs/progress-overall-throughput-at-the-end:
  progress: show overall rate in last update

3 years agoMerge branch 'tb/push-to-cygwin-unc-path' into maint
Junio C Hamano [Mon, 31 Jul 2017 20:51:04 +0000 (13:51 -0700)]
Merge branch 'tb/push-to-cygwin-unc-path' into maint

On Cygwin, similar to Windows, "git push //server/share/repository"
ought to mean a repository on a network share that can be accessed
locally, but this did not work correctly due to stripping the double
slashes at the beginning.

This may need to be heavily tested before it gets unleashed to the
wild, as the change is at a fairly low-level code and would affect
not just the code to decide if the push destination is local.  There
may be unexpected fallouts in the path normalization.

* tb/push-to-cygwin-unc-path:
  cygwin: allow pushing to UNC paths

3 years agoMerge branch 'rs/apply-avoid-over-reading' into maint
Junio C Hamano [Mon, 31 Jul 2017 20:51:04 +0000 (13:51 -0700)]
Merge branch 'rs/apply-avoid-over-reading' into maint

Code cleanup.

* rs/apply-avoid-over-reading:
  apply: use strcmp(3) for comparing strings in gitdiff_verify_name()
  apply: use starts_with() in gitdiff_verify_name()

3 years agoMerge branch 'js/blame-lib'
Junio C Hamano [Mon, 31 Jul 2017 20:05:15 +0000 (13:05 -0700)]
Merge branch 'js/blame-lib'

A hotfix to a topic already in 'master'.

* js/blame-lib:
  blame: fix memory corruption scrambling revision name in error message

3 years agodiff-options doc: grammar fix
Anthony Sottile [Mon, 31 Jul 2017 14:00:31 +0000 (07:00 -0700)]
diff-options doc: grammar fix

Signed-off-by: Anthony Sottile <asottile@umich.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoGit 2.12.4 v2.12.4
Junio C Hamano [Sun, 30 Jul 2017 22:06:06 +0000 (15:06 -0700)]
Git 2.12.4

Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoMerge tag 'v2.11.3' into maint-2.12
Junio C Hamano [Sun, 30 Jul 2017 22:04:22 +0000 (15:04 -0700)]
Merge tag 'v2.11.3' into maint-2.12

Git 2.11.3

3 years agoMerge branch 'jk/lib-proto-disable-cleanup' into maint-2.12
Junio C Hamano [Sun, 30 Jul 2017 22:03:21 +0000 (15:03 -0700)]
Merge branch 'jk/lib-proto-disable-cleanup' into maint-2.12

3 years agoGit 2.11.3 v2.11.3
Junio C Hamano [Sun, 30 Jul 2017 22:02:37 +0000 (15:02 -0700)]
Git 2.11.3

Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoMerge tag 'v2.10.4' into maint-2.11
Junio C Hamano [Sun, 30 Jul 2017 22:01:31 +0000 (15:01 -0700)]
Merge tag 'v2.10.4' into maint-2.11

Git 2.10.4

3 years agoGit 2.10.4 v2.10.4
Junio C Hamano [Sun, 30 Jul 2017 22:00:04 +0000 (15:00 -0700)]
Git 2.10.4

Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoMerge tag 'v2.9.5' into maint-2.10
Junio C Hamano [Sun, 30 Jul 2017 21:57:33 +0000 (14:57 -0700)]
Merge tag 'v2.9.5' into maint-2.10

Git 2.9.5

3 years agoGit 2.9.5 v2.9.5
Junio C Hamano [Sun, 30 Jul 2017 21:53:25 +0000 (14:53 -0700)]
Git 2.9.5

Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoMerge tag 'v2.8.6' into maint-2.9
Junio C Hamano [Sun, 30 Jul 2017 21:52:14 +0000 (14:52 -0700)]
Merge tag 'v2.8.6' into maint-2.9

Git 2.8.6

3 years agoGit 2.8.6 v2.8.6
Junio C Hamano [Sun, 30 Jul 2017 21:49:08 +0000 (14:49 -0700)]
Git 2.8.6

Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoMerge tag 'v2.7.6' into maint-2.8
Junio C Hamano [Sun, 30 Jul 2017 21:46:43 +0000 (14:46 -0700)]
Merge tag 'v2.7.6' into maint-2.8

Git 2.7.6

3 years agoGit 2.7.6 v2.7.6
Junio C Hamano [Sun, 30 Jul 2017 21:45:13 +0000 (14:45 -0700)]
Git 2.7.6

Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agol10n: de.po: various fixes in German translation
Hartmut Henkel [Thu, 27 Jul 2017 17:24:09 +0000 (19:24 +0200)]
l10n: de.po: various fixes in German translation

Signed-off-by: Hartmut Henkel <henkel@vh-s.de>
Helped-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Acked-by: Matthias Rüster <matthias.ruester@gmail.com>
3 years agoMerge branch 'russian-l10n' of https://github.com/DJm00n/git-po-ru
Jiang Xin [Sun, 30 Jul 2017 14:47:47 +0000 (22:47 +0800)]
Merge branch 'russian-l10n' of https://github.com/DJm00n/git-po-ru

* 'russian-l10n' of https://github.com/DJm00n/git-po-ru:
  l10n: ru.po: update Russian translation

3 years agol10n: ru.po: update Russian translation
Dimitriy Ryazantcev [Sun, 30 Jul 2017 09:35:40 +0000 (12:35 +0300)]
l10n: ru.po: update Russian translation

Signed-off-by: Dimitriy Ryazantcev <dimitriy.ryazantcev@gmail.com>
3 years agoMerge branch 'jk/ssh-funny-url' into maint-2.7
Junio C Hamano [Fri, 28 Jul 2017 23:11:54 +0000 (16:11 -0700)]
Merge branch 'jk/ssh-funny-url' into maint-2.7

3 years agoconnect: reject paths that look like command line options
Jeff King [Fri, 28 Jul 2017 19:28:55 +0000 (15:28 -0400)]
connect: reject paths that look like command line options

If we get a repo path like "-repo.git", we may try to invoke
"git-upload-pack -repo.git". This is going to fail, since
upload-pack will interpret it as a set of bogus options. But
let's reject this before we even run the sub-program, since
we would not want to allow any mischief with repo names that
actually are real command-line options.

You can still ask for such a path via git-daemon, but there's no
security problem there, because git-daemon enters the repo itself
and then passes "."  on the command line.

Signed-off-by: Jeff King <peff@peff.net>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoconnect: reject dashed arguments for proxy commands
Jeff King [Fri, 28 Jul 2017 19:26:50 +0000 (15:26 -0400)]
connect: reject dashed arguments for proxy commands

If you have a GIT_PROXY_COMMAND configured, we will run it
with the host/port on the command-line. If a URL contains a
mischievous host like "--foo", we don't know how the proxy
command may handle it. It's likely to break, but it may also
do something dangerous and unwanted (technically it could
even do something useful, but that seems unlikely).

We should err on the side of caution and reject this before
we even run the command.

The hostname check matches the one we do in a similar
circumstance for ssh. The port check is not present for ssh,
but there it's not necessary because the syntax is "-p
<port>", and there's no ambiguity on the parsing side.

It's not clear whether you can actually get a negative port
to the proxy here or not. Doing:

  git fetch git://remote:-1234/repo.git

keeps the "-1234" as part of the hostname, with the default
port of 9418. But it's a good idea to keep this check close
to the point of running the command to make it clear that
there's no way to circumvent it (and at worst it serves as a
belt-and-suspenders check).

Signed-off-by: Jeff King <peff@peff.net>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoconnect: factor out "looks like command line option" check
Jeff King [Fri, 28 Jul 2017 19:25:45 +0000 (15:25 -0400)]
connect: factor out "looks like command line option" check

We reject hostnames that start with a dash because they may
be confused for command-line options. Let's factor out that
notion into a helper function, as we'll use it in more
places. And while it's simple now, it's not clear if some
systems might need more complex logic to handle all cases.

Signed-off-by: Jeff King <peff@peff.net>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agot5813: add test for hostname starting with dash
Jeff King [Fri, 28 Jul 2017 19:23:32 +0000 (15:23 -0400)]
t5813: add test for hostname starting with dash

Per the explanation in the previous patch, this should be
(and is) rejected.

Signed-off-by: Jeff King <peff@peff.net>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoconnect: reject ssh hostname that begins with a dash
Junio C Hamano [Wed, 26 Jul 2017 17:24:20 +0000 (10:24 -0700)]
connect: reject ssh hostname that begins with a dash

When commands like "git fetch" talk with ssh://$rest_of_URL/, the
code splits $rest_of_URL into components like host, port, etc., and
then spawns the underlying "ssh" program by formulating argv[] array
that has:

 - the path to ssh command taken from GIT_SSH_COMMAND, etc.

 - dashed options like '-batch' (for Tortoise), '-p <port>' as
   needed.

 - ssh_host, which is supposed to be the hostname parsed out of
   $rest_of_URL.

 - then the command to be run on the other side, e.g. git
   upload-pack.

If the ssh_host ends up getting '-<anything>', the argv[] that is
used to spawn the command becomes something like:

    { "ssh", "-p", "22", "-<anything>", "command", "to", "run", NULL }

which obviously is bogus, but depending on the actual value of
"<anything>", will make "ssh" parse and use it as an option.

Prevent this by forbidding ssh_host that begins with a "-".

Noticed-by: Joern Schneeweisz of Recurity Labs
Reported-by: Brian at GitLab
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Reviewed-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agot/lib-proto-disable: restore protocol.allow after config tests
Jeff King [Fri, 28 Jul 2017 21:47:48 +0000 (17:47 -0400)]
t/lib-proto-disable: restore protocol.allow after config tests

The tests for protocol.allow actually set that variable in
the on-disk config, run a series of tests, and then never
clean up after themselves. This means that whatever tests we
run after have protocol.allow=never, which may influence
their results.

In most cases we either exit after running these tests, or
do another round of test_proto(). In the latter case, this happens to
work because:

  1. Tests of the GIT_ALLOW_PROTOCOL environment variable
     override the config.

  2. Tests of the specific config "protocol.foo.allow"
     override the protocol.allow config.

  3. The next round of protocol.allow tests start off by
     setting the config to a known value.

However, it's a land-mine waiting to trap somebody adding
new tests to one of the t581x test scripts. Let's make sure
we clean up after ourselves.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agotests: ensure fsck fails on corrupt packfiles
Jonathan Tan [Fri, 28 Jul 2017 20:08:02 +0000 (13:08 -0700)]
tests: ensure fsck fails on corrupt packfiles

t1450-fsck.sh does not have a test that checks fsck's behavior when a
packfile is invalid. It does have a test for when an object in a
packfile is invalid, but in that test, the packfile itself is valid.

Add such a test.

Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agodoc: remove unsupported parameter from patch-id
Andreas Heiduk [Thu, 27 Jul 2017 22:46:16 +0000 (00:46 +0200)]
doc: remove unsupported parameter from patch-id

The patch is read from standard input and not from a parameter.

Signed-off-by: Andreas Heiduk <asheiduk@gmail.com>
Reviewed-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agocredential-cache: interpret an ECONNRESET as an EOF
Ramsay Jones [Thu, 27 Jul 2017 01:08:40 +0000 (02:08 +0100)]
credential-cache: interpret an ECONNRESET as an EOF

Since commit 612c49e94d ("credential-cache: add tests for XDG
functionality", 17-03-2017), the cygwin build has been failing all the
new tests added by that commit. In particular, the 'git credential-cache
exit' command, as part of the test cleanup code, has been die-ing with
the message:

    fatal: read error from cache daemon: Connection reset by peer

As this git command is part of an && chain in a 'test_when_finished'
call, the remaining test cleanup is not happening, so practically all
remaining tests fail due to the unexpected presence of various socket
files and directories.

A simple means of getting the tests to pass, is to simply ignore the
failure of 'git credential-cache exit' command and make sure all test
cleanup is done. For example, the diff for test #12 would look like:

    diff --git a/t/t0301-credential-cache.sh b/t/t0301-credential-cache.sh
    index fd92533ac..87e5001bb 100755
    --- a/t/t0301-credential-cache.sh
    +++ b/t/t0301-credential-cache.sh
    @@ -17,7 +17,7 @@ helper_test cache

     test_expect_success 'socket defaults to ~/.cache/git/credential/socket' '
            test_when_finished "
    -               git credential-cache exit &&
    +               (git credential-cache exit || :) &&
                    rmdir -p .cache/git/credential/
            " &&
            test_path_is_missing "$HOME/.git-credential-cache" &&

... and so on for all remaining tests. While this does indeed make all
tests pass, it is not really a solution.

As an aside, while looking to debug this issue, I added the '--debug'
option to the invocation of the 'git-credential-cache--daemon' child
process (see the spawn_daemon() function). This not only fixed the tests,
but also stopped git-credential-cache exiting with a failure. Since the
only effect of passing '--debug' was to suppress the redirection of stderr
to the bit-bucket (/dev/null), I have no idea why this seems to fix the
protocol interaction between git and git-credential-cache--daemon. (I
did think that maybe it was a timing issue, so I tried sleeping before
reading from the daemon on Linux, but that only slowed down the tests!)

All descriptions of the "Connection reset by peer" error, that I could
find, say that the peer had destroyed the connection before the client
attempted to perform I/O on the connection. Since the daemon does not
respond to an "exit" message from the client, it just closes the socket
and deletes the socket file (via the atexit handler), it seems that the
expected result is for the client to receive an EOF.  Indeed, this is
exactly what seems to be happening on Linux. Also a comment in
credential-cache--daemon.c reads:

    else if (!strcmp(action.buf, "exit")) {
            /*
             * It's important that we clean up our socket first, and then
             * signal the client only once we have finished the cleanup.
             * Calling exit() directly does this, because we clean up in
             * our atexit() handler, and then signal the client when our
             * process actually ends, which closes the socket and gives
             * them EOF.
             */
            exit(0);
    }

On cygwin this is not the case, at least when not passing --debug to the
daemon, and the read following the "exit" gets an error with errno set
to ECONNRESET.

In order to suppress the fatal exit in this case, check the read error
for an ECONNRESET and return as if no data was read from the daemon.
This effectively converts an ECONNRESET into an EOF.

Signed-off-by: Ramsay Jones <ramsay@ramsayjones.plus.com>
Reviewed-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agopacked_ref_store: handle a packed-refs file that is a symlink
Michael Haggerty [Wed, 26 Jul 2017 23:39:42 +0000 (16:39 -0700)]
packed_ref_store: handle a packed-refs file that is a symlink

One of the tricks that `contrib/workdir/git-new-workdir` plays is to
making `packed-refs` in the new workdir a symlink to the `packed-refs`
file in the original repository. Before
42dfa7ecef ("commit_packed_refs(): use a staging file separate from
the lockfile", 2017-06-23), a lockfile was used as the staging file,
and because the `LOCK_NO_DEREF` was not used, the pointed-to file was
locked and modified.

But after that commit, the staging file was created using a tempfile,
with the end result that rewriting the `packed-refs` file in the
workdir overwrote the symlink rather than the original `packed-refs`
file.

Change `commit_packed_refs()` to use `get_locked_file_path()` to find
the path of the file that it should overwrite. Since that path was
properly resolved when the lockfile was created, this restores the
pre-42dfa7ecef behavior.

Also add a test case to document this use case and prevent a
regression like this from recurring.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agogit-contacts: also recognise "Reported-by:"
Eric Blake [Fri, 21 Jul 2017 14:15:30 +0000 (09:15 -0500)]
git-contacts: also recognise "Reported-by:"

It's nice to cc someone that reported a bug, in order to let them
know that a fix is being considered, and possibly even get their
help in reviewing/testing the patch.

Signed-off-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoMerge branch 'master' of https://github.com/ralfth/git-po-de
Jiang Xin [Thu, 27 Jul 2017 15:12:11 +0000 (23:12 +0800)]
Merge branch 'master' of https://github.com/ralfth/git-po-de

* 'master' of https://github.com/ralfth/git-po-de:
  l10n: de.po: update German translation

3 years agoMerge branch 'fr_l10n_v2.14.0rnd2' of git://github.com/jnavila/git
Jiang Xin [Thu, 27 Jul 2017 15:10:13 +0000 (23:10 +0800)]
Merge branch 'fr_l10n_v2.14.0rnd2' of git://github.com/jnavila/git

* 'fr_l10n_v2.14.0rnd2' of git://github.com/jnavila/git:
  l10n: fr.po v2.14.0 rnd 2
  l10n: fr.po Fix some french typos
  l10n: fr.po Fix typo
  l10n: fr.po Fix some translations

3 years agol10n: fr.po v2.14.0 rnd 2
Jean-Noel Avila [Wed, 26 Jul 2017 13:48:29 +0000 (15:48 +0200)]
l10n: fr.po v2.14.0 rnd 2

Signed-off-by: Jean-Noel Avila <jean-noel.avila@scantech.fr>
3 years agol10n: fr.po Fix some french typos
Sylvestre Ledru [Thu, 22 Jun 2017 09:22:47 +0000 (11:22 +0200)]
l10n: fr.po Fix some french typos

Signed-off-by: Sylvestre Ledru <sylvestre@debian.org>
3 years agol10n: fr.po Fix typo
Louis [Thu, 6 Jul 2017 20:21:14 +0000 (22:21 +0200)]
l10n: fr.po Fix typo

Signed-off-by: Louis <spalax@gresille.org>
3 years agol10n: fr.po Fix some translations
Hugues Peccatte [Wed, 17 May 2017 20:26:19 +0000 (22:26 +0200)]
l10n: fr.po Fix some translations

Signed-off-by: Hugues Peccatte <hugues.peccatte@aareon.fr>
Signed-off-by: Jean-Noel Avila <jn.avila@free.fr>
3 years agocontrib/rerere-train: optionally overwrite existing resolutions
Raman Gupta [Wed, 26 Jul 2017 19:08:38 +0000 (15:08 -0400)]
contrib/rerere-train: optionally overwrite existing resolutions

Provide the user an option to overwrite existing resolutions using an
`--overwrite` flag. This might be used, for example, if the user knows
that they already have an entry in their rerere cache for a conflict,
but wish to drop it and retrain based on the merge commit(s) passed to
the rerere-train script.

Signed-off-by: Raman Gupta <rocketraman@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agot8008: rely on rev-parse'd HEAD instead of sha1 value
Stefan Beller [Wed, 26 Jul 2017 19:06:31 +0000 (12:06 -0700)]
t8008: rely on rev-parse'd HEAD instead of sha1 value

Remove hard coded sha1 values, obtain the values using
'git rev-parse HEAD' which should be future proof regardless
of the hash function used.

Additionally future-proof the test by hard coding the
abbreviation length of the hash.

Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agosub-process: refactor handshake to common function
Jonathan Tan [Wed, 26 Jul 2017 18:17:29 +0000 (11:17 -0700)]
sub-process: refactor handshake to common function

Refactor, into a common function, the version and capability negotiation
done when invoking a long-running process as a clean or smudge filter.
This will be useful for other Git code that needs to interact similarly
with a long-running process.

As you can see in the change to t0021, this commit changes the error
message reported when the long-running process does not introduce itself
with the expected "server"-terminated line. Originally, the error
message reports that the filter "does not support filter protocol
version 2", differentiating between the old single-file filter protocol
and the new multi-file filter protocol - I have updated it to something
more generic and useful.

Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoDocumentation: migrate sub-process docs to header
Jonathan Tan [Wed, 26 Jul 2017 18:17:28 +0000 (11:17 -0700)]
Documentation: migrate sub-process docs to header

Move the documentation for the sub-process API from a separate txt file
to its header file.

Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoMerge branch 'ls/filter-process-delayed' into jt/subprocess-handshake
Junio C Hamano [Wed, 26 Jul 2017 19:56:19 +0000 (12:56 -0700)]
Merge branch 'ls/filter-process-delayed' into jt/subprocess-handshake

* ls/filter-process-delayed:
  convert: add "status=delayed" to filter process protocol
  convert: refactor capabilities negotiation
  convert: move multiple file filter error handling to separate function
  convert: put the flags field before the flag itself for consistent style
  t0021: write "OUT <size>" only on success
  t0021: make debug log file name configurable
  t0021: keep filter log files on comparison

3 years agofsck: cleanup unused variable
Jonathan Tan [Wed, 26 Jul 2017 01:34:56 +0000 (18:34 -0700)]
fsck: cleanup unused variable

Remove the unused variable "heads" from cmd_fsck().

This variable was made unused in commit c3271a0 ("fsck: do not fallback
"git fsck <bogus>" to "git fsck"", 2017-01-17).

Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
Reviewed-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agol10n: de.po: update German translation
Ralf Thielow [Fri, 21 Jul 2017 16:59:08 +0000 (18:59 +0200)]
l10n: de.po: update German translation

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
3 years agodoc: add missing values "none" and "default" for diff.wsErrorHighlight
Andreas Heiduk [Tue, 25 Jul 2017 20:53:15 +0000 (22:53 +0200)]
doc: add missing values "none" and "default" for diff.wsErrorHighlight

The values have eluded documentation so far. While at it streamline
the wording by grouping relevant parts together.

Signed-off-by: Andreas Heiduk <asheiduk@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoMerge branch 'js/msgfmt-on-windows' of ../git-gui into js/git-gui-msgfmt-on-windows
Junio C Hamano [Tue, 25 Jul 2017 20:42:41 +0000 (13:42 -0700)]
Merge branch 'js/msgfmt-on-windows' of ../git-gui into js/git-gui-msgfmt-on-windows

* 'js/msgfmt-on-windows' of ../git-gui:
  git-gui (MinGW): make use of MSys2's msgfmt
  git gui: allow for a long recentrepo list
  git gui: de-dup selected repo from recentrepo history
  git gui: cope with duplicates in _get_recentrepo
  git-gui: remove duplicate entries from .gitconfig's gui.recentrepo

3 years agogit-gui (MinGW): make use of MSys2's msgfmt
Johannes Schindelin [Tue, 25 Jul 2017 08:35:57 +0000 (10:35 +0200)]
git-gui (MinGW): make use of MSys2's msgfmt

When Git for Windows was still based on MSys1, we had no gettext, ergo
no msgfmt, either. Therefore, we introduced a small and simple Tcl
script to perform the same task.

However, with MSys2, we no longer need that because we have a proper
msgfmt executable. Plus, the po2msg.sh script somehow manages to hang
when run in parallel in Git for Windows' SDK (symptom: the Continuous
Testing tasks timing out).

Two reasons to use real msgfmt.exe instead.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agofmt-merge-msg: fix coding style
Dimitrios Christidis [Tue, 25 Jul 2017 13:06:06 +0000 (15:06 +0200)]
fmt-merge-msg: fix coding style

Align argument list and place opening brace on its own line.

Signed-off-by: Dimitrios Christidis <dimitrios@christidis.me>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoMerge branch 'master' of https://github.com/Softcatala/git-po
Jiang Xin [Tue, 25 Jul 2017 16:13:54 +0000 (00:13 +0800)]
Merge branch 'master' of https://github.com/Softcatala/git-po

* 'master' of https://github.com/Softcatala/git-po:
  l10n: Update Catalan translation

3 years agoMerge branch 'master' of git://github.com/alshopov/git-po
Jiang Xin [Tue, 25 Jul 2017 16:13:05 +0000 (00:13 +0800)]
Merge branch 'master' of git://github.com/alshopov/git-po

* 'master' of git://github.com/alshopov/git-po:
  l10n: bg.po: Updated Bulgarian translation (3213t)

3 years agol10n: vi.po (3213t): Updated 9 new strings
Tran Ngoc Quan [Tue, 25 Jul 2017 00:09:13 +0000 (07:09 +0700)]
l10n: vi.po (3213t): Updated 9 new strings

Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>
3 years agoGit 2.14-rc1 v2.14.0-rc1
Junio C Hamano [Mon, 24 Jul 2017 21:50:35 +0000 (14:50 -0700)]
Git 2.14-rc1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agorefs: use skip_prefix() in ref_is_hidden()
Christian Couder [Sat, 22 Jul 2017 04:39:12 +0000 (06:39 +0200)]
refs: use skip_prefix() in ref_is_hidden()

This is shorter, makes the logic a bit easier to follow, and is
perhaps a bit faster too.

The logic is to make the final decision only when "subject" is there,
its early part matches "match", and the match is at the slash
boundary (or the whole thing).

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Reviewed-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoblame: fix memory corruption scrambling revision name in error message
SZEDER Gábor [Mon, 24 Jul 2017 21:15:50 +0000 (23:15 +0200)]
blame: fix memory corruption scrambling revision name in error message

When attempting to blame a non-existing path, git should show an error
message like this:

  $ git blame e83c51633 -- nonexisting-file
  fatal: no such path nonexisting-file in e83c51633

Since the recent commit 835c49f7d (blame: rework methods that
determine 'final' commit, 2017-05-24) the revision name is either
missing or some scrambled characters are shown instead.  The reason is
that the revision name must be duplicated, because it is invalidated
when the pending objects array is cleared in the meantime, but this
commit dropped the duplication.

Restore the duplication of the revision name in the affected functions
(find_single_final() and find_single_initial()).

Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoMerge https://github.com/git-l10n/git-po
Junio C Hamano [Mon, 24 Jul 2017 21:01:08 +0000 (14:01 -0700)]
Merge https://github.com/git-l10n/git-po

* https://github.com/git-l10n/git-po:
  l10n: git.pot: v2.14.0 round 2 (9 new, 2 removed)
  l10n: sv.po: Update Swedish translation (3206t0f0u)
  l10n: ko.po: Update Korean translation
  l10n: Update Catalan translation
  l10n: bg.po: Updated Bulgarian translation (3206t)
  l10n: vi.po(3206t): Update Vietnamese translation
  l10n: git.pot: v2.14.0 round 1 (34 new, 23 removed)
  l10n: ru.po: update Russian translation
  l10n: Fixes to Catalan translation

3 years agol10n: Update Catalan translation
Jordi Mas [Mon, 24 Jul 2017 16:29:29 +0000 (18:29 +0200)]
l10n: Update Catalan translation

Signed-off-by: Jordi Mas <jmas@softcatala.org>
3 years agol10n: bg.po: Updated Bulgarian translation (3213t)
Alexander Shopov [Mon, 24 Jul 2017 15:27:43 +0000 (17:27 +0200)]
l10n: bg.po: Updated Bulgarian translation (3213t)

Signed-off-by: Alexander Shopov <ash@kambanaria.org>
3 years agol10n: git.pot: v2.14.0 round 2 (9 new, 2 removed)
Jiang Xin [Mon, 24 Jul 2017 14:00:44 +0000 (22:00 +0800)]
l10n: git.pot: v2.14.0 round 2 (9 new, 2 removed)

Generate po/git.pot from v2.14.0-rc0-40-g5eada8987e for git v2.14.0 l10n round 2.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
3 years agoMerge branch 'master' of git://github.com/git-l10n/git-po
Jiang Xin [Mon, 24 Jul 2017 13:53:47 +0000 (21:53 +0800)]
Merge branch 'master' of git://github.com/git-l10n/git-po

* 'master' of git://github.com/git-l10n/git-po:
  l10n: sv.po: Update Swedish translation (3206t0f0u)
  l10n: ko.po: Update Korean translation
  l10n: Update Catalan translation
  l10n: bg.po: Updated Bulgarian translation (3206t)
  l10n: vi.po(3206t): Update Vietnamese translation
  l10n: git.pot: v2.14.0 round 1 (34 new, 23 removed)
  l10n: ru.po: update Russian translation
  l10n: Fixes to Catalan translation

3 years agoMerge branch 'master' of git://github.com/nafmo/git-l10n-sv
Jiang Xin [Fri, 21 Jul 2017 22:19:21 +0000 (06:19 +0800)]
Merge branch 'master' of git://github.com/nafmo/git-l10n-sv

* 'master' of git://github.com/nafmo/git-l10n-sv:
  l10n: sv.po: Update Swedish translation (3206t0f0u)

3 years agoSync with maint
Junio C Hamano [Fri, 21 Jul 2017 22:13:25 +0000 (15:13 -0700)]
Sync with maint

* maint:
  fixes from 'master' for 2.13.4

3 years agofixes from 'master' for 2.13.4
Junio C Hamano [Fri, 21 Jul 2017 22:06:09 +0000 (15:06 -0700)]
fixes from 'master' for 2.13.4

Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoMerge branch 'ew/fd-cloexec-fix' into maint
Junio C Hamano [Fri, 21 Jul 2017 22:03:40 +0000 (15:03 -0700)]
Merge branch 'ew/fd-cloexec-fix' into maint

Portability/fallback fix.

* ew/fd-cloexec-fix:
  set FD_CLOEXEC properly when O_CLOEXEC is not supported

3 years agoMerge branch 'ks/fix-rebase-doc-picture' into maint
Junio C Hamano [Fri, 21 Jul 2017 22:03:39 +0000 (15:03 -0700)]
Merge branch 'ks/fix-rebase-doc-picture' into maint

Doc update.

* ks/fix-rebase-doc-picture:
  doc: correct a mistake in an illustration

3 years agoMerge branch 'js/alias-case-sensitivity' into maint
Junio C Hamano [Fri, 21 Jul 2017 22:03:38 +0000 (15:03 -0700)]
Merge branch 'js/alias-case-sensitivity' into maint

A recent update broke an alias that contained an uppercase letter.

* js/alias-case-sensitivity:
  alias: compare alias name *case-insensitively*
  t1300: demonstrate that CamelCased aliases regressed