提交 91c031df 编写于 作者: J Jonathan Nieder 提交者: Junio C Hamano

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: NJonathan Nieder <jrnieder@gmail.com>
Signed-off-by: NJunio C Hamano <gitster@pobox.com>
上级 95b104c8
#!/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
. ./test-lib.sh
A few rules for repo setup:
#
# 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.
#
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_repo() {
test_repo () {
(
cd "$1" &&
if test -n "$2"; then GIT_DIR="$2" && export GIT_DIR; fi &&
if test -n "$3"; then GIT_WORK_TREE="$3" && export GIT_WORK_TREE; fi &&
if test -n "$2"
then
GIT_DIR="$2" &&
export GIT_DIR
fi &&
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 &&
GIT_TRACE="$(pwd)/trace" git symbolic-ref HEAD >/dev/null &&
grep '^setup: ' trace >result &&
test_cmp expected result
)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册