mirror of
https://github.com/git/git.git
synced 2026-08-07 16:42:02 +00:00
for-each-repo: test outside of repo context
The 'git for-each-repo' tool is frequently run outside of a repo context in the real world. For example, it powers background maintenance. Despite this typical case, we have not been testing it without a local repository. Update t0068 to stop creating a test repo and to use global config everywhere. This has some subtle changes to test across the file. This was noticed because an earlier attempt to remove the_repository from builtin/for-each-repo.c did not catch a segmentation fault since the passed 'repo' is NULL. This use of the_repository will need to stay until we have a better way to handle config queries outside of a repo context. Similar use still exists in builtin/config.c for the same reason. Signed-off-by: Derrick Stolee <stolee@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
67ad42147a
commit
c5e62e1aa0
@@ -2,6 +2,9 @@
|
||||
|
||||
test_description='git for-each-repo builtin'
|
||||
|
||||
# We need to test running 'git for-each-repo' outside of a repo context.
|
||||
TEST_NO_CREATE_REPO=1
|
||||
|
||||
. ./test-lib.sh
|
||||
|
||||
test_expect_success 'run based on configured value' '
|
||||
@@ -10,9 +13,10 @@ test_expect_success 'run based on configured value' '
|
||||
git init three &&
|
||||
git init ~/four &&
|
||||
git -C two commit --allow-empty -m "DID NOT RUN" &&
|
||||
git config run.key "$TRASH_DIRECTORY/one" &&
|
||||
git config --add run.key "$TRASH_DIRECTORY/three" &&
|
||||
git config --add run.key "~/four" &&
|
||||
git config --global run.key "$TRASH_DIRECTORY/one" &&
|
||||
git config --global --add run.key "$TRASH_DIRECTORY/three" &&
|
||||
git config --global --add run.key "~/four" &&
|
||||
|
||||
git for-each-repo --config=run.key commit --allow-empty -m "ran" &&
|
||||
git -C one log -1 --pretty=format:%s >message &&
|
||||
grep ran message &&
|
||||
@@ -22,6 +26,7 @@ test_expect_success 'run based on configured value' '
|
||||
grep ran message &&
|
||||
git -C ~/four log -1 --pretty=format:%s >message &&
|
||||
grep ran message &&
|
||||
|
||||
git for-each-repo --config=run.key -- commit --allow-empty -m "ran again" &&
|
||||
git -C one log -1 --pretty=format:%s >message &&
|
||||
grep again message &&
|
||||
@@ -46,7 +51,7 @@ test_expect_success 'error on bad config keys' '
|
||||
'
|
||||
|
||||
test_expect_success 'error on NULL value for config keys' '
|
||||
cat >>.git/config <<-\EOF &&
|
||||
cat >>.gitconfig <<-\EOF &&
|
||||
[empty]
|
||||
key
|
||||
EOF
|
||||
@@ -59,8 +64,8 @@ test_expect_success 'error on NULL value for config keys' '
|
||||
'
|
||||
|
||||
test_expect_success '--keep-going' '
|
||||
git config keep.going non-existing &&
|
||||
git config --add keep.going . &&
|
||||
git config --global keep.going non-existing &&
|
||||
git config --global --add keep.going one &&
|
||||
|
||||
test_must_fail git for-each-repo --config=keep.going \
|
||||
-- branch >out 2>err &&
|
||||
@@ -70,7 +75,7 @@ test_expect_success '--keep-going' '
|
||||
test_must_fail git for-each-repo --config=keep.going --keep-going \
|
||||
-- branch >out 2>err &&
|
||||
test_grep "cannot change to .*non-existing" err &&
|
||||
git branch >expect &&
|
||||
git -C one branch >expect &&
|
||||
test_cmp expect out
|
||||
'
|
||||
|
||||
|
||||
Reference in New Issue
Block a user