Commit Graph

58775 Commits

Author SHA1 Message Date
Denton Liu
b309a97108 reset: extract reset_head() from rebase
Continue the process of lib-ifying the autostash code. In a future
commit, this will be used to implement `--autostash` in other builtins.

This patch is best viewed with `--color-moved`.

Signed-off-by: Denton Liu <liu.denton@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2020-04-10 09:28:02 -07:00
Denton Liu
f213f069fb rebase: generify reset_head()
In the future, we plan on lib-ifying reset_head() so we need it to
be more generic. Make it more generic by making it accept a
`struct repository` argument instead of implicitly using the non-repo
functions. Also, make it accept a `const char *default_reflog_action`
argument so that the default action of "rebase" isn't hardcoded in.

Signed-off-by: Denton Liu <liu.denton@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2020-04-10 09:28:02 -07:00
Denton Liu
86ed00aff4 rebase: use apply_autostash() from sequencer.c
The apply_autostash() function in builtin/rebase.c is similar enough to
the apply_autostash() function in sequencer.c that they are almost
interchangeable, except for the type of arg they accept. Make the
sequencer.c version extern and use it in rebase.

The rebase version was introduced in 6defce2b02 (builtin rebase: support
`--autostash` option, 2018-09-04) as part of the shell to C conversion.
It opted to duplicate the function because, at the time, there was
another in-progress project converting interactive rebase from shell to
C as well and they did not want to clash with them by refactoring
sequencer.c version of apply_autostash(). Since both efforts are long
done, we can freely combine them together now.

Signed-off-by: Denton Liu <liu.denton@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2020-04-10 09:28:02 -07:00
Denton Liu
facca7f06e sequencer: rename stash_sha1 to stash_oid
The preferred terminology is to refer to object identifiers as "OIDs".
Rename the `stash_sha1` variable to `stash_oid` in order to conform to
this.

Signed-off-by: Denton Liu <liu.denton@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2020-04-10 09:28:02 -07:00
Denton Liu
be1bb600da sequencer: make apply_autostash() accept a path
In order to make apply_autostash() more generic for future extraction, make
it accept a `path` argument so that the location from where to read the
reference to the autostash commit can be customized. Remove the `opts`
argument since it was unused before anyway.

Signed-off-by: Denton Liu <liu.denton@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2020-04-10 09:28:02 -07:00
Denton Liu
efcf6cf049 rebase: use read_oneliner()
Since in sequencer.c, read_one() basically duplicates the functionality
of read_oneliner(), reduce code duplication by replacing read_one() with
read_oneliner().

This was done with the following Coccinelle script

	@@
	expression a, b;
	@@
	- read_one(a, b)
	+ !read_oneliner(b, a, READ_ONELINER_WARN_MISSING)

and long lines were manually broken up.

Signed-off-by: Denton Liu <liu.denton@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2020-04-10 09:27:24 -07:00
Denton Liu
c20de8bec6 sequencer: make read_oneliner() extern
The function read_oneliner() is a generally useful util function.
Instead of hiding it as a static function within sequencer.c, extern it
so that it can be reused by others.

This patch is best viewed with --color-moved.

Signed-off-by: Denton Liu <liu.denton@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2020-04-07 16:57:30 -07:00
Denton Liu
bfa50c2c7f sequencer: configurably warn on non-existent files
In the future, we plan on externing read_oneliner(). Future users of
read_oneliner() will want the ability to output warnings in the event
that the `path` doesn't exist. Introduce the
`READ_ONELINER_WARN_MISSING` flag which, if active, would issue a
warning when a file doesn't exist by always executing warning_errno()
in the case where strbuf_read_file() fails.

Signed-off-by: Denton Liu <liu.denton@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2020-04-07 16:57:30 -07:00
Denton Liu
3442c3d11d sequencer: make read_oneliner() accept flags
In a future commit, we will need read_oneliner() to accept flags other
than just `skip_if_empty`. Instead of having an argument for each flag,
teach read_oneliner() to accept the bitfield `flags` instead. For now,
only recognize the `READ_ONELINER_SKIP_IF_EMPTY` flag. More flags will
be added in a future commit.

