scalar reconfigure -a: remove stale scalar.repo entries

Every once in a while, a Git for Windows installation fails because the
attempt to reconfigure a Scalar enlistment failed because it was deleted
manually without removing the corresponding entries in the global Git
config.

In f5f0842d0b (scalar: let 'unregister' handle a deleted enlistment
directory gracefully, 2021-12-03), we already taught `scalar delete` to
handle the case of a manually deleted enlistment gracefully. This patch
adds the same graceful handling to `scalar reconfigure --all`.

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

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Taylor Blau <me@ttaylorr.com>
This commit is contained in:
Johannes Schindelin
2022-11-07 18:25:01 +00:00
committed by Taylor Blau
parent 3b08839926
commit c90db53d20
2 changed files with 45 additions and 20 deletions

View File

@@ -166,6 +166,17 @@ test_expect_success 'scalar reconfigure' '
test true = "$(git -C one/src config core.preloadIndex)"
'
test_expect_success '`reconfigure -a` removes stale config entries' '
git init stale/src &&
scalar register stale &&
scalar list >scalar.repos &&
grep stale scalar.repos &&
rm -rf stale &&
scalar reconfigure -a &&
scalar list >scalar.repos &&
! grep stale scalar.repos
'
test_expect_success 'scalar delete without enlistment shows a usage' '
test_expect_code 129 scalar delete
'