tests: cosmetic improvements to the repo-setup test
Give an overview in "sh t1510-repo-setup.sh --help" output. Waste some vertical and horizontal space for clearer code. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
95b104c830
commit
91c031df67
@ -1,53 +1,59 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
test_description='Tests of cwd/prefix/worktree/gitdir setup in all cases'
|
test_description="Tests of cwd/prefix/worktree/gitdir setup in all cases
|
||||||
|
|
||||||
|
A few rules for repo setup:
|
||||||
|
|
||||||
|
1. GIT_DIR is relative to user's cwd. --git-dir is equivalent to
|
||||||
|
GIT_DIR.
|
||||||
|
|
||||||
|
2. .git file is relative to parent directory. .git file is basically
|
||||||
|
symlink in disguise. The directory where .git file points to will
|
||||||
|
become new git_dir.
|
||||||
|
|
||||||
|
3. core.worktree is relative to git_dir.
|
||||||
|
|
||||||
|
4. GIT_WORK_TREE is relative to user's cwd. --work-tree is
|
||||||
|
equivalent to GIT_WORK_TREE.
|
||||||
|
|
||||||
|
5. GIT_WORK_TREE/core.worktree is only effective if GIT_DIR is set
|
||||||
|
Uneffective worktree settings should be warned.
|
||||||
|
|
||||||
|
6. Effective GIT_WORK_TREE overrides core.worktree and core.bare
|
||||||
|
|
||||||
|
7. Effective core.worktree conflicts with core.bare
|
||||||
|
|
||||||
|
8. If GIT_DIR is set but neither worktree nor bare setting is given,
|
||||||
|
original cwd becomes worktree.
|
||||||
|
|
||||||
|
9. If .git discovery is done inside a repo, the repo becomes a bare
|
||||||
|
repo. .git discovery is performed if GIT_DIR is not set.
|
||||||
|
|
||||||
|
10. If no worktree is available, cwd remains unchanged, prefix is
|
||||||
|
NULL.
|
||||||
|
|
||||||
|
11. When user's cwd is outside worktree, cwd remains unchanged,
|
||||||
|
prefix is NULL.
|
||||||
|
"
|
||||||
. ./test-lib.sh
|
. ./test-lib.sh
|
||||||
|
|
||||||
#
|
test_repo () {
|
||||||
# A few rules for repo setup:
|
|
||||||
#
|
|
||||||
# 1. GIT_DIR is relative to user's cwd. --git-dir is equivalent to
|
|
||||||
# GIT_DIR.
|
|
||||||
#
|
|
||||||
# 2. .git file is relative to parent directory. .git file is basically
|
|
||||||
# symlink in disguise. The directory where .git file points to will
|
|
||||||
# become new git_dir.
|
|
||||||
#
|
|
||||||
# 3. core.worktree is relative to git_dir.
|
|
||||||
#
|
|
||||||
# 4. GIT_WORK_TREE is relative to user's cwd. --work-tree is
|
|
||||||
# equivalent to GIT_WORK_TREE.
|
|
||||||
#
|
|
||||||
# 5. GIT_WORK_TREE/core.worktree is only effective if GIT_DIR is set
|
|
||||||
# Uneffective worktree settings should be warned.
|
|
||||||
#
|
|
||||||
# 6. Effective GIT_WORK_TREE overrides core.worktree and core.bare
|
|
||||||
#
|
|
||||||
# 7. Effective core.worktree conflicts with core.bare
|
|
||||||
#
|
|
||||||
# 8. If GIT_DIR is set but neither worktree nor bare setting is given,
|
|
||||||
# original cwd becomes worktree.
|
|
||||||
#
|
|
||||||
# 9. If .git discovery is done inside a repo, the repo becomes a bare
|
|
||||||
# repo. .git discovery is performed if GIT_DIR is not set.
|
|
||||||
#
|
|
||||||
# 10. If no worktree is available, cwd remains unchanged, prefix is
|
|
||||||
# NULL.
|
|
||||||
#
|
|
||||||
# 11. When user's cwd is outside worktree, cwd remains unchanged,
|
|
||||||
# prefix is NULL.
|
|
||||||
#
|
|
||||||
|
|
||||||
test_repo() {
|
|
||||||
(
|
(
|
||||||
cd "$1" &&
|
cd "$1" &&
|
||||||
if test -n "$2"; then GIT_DIR="$2" && export GIT_DIR; fi &&
|
if test -n "$2"
|
||||||
if test -n "$3"; then GIT_WORK_TREE="$3" && export GIT_WORK_TREE; fi &&
|
then
|
||||||
rm -f trace &&
|
GIT_DIR="$2" &&
|
||||||
GIT_TRACE="`pwd`/trace" git symbolic-ref HEAD >/dev/null &&
|
export GIT_DIR
|
||||||
grep '^setup: ' trace >result &&
|
fi &&
|
||||||
test_cmp expected result
|
if test -n "$3"
|
||||||
|
then
|
||||||
|
GIT_WORK_TREE="$3" &&
|
||||||
|
export GIT_WORK_TREE
|
||||||
|
fi &&
|
||||||
|
rm -f trace &&
|
||||||
|
GIT_TRACE="$(pwd)/trace" git symbolic-ref HEAD >/dev/null &&
|
||||||
|
grep '^setup: ' trace >result &&
|
||||||
|
test_cmp expected result
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user