The result of this is that parallel topics which introduce invocations
of read_oneliner() will still be compatible with this new function
signature since, instead of passing 1 or 0 for `skip_if_empty`, they'll
be passing 1 or 0 to `flags`, which gives equivalent behavior.

Mechanically fix up invocations of read_oneliner() with the following
spatch

	@@
	expression a, b;
	@@
	  read_oneliner(a, b,
	- 1
	+ READ_ONELINER_SKIP_IF_EMPTY
	  )

and manually break up long lines in the result.

Signed-off-by: Denton Liu <liu.denton@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2020-04-07 16:57:30 -07:00
Denton Liu
5b2f6d9cd5 sequencer: make file exists check more efficient
We currently check whether a file exists and return early before reading
the file. Instead of accessing the file twice, always read the file and
check `errno` to see if the file doesn't exist.

Signed-off-by: Denton Liu <liu.denton@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2020-04-07 16:57:30 -07:00
Denton Liu
65c425a2ec sequencer: stop leaking buf
In read_populate_opts(), we call read_oneliner() _after_ calling
strbuf_release(). This means that `buf` is leaked at the end of the
function.

Always clean up the strbuf by going to `done_rebase_i` whether or not
we return an error.

Signed-off-by: Denton Liu <liu.denton@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2020-04-05 14:15:09 -07:00
Denton Liu
fd6852cab2 t7600: use test_write_lines()
In t7600, we were rewriting `printf '%s\n' ...` to create files from
parameters, one per line. However, we already have a function that wraps
this for us: test_write_lines(). Rewrite these instances to use that
function instead of open coding it.

Signed-off-by: Denton Liu <liu.denton@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2020-03-24 14:48:15 -07:00
Denton Liu
805d9eaf5e Makefile: ASCII-sort += lists
There are many += lists in the Makefile and, over time, they have gotten
slightly out of ASCII order. Sort all += lists to bring them back in
order.

ASCII sorting was chosen over strict alphabetical order even though, if
we omit file prefixes, the lists aren't sorted in strictly alphabetical
order (e.g. archive.o comes after archive-zip.o instead of before
archive-tar.o). This is intentional because the purpose of maintaining
the sorted list is to ensure line insertions are deterministic. By using
ASCII ordering, it is more easily mechanically reproducible in the
future, such as by using :sort in Vim.

This patch is best viewed with `--color-moved`.

Signed-off-by: Denton Liu <liu.denton@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2020-03-24 14:48:15 -07:00
Junio C Hamano
274b9cc253 Git 2.26
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2020-03-22 16:50:46 -07:00
Junio C Hamano
55a7568606 Merge branch 'en/rebase-backend'
Test fix.

* en/rebase-backend:
  t3419: prevent failure when run with EXPENSIVE
2020-03-21 13:48:54 -07:00
Junio C Hamano
c452dfa3f8 l10n-2.26.0-rnd2.1
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEET/4dIHc7EQTOoGRdx6TpG3VEeigFAl517OsACgkQx6TpG3VE
 eigLSBAAv4B4qaB2/yI+o9jXu8XympF4uwitPpDUNX7qHOw2or2aPUpft12YOaKW
 qnBZBMRJUrbVJ2DFOMfmCQQnla7D+11QxJlVmpApe2Wtz69OuELIobZW0vqTFtPy
 00ggqBsFEz3WJQF505XdfbZu3TuZQ+hCJ/os6Nb62upCxXs3t8o5Ay9oiDoGsbnK
 Xb2egRslqpCuEJ1fNuDGmepRQSPVKh707pF/SvLnYHECHO4/ywQBCIsp/i86UREc
 m2oGU1j6XlInXaY0N84adHL1MpOGMLm8CQTt4lUfiVbBoeU2flmLUFlJc2pnBBPJ
 Nmp5KO45WQWeo2jDejyTvrUPSZgSfb1gUreSoZwzBfQaUYBKp7H5Y1tIIZbHyVn9
 ItHpDP8XVk8vJOBz43+FUvIHHAgy60pS++zuJBTEqz61A32LLNEgT7pu47TwPirR
 wbO7fbqyaqBHN/aYwmnh5/IoczDbeIelca+dYsenv9jjKdA47r3OVYz7Qq5B4ooB
 7y+pNu+1dGm2RZOzyoI2Ja+JzzWxjR1XSFEvEUp5POa/bLILRbHLd3+g55QEbwCx
 sFAcJ5Kuj1ezgjrqf0Dgqnyo4HkfB5/dY6qT4UwRM5lGjYjXZ7ztIouyy23TuA7H
 43A2CuvGvV/if1Z2UIALuheRHklYG9gcl8TROchHeIGwa6QnyXM=
 =s7gJ
 -----END PGP SIGNATURE-----

Merge tag 'l10n-2.26.0-rnd2.1' of git://github.com/git-l10n/git-po.git

l10n-2.26.0-rnd2.1

* tag 'l10n-2.26.0-rnd2.1' of https://github.com/git-l10n/git-po: (28 commits)
  l10n: tr.po: change file mode to 644
  l10n: de.po: Update German translation for Git 2.26.0
  l10n: de.po: add missing space
  l10n: tr: Fix a couple of ambiguities
  l10n: Update Catalan translation
  l10n: sv.po: Update Swedish translation (4839t0f0u)
  l10n: zh_CN: Revise v2.26.0 translation
  l10n: zh_CN: for git v2.26.0 l10n round 1 and 2
  l10n: vi(4839t): Updated Vietnamese translation for v2.26.0
  l10n: vi: fix translation + grammar
  l10n: zh_TW.po: v2.26.0 round 2 (0 untranslated)
  l10n: zh_TW.po: v2.26.0 round 1 (11 untranslated)
  l10n: it.po: update the Italian translation for Git 2.26.0 round 2
  l10n: es: 2.26.0 round#2
  l10n: bg.po: Updated Bulgarian translation (4839t)
  l10n: tr: v2.26.0 round 2
  l10n: fr : v2.26.0 rnd 2
  l10n: git.pot: v2.26.0 round 2 (7 new, 2 removed)
  l10n: tr: Add glossary for Turkish translations
  l10n: sv.po: Update Swedish translation (4835t0f0u)
  ...
2020-03-21 12:12:28 -07:00
Jiang Xin
1557364fb4 l10n: tr.po: change file mode to 644
Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
2020-03-21 18:26:56 +08:00
brian m. carlson
2da1b05674 t3419: prevent failure when run with EXPENSIVE
This test runs a function which itself runs several assertions.  The
last of these assertions cleans up the .git/rebase-apply directory,
since when run with EXPENSIVE set, the function is invoked a second time
to run the same tests with a larger data set.

However, as of 2ac0d6273f ("rebase: change the default backend from "am"
to "merge"", 2020-02-15), the default backend of rebase has changed, and
cleaning up the rebase-apply directory has no effect: it no longer
exists, since we're using rebase-merge instead.

Since we don't really care which rebase backend is in use, let's just
use the command "git rebase --quit", which will do the right thing
regardless.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2020-03-20 15:25:24 -07:00
Matthias Rüster
1ae3a389c7 l10n: de.po: Update German translation for Git 2.26.0
Signed-off-by: Matthias Rüster <matthias.ruester@gmail.com>
Reviewed-by: Ralf Thielow <ralf.thielow@gmail.com>
Reviewed-by: Phillip Szelat <phillip.szelat@gmail.com>
2020-03-20 12:19:22 +01:00
Ralf Thielow
5804c6ec40 l10n: de.po: add missing space
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
2020-03-20 10:45:37 +01:00
Junio C Hamano
98cedd0233 Merge https://github.com/prati0100/git-gui
* 'master' of https://github.com/prati0100/git-gui:
  git-gui: create a new namespace for chord script evaluation
  git-gui: reduce Tcl version requirement from 8.6 to 8.5
  git-gui--askpass: coerce answers to UTF-8 on Windows
  git-gui: fix error popup when doing blame -> "Show History Context"
  git-gui: add missing close bracket
  git-gui: update German translation
  git-gui: extend translation glossary template with more terms
  git-gui: update pot template and German translation to current source code
2020-03-19 16:06:51 -07:00
Emir Sarı
4914ba4bcf l10n: tr: Fix a couple of ambiguities
Signed-off-by: Emir Sarı <bitigchi@me.com>
2020-03-20 01:36:24 +03:00
Pratyush Yadav
a5728022e0 Merge branch 'py/remove-tcloo'
Reduce the Tcl version requirement to 8.5 to allow git-gui to run on
MacOS distributions like High Sierra. While here, fix a potential
variable name collision.

* py/remove-tcloo:
  git-gui: create a new namespace for chord script evaluation
  git-gui: reduce Tcl version requirement from 8.6 to 8.5
2020-03-19 21:29:19 +05:30
Elijah Newren
7fcb965970 RelNotes/2.26.0: fix various typos
Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2020-03-18 15:42:37 -07:00
Jordi Mas
f0c03bcf95 l10n: Update Catalan translation
Signed-off-by: Jordi Mas <jmas@softcatala.org>
2020-03-18 20:24:20 +01:00
Junio C Hamano
be8661a328 Git 2.25.2
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEE4fA2sf7nIh/HeOzvsLXohpav5ssFAl5xSg0ACgkQsLXohpav
 5suNcw//cAfPWi2SU7zYNfylcBew7r21WQpqRvip+0s5vc5Pgj8tZEsFTDCl4ARR
 0W7yaAoR4te/imLkGnij6tvEmuJMb+McQJYKQA5EqrkigloEy36dCYrDbA/saRa1
 SSXp6P4zwl4iAPYa31AIZImhnI1a3pIzv3aYKEA3ecCG++vPxeW5a7frqIggvMJG
 g1SvCsjEqU6agRCePKjBZ6rbl7OJMnZGt+mfW1ymfCu+37NC5ubC3vSsAcy4SqVA
 KVmwe63NygnxczGvda/J4q2FO/Qb4OyvItdtrHMGwoy1MkldFCebmfkd+HBHHo5f
 Pg5lWcgf91YtEw98DSHRlFbXwMokxac8fiIX+X4m742Nu61BVgHff+EOJNeVuiV3
 xe1ks51BQP6S6IZBXNg0CndmfVls8lbnWomfuYpLPraLRAGHm7eoTJz6/J0FnbVt
 LkDvKG7kyYcqswAlMKcSjQkxdzYg9lJPxM7KOaNF6XmKDnV4KJNBeu+1q456c9OF
 e10tiqQRyXwPPXxJtLcCCiAtb1oua7D9OPmBSYxXvoTeOqq3HtVuOVdQGJXpYvqV
 oGjx738AvFPXnsSybca+gkxAWzC6fDbyIJfqFO3dIIgsHqbyYQPRlrUG+4vPG9wc
 UZdK3XMNQ3K+EPABV0LhbgC0B7dU2n5NmKLNWF4TsZ/If5cySiU=
 =RZCX
 -----END PGP SIGNATURE-----

Sync with Git 2.25.2

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2020-03-17 15:27:15 -07:00
Junio C Hamano
0822e66b5d Git 2.25.2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2020-03-17 15:06:37 -07:00
Beat Bolli
65588b0b2e unicode: update the width tables to Unicode 13.0
Now that Unicode 13.0 has been announced[0], update the character
width tables to the new version.

[0] https://home.unicode.org/announcing-the-unicode-standard-version-13-0/

Signed-off-by: Beat Bolli <dev+git@drbeat.li>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2020-03-17 15:06:37 -07:00
Junio C Hamano
7be274b0ff Merge branch 'js/ci-windows-update' into maint
Updates to the CI settings.

* js/ci-windows-update:
  Azure Pipeline: switch to the latest agent pools
  ci: prevent `perforce` from being quarantined
  t/lib-httpd: avoid using macOS' sed
2020-03-17 15:02:26 -07:00
Junio C Hamano
9a75ecda1b Merge branch 'jk/run-command-formatfix' into maint
Code style cleanup.

* jk/run-command-formatfix:
  run-command.h: fix mis-indented struct member
2020-03-17 15:02:26 -07:00
Junio C Hamano
221887a492 Merge branch 'jk/doc-credential-helper' into maint
Docfix.

* jk/doc-credential-helper:
  doc: move credential helper info into gitcredentials(7)
2020-03-17 15:02:26 -07:00
Junio C Hamano
32fc2c6dd6 Merge branch 'js/mingw-open-in-gdb' into maint
Dev support.

* js/mingw-open-in-gdb:
  mingw: add a helper function to attach GDB to the current process
2020-03-17 15:02:25 -07:00
Junio C Hamano
fe0d2c8ddb Merge branch 'js/test-unc-fetch' into maint
Test updates.

* js/test-unc-fetch:
  t5580: test cloning without file://, test fetching via UNC paths
2020-03-17 15:02:25 -07:00
Junio C Hamano
618db3621a Merge branch 'js/test-write-junit-xml-fix' into maint
Testfix.

* js/test-write-junit-xml-fix:
  tests: fix --write-junit-xml with subshells
2020-03-17 15:02:25 -07:00
Junio C Hamano
50e1b4166f Merge branch 'en/simplify-check-updates-in-unpack-trees' into maint
Code simplification.

* en/simplify-check-updates-in-unpack-trees:
  unpack-trees: exit check_updates() early if updates are not wanted
2020-03-17 15:02:25 -07:00
Junio C Hamano
fda2baffd2 Merge branch 'jc/doc-single-h-is-for-help' into maint
Both "git ls-remote -h" and "git grep -h" give short usage help,
like any other Git subcommand, but it is not unreasonable to expect
that the former would behave the same as "git ls-remote --head"
(there is no other sensible behaviour for the latter).  The
documentation has been updated in an attempt to clarify this.

* jc/doc-single-h-is-for-help:
  Documentation: clarify that `-h` alone stands for `help`
2020-03-17 15:02:24 -07:00
Junio C Hamano
41d910ea6c Merge branch 'hd/show-one-mergetag-fix' into maint
"git show" and others gave an object name in raw format in its
error output, which has been corrected to give it in hex.

* hd/show-one-mergetag-fix:
  show_one_mergetag: print non-parent in hex form.
2020-03-17 15:02:24 -07:00
Junio C Hamano
2d7247af6f Merge branch 'am/mingw-poll-fix' into maint
MinGW's poll() emulation has been improved.

* am/mingw-poll-fix:
  mingw: workaround for hangs when sending STDIN
2020-03-17 15:02:24 -07:00
Junio C Hamano
4e730fcd18 Merge branch 'hi/gpg-use-check-signature' into maint
"git merge signed-tag" while lacking the public key started to say
"No signature", which was utterly wrong.  This regression has been
reverted.

* hi/gpg-use-check-signature:
  Revert "gpg-interface: prefer check_signature() for GPG verification"
2020-03-17 15:02:23 -07:00
Junio C Hamano
76ccbdaf97 Merge branch 'ds/partial-clone-fixes' into maint
Fix for a bug revealed by a recent change to make the protocol v2
the default.

* ds/partial-clone-fixes:
  partial-clone: avoid fetching when looking for objects
  partial-clone: demonstrate bugs in partial fetch
2020-03-17 15:02:23 -07:00
Junio C Hamano
569b89842d Merge branch 'en/t3433-rebase-stat-dirty-failure' into maint
The merge-recursive machinery failed to refresh the cache entry for
a merge result in a couple of places, resulting in an unnecessary
merge failure, which has been fixed.

* en/t3433-rebase-stat-dirty-failure:
  merge-recursive: fix the refresh logic in update_file_flags
  t3433: new rebase testcase documenting a stat-dirty-like failure
2020-03-17 15:02:23 -07:00
Junio C Hamano
16a4bf1035 Merge branch 'en/check-ignore' into maint
"git check-ignore" did not work when the given path is explicitly
marked as not ignored with a negative entry in the .gitignore file.

* en/check-ignore:
  check-ignore: fix documentation and implementation to match
2020-03-17 15:02:23 -07:00
Junio C Hamano
3246495a5c Merge branch 'jk/push-option-doc-markup-fix' into maint
Doc markup fix.

* jk/push-option-doc-markup-fix:
  doc/config/push: use longer "--" line for preformatted example
2020-03-17 15:02:22 -07:00
Junio C Hamano
56f97d5896 Merge branch 'jk/doc-diff-parallel' into maint
Update to doc-diff.

* jk/doc-diff-parallel:
  doc-diff: use single-colon rule in rendering Makefile
2020-03-17 15:02:22 -07:00
Junio C Hamano
1a4abcbb3b Merge branch 'jh/notes-fanout-fix' into maint
The code to automatically shrink the fan-out in the notes tree had
an off-by-one bug, which has been killed.

* jh/notes-fanout-fix:
  notes.c: fix off-by-one error when decreasing notes fanout
  t3305: check notes fanout more carefully and robustly
2020-03-17 15:02:22 -07:00
Junio C Hamano
7e84f4608f Merge branch 'jk/index-pack-dupfix' into maint
The index-pack code now diagnoses a bad input packstream that
records the same object twice when it is used as delta base; the
code used to declare a software bug when encountering such an
input, but it is an input error.

* jk/index-pack-dupfix:
  index-pack: downgrade twice-resolved REF_DELTA to die()
2020-03-17 15:02:22 -07:00
Junio C Hamano
fa24bbe864 Merge branch 'js/rebase-i-with-colliding-hash' into maint
"git rebase -i" identifies existing commits in its todo file with
their abbreviated object name, which could become ambigous as it
goes to create new commits, and has a mechanism to avoid ambiguity
in the main part of its execution.  A few other cases however were
not covered by the protection against ambiguity, which has been
corrected.

* js/rebase-i-with-colliding-hash:
  rebase -i: also avoid SHA-1 collisions with missingCommitsCheck
  rebase -i: re-fix short SHA-1 collision
  parse_insn_line(): improve error message when parsing failed
2020-03-17 15:02:21 -07:00
Junio C Hamano
a7a2e12b6e Merge branch 'jk/clang-sanitizer-fixes' into maint
C pedantry ;-) fix.

* jk/clang-sanitizer-fixes:
  obstack: avoid computing offsets from NULL pointer
  xdiff: avoid computing non-zero offset from NULL pointer
  avoid computing zero offsets from NULL pointer
  merge-recursive: use subtraction to flip stage
  merge-recursive: silence -Wxor-used-as-pow warning
2020-03-17 15:02:21 -07:00
Junio C Hamano
93d0892891 Merge branch 'dt/submodule-rm-with-stale-cache' into maint
Running "git rm" on a submodule failed unnecessarily when
.gitmodules is only cache-dirty, which has been corrected.

* dt/submodule-rm-with-stale-cache:
  git rm submodule: succeed if .gitmodules index stat info is zero
2020-03-17 15:02:21 -07:00
Junio C Hamano
dae477777e Merge branch 'pb/recurse-submodule-in-worktree-fix' into maint
The "--recurse-submodules" option of various subcommands did not
work well when run in an alternate worktree, which has been
corrected.

* pb/recurse-submodule-in-worktree-fix:
  submodule.c: use get_git_dir() instead of get_git_common_dir()
  t2405: clarify test descriptions and simplify test
  t2405: use git -C and test_commit -C instead of subshells
  t7410: rename to t2405-worktree-submodule.sh
2020-03-17 15:02:21 -07:00