summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 9951d3b)
raw | patch | inline | side by side (parent: 9951d3b)
author | Nguyễn Thái Ngọc Duy <pclouds@gmail.com> | |
Fri, 26 Nov 2010 15:32:39 +0000 (22:32 +0700) | ||
committer | Junio C Hamano <gitster@pobox.com> | |
Wed, 22 Dec 2010 22:34:24 +0000 (14:34 -0800) |
This function is the most complex one among the three setup_*
functions because all GIT_DIR, GIT_WORK_TREE, core.worktree and
core.bare are involved.
Because core.worktree is only effective inside
setup_explicit_git_dir() and the extra code in setup_git_directory()
is to handle that. The extra code can now be retired.
Also note that setup_explicit assignment is removed, worktree setting
is no longer decided by get_git_work_tree(). get_git_work_tree() will
be simplified in the next commit.
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
functions because all GIT_DIR, GIT_WORK_TREE, core.worktree and
core.bare are involved.
Because core.worktree is only effective inside
setup_explicit_git_dir() and the extra code in setup_git_directory()
is to handle that. The extra code can now be retired.
Also note that setup_explicit assignment is removed, worktree setting
is no longer decided by get_git_work_tree(). get_git_work_tree() will
be simplified in the next commit.
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
setup.c | patch | blob | history | |
t/t1510-repo-setup.sh | patch | blob | history |
index 3ee9c2eec842900dac6bf9717c1739b111f89893..2e2865cc41628b7c39b35e01ffcee1cb46167c78 100644 (file)
--- a/setup.c
+++ b/setup.c
return inside_work_tree;
}
-/*
- * set_work_tree() is only ever called if you set GIT_DIR explicitly.
- * The old behaviour (which we retain here) is to set the work tree root
- * to the cwd, unless overridden by the config, the command line, or
- * GIT_WORK_TREE.
- */
-static const char *set_work_tree(const char *dir)
-{
- char buffer[PATH_MAX + 1];
-
- if (!getcwd(buffer, sizeof(buffer)))
- die ("Could not get the current working directory");
- git_work_tree_cfg = xstrdup(buffer);
- inside_work_tree = 1;
-
- return NULL;
-}
-
void setup_work_tree(void)
{
const char *work_tree, *git_dir;
}
static const char *setup_explicit_git_dir(const char *gitdirenv,
- const char *work_tree_env, int *nongit_ok)
+ char *cwd, int len,
+ int *nongit_ok)
{
- static char buffer[1024 + 1];
- const char *retval;
+ const char *work_tree_env = getenv(GIT_WORK_TREE_ENVIRONMENT);
+ const char *worktree;
+ char *gitfile;
- if (startup_info)
- startup_info->setup_explicit = 1;
if (PATH_MAX - 40 < strlen(gitdirenv))
die("'$%s' too big", GIT_DIR_ENVIRONMENT);
+
+ gitfile = (char*)read_gitfile_gently(gitdirenv);
+ if (gitfile) {
+ gitfile = xstrdup(gitfile);
+ gitdirenv = gitfile;
+ }
+
if (!is_git_directory(gitdirenv)) {
if (nongit_ok) {
*nongit_ok = 1;
+ free(gitfile);
return NULL;
}
die("Not a git repository: '%s'", gitdirenv);
}
- if (!work_tree_env) {
- retval = set_work_tree(gitdirenv);
- /* config may override worktree */
- if (check_repository_format_gently(gitdirenv, nongit_ok))
- return NULL;
- return retval;
+
+ if (check_repository_format_gently(gitdirenv, nongit_ok)) {
+ free(gitfile);
+ return NULL;
}
- if (check_repository_format_gently(gitdirenv, nongit_ok))
+
+ /* #3, #7, #11, #15, #19, #23, #27, #31 (see t1510) */
+ if (work_tree_env)
+ set_git_work_tree(work_tree_env);
+ else if (is_bare_repository_cfg > 0) {
+ if (git_work_tree_cfg) /* #22.2, #30 */
+ die("core.bare and core.worktree do not make sense");
+
+ /* #18, #26 */
+ set_git_dir(gitdirenv);
+ free(gitfile);
return NULL;
- retval = get_relative_cwd(buffer, sizeof(buffer) - 1,
- get_git_work_tree());
- if (!retval || !*retval)
+ }
+ else if (git_work_tree_cfg) { /* #6, #14 */
+ if (is_absolute_path(git_work_tree_cfg))
+ set_git_work_tree(git_work_tree_cfg);
+ else {
+ char core_worktree[PATH_MAX];
+ if (chdir(gitdirenv))
+ die_errno("Could not chdir to '%s'", gitdirenv);
+ if (chdir(git_work_tree_cfg))
+ die_errno("Could not chdir to '%s'", git_work_tree_cfg);
+ if (!getcwd(core_worktree, PATH_MAX))
+ die_errno("Could not get directory '%s'", git_work_tree_cfg);
+ if (chdir(cwd))
+ die_errno("Could not come back to cwd");
+ set_git_work_tree(core_worktree);
+ }
+ }
+ else /* #2, #10 */
+ set_git_work_tree(".");
+
+ /* set_git_work_tree() must have been called by now */
+ worktree = get_git_work_tree();
+
+ /* both get_git_work_tree() and cwd are already normalized */
+ if (!strcmp(cwd, worktree)) { /* cwd == worktree */
+ set_git_dir(gitdirenv);
+ free(gitfile);
return NULL;
- set_git_dir(make_absolute_path(gitdirenv));
- if (chdir(work_tree_env) < 0)
- die_errno ("Could not chdir to '%s'", work_tree_env);
- strcat(buffer, "/");
- return retval;
+ }
+
+ if (!prefixcmp(cwd, worktree) &&
+ cwd[strlen(worktree)] == '/') { /* cwd inside worktree */
+ set_git_dir(make_absolute_path(gitdirenv));
+ if (chdir(worktree))
+ die_errno("Could not chdir to '%s'", worktree);
+ cwd[len++] = '/';
+ cwd[len] = '\0';
+ free(gitfile);
+ return cwd + strlen(worktree) + 1;
+ }
+
+ /* cwd outside worktree */
+ set_git_dir(gitdirenv);
+ free(gitfile);
+ return NULL;
}
static const char *setup_discovered_git_dir(const char *gitdir,
*/
static const char *setup_git_directory_gently_1(int *nongit_ok)
{
- const char *work_tree_env = getenv(GIT_WORK_TREE_ENVIRONMENT);
const char *env_ceiling_dirs = getenv(CEILING_DIRECTORIES_ENVIRONMENT);
static char cwd[PATH_MAX+1];
const char *gitdirenv, *ret;
if (nongit_ok)
*nongit_ok = 0;
+ if (!getcwd(cwd, sizeof(cwd)-1))
+ die_errno("Unable to read current working directory");
+ offset = len = strlen(cwd);
+
/*
* If GIT_DIR is set explicitly, we're not going
* to do any discovery, but we still do repository
*/
gitdirenv = getenv(GIT_DIR_ENVIRONMENT);
if (gitdirenv)
- return setup_explicit_git_dir(gitdirenv, work_tree_env, nongit_ok);
-
- if (!getcwd(cwd, sizeof(cwd)-1))
- die_errno("Unable to read current working directory");
+ return setup_explicit_git_dir(gitdirenv, cwd, len, nongit_ok);
ceil_offset = longest_ancestor_length(cwd, env_ceiling_dirs);
if (ceil_offset < 0 && has_dos_drive_prefix(cwd))
* - ../../.git/
* etc.
*/
- offset = len = strlen(cwd);
one_filesystem = !git_env_bool("GIT_DISCOVERY_ACROSS_FILESYSTEM", 0);
if (one_filesystem)
current_device = get_device_or_die(".", NULL);
*/
const char *setup_git_directory(void)
{
- const char *retval = setup_git_directory_gently(NULL);
-
- /* If the work tree is not the default one, recompute prefix */
- if ((!startup_info || startup_info->setup_explicit) &&
- inside_work_tree < 0) {
- static char buffer[PATH_MAX + 1];
- char *rel;
- if (retval && chdir(retval))
- die_errno ("Could not jump back into original cwd");
- rel = get_relative_cwd(buffer, PATH_MAX, get_git_work_tree());
- if (rel && *rel && chdir(get_git_work_tree()))
- die_errno ("Could not jump to working directory");
- return rel && *rel ? strcat(rel, "/") : NULL;
- }
-
- return retval;
+ return setup_git_directory_gently(NULL);
}
diff --git a/t/t1510-repo-setup.sh b/t/t1510-repo-setup.sh
index 057f959442ab64664893806704274c72cc5b37e3..500ffafc22e58cd06a01fc40b60643ce31443bb9 100755 (executable)
--- a/t/t1510-repo-setup.sh
+++ b/t/t1510-repo-setup.sh
test_repo 6 "$TRASH_DIRECTORY/6/.git"
'
-test_expect_failure '#6: GIT_DIR(rel), core.worktree=.. in subdir' '
+test_expect_success '#6: GIT_DIR(rel), core.worktree=.. in subdir' '
cat >6/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/6/.git
setup: worktree: $TRASH_DIRECTORY/6
test_repo 6/sub/sub ../../.git
'
-test_expect_failure '#6: GIT_DIR(rel), core.worktree=..(rel) in subdir' '
+test_expect_success '#6: GIT_DIR(rel), core.worktree=..(rel) in subdir' '
cat >6/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/6/.git
setup: worktree: $TRASH_DIRECTORY/6
test_repo 6/sub/sub "$TRASH_DIRECTORY/6/.git"
'
-test_expect_failure '#6: GIT_DIR(rel), core.worktree=../.. at root' '
+test_expect_success '#6: GIT_DIR(rel), core.worktree=../.. at root' '
cat >6/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/6/.git
setup: worktree: $TRASH_DIRECTORY
test_repo 6 .git
'
-test_expect_failure '#6: GIT_DIR(rel), core.worktree=../..(rel) at root' '
+test_expect_success '#6: GIT_DIR(rel), core.worktree=../..(rel) at root' '
cat >6/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/6/.git
setup: worktree: $TRASH_DIRECTORY
test_repo 6 "$TRASH_DIRECTORY/6/.git"
'
-test_expect_failure '#6: GIT_DIR(rel), core.worktree=../.. in subdir' '
+test_expect_success '#6: GIT_DIR(rel), core.worktree=../.. in subdir' '
cat >6/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/6/.git
setup: worktree: $TRASH_DIRECTORY
test_repo 6/sub/sub ../../.git
'
-test_expect_failure '#6: GIT_DIR(rel), core.worktree=../..(rel) in subdir' '
+test_expect_success '#6: GIT_DIR(rel), core.worktree=../..(rel) in subdir' '
cat >6/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/6/.git
setup: worktree: $TRASH_DIRECTORY
cd ..
'
-test_expect_failure '#10: at root' '
+test_expect_success '#10: at root' '
cat >10/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/10.git
setup: worktree: $TRASH_DIRECTORY/10
test_repo 10 "$TRASH_DIRECTORY/10/.git"
'
-test_expect_failure '#10: in subdir' '
+test_expect_success '#10: in subdir' '
cat >10/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/10.git
setup: worktree: $TRASH_DIRECTORY/10/sub
test_repo 10/sub "$TRASH_DIRECTORY/10/.git"
'
-test_expect_failure '#10: relative GIT_DIR at root' '
+test_expect_success '#10: relative GIT_DIR at root' '
cat >10/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/10.git
setup: worktree: $TRASH_DIRECTORY/10
test_repo 10 .git
'
-test_expect_failure '#10: relative GIT_DIR in subdir' '
+test_expect_success '#10: relative GIT_DIR in subdir' '
cat >10/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/10.git
setup: worktree: $TRASH_DIRECTORY/10/sub
cd ..
'
-test_expect_failure '#11: GIT_DIR(rel), GIT_WORK_TREE=root at root' '
+test_expect_success '#11: GIT_DIR(rel), GIT_WORK_TREE=root at root' '
cat >11/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/11.git
setup: worktree: $TRASH_DIRECTORY/11
test_repo 11 .git "$TRASH_DIRECTORY/11"
'
-test_expect_failure '#11: GIT_DIR(rel), GIT_WORK_TREE=root(rel) at root' '
+test_expect_success '#11: GIT_DIR(rel), GIT_WORK_TREE=root(rel) at root' '
cat >11/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/11.git
setup: worktree: $TRASH_DIRECTORY/11
test_repo 11 .git .
'
-test_expect_failure '#11: GIT_DIR, GIT_WORK_TREE=root at root' '
+test_expect_success '#11: GIT_DIR, GIT_WORK_TREE=root at root' '
cat >11/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/11.git
setup: worktree: $TRASH_DIRECTORY/11
test_repo 11 "$TRASH_DIRECTORY/11/.git" "$TRASH_DIRECTORY/11"
'
-test_expect_failure '#11: GIT_DIR, GIT_WORK_TREE=root(rel) at root' '
+test_expect_success '#11: GIT_DIR, GIT_WORK_TREE=root(rel) at root' '
cat >11/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/11.git
setup: worktree: $TRASH_DIRECTORY/11
test_repo 11 "$TRASH_DIRECTORY/11/.git" .
'
-test_expect_failure '#11: GIT_DIR(rel), GIT_WORKTREE=root in subdir' '
+test_expect_success '#11: GIT_DIR(rel), GIT_WORKTREE=root in subdir' '
cat >11/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/11.git
setup: worktree: $TRASH_DIRECTORY/11
test_repo 11/sub/sub ../../.git "$TRASH_DIRECTORY/11"
'
-test_expect_failure '#11: GIT_DIR(rel), GIT_WORKTREE=root(rel) in subdir' '
+test_expect_success '#11: GIT_DIR(rel), GIT_WORKTREE=root(rel) in subdir' '
cat >11/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/11.git
setup: worktree: $TRASH_DIRECTORY/11
test_repo 11/sub/sub ../../.git ../..
'
-test_expect_failure '#11: GIT_DIR, GIT_WORKTREE=root in subdir' '
+test_expect_success '#11: GIT_DIR, GIT_WORKTREE=root in subdir' '
cat >11/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/11.git
setup: worktree: $TRASH_DIRECTORY/11
test_repo 11/sub "$TRASH_DIRECTORY/11/.git" "$TRASH_DIRECTORY/11"
'
-test_expect_failure '#11: GIT_DIR, GIT_WORKTREE=root(rel) in subdir' '
+test_expect_success '#11: GIT_DIR, GIT_WORKTREE=root(rel) in subdir' '
cat >11/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/11.git
setup: worktree: $TRASH_DIRECTORY/11
test_repo 11/sub/sub "$TRASH_DIRECTORY/11/.git" ../..
'
-test_expect_failure '#11: GIT_DIR(rel), GIT_WORK_TREE=wt at root' '
+test_expect_success '#11: GIT_DIR(rel), GIT_WORK_TREE=wt at root' '
cat >11/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/11.git
setup: worktree: $TRASH_DIRECTORY/11/wt
test_repo 11 .git "$TRASH_DIRECTORY/11/wt"
'
-test_expect_failure '#11: GIT_DIR(rel), GIT_WORK_TREE=wt(rel) at root' '
+test_expect_success '#11: GIT_DIR(rel), GIT_WORK_TREE=wt(rel) at root' '
cat >11/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/11.git
setup: worktree: $TRASH_DIRECTORY/11/wt
test_repo 11 .git wt
'
-test_expect_failure '#11: GIT_DIR, GIT_WORK_TREE=wt(rel) at root' '
+test_expect_success '#11: GIT_DIR, GIT_WORK_TREE=wt(rel) at root' '
cat >11/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/11.git
setup: worktree: $TRASH_DIRECTORY/11/wt
test_repo 11 "$TRASH_DIRECTORY/11/.git" wt
'
-test_expect_failure '#11: GIT_DIR, GIT_WORK_TREE=wt at root' '
+test_expect_success '#11: GIT_DIR, GIT_WORK_TREE=wt at root' '
cat >11/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/11.git
setup: worktree: $TRASH_DIRECTORY/11/wt
test_repo 11 "$TRASH_DIRECTORY/11/.git" "$TRASH_DIRECTORY/11/wt"
'
-test_expect_failure '#11: GIT_DIR(rel), GIT_WORK_TREE=wt in subdir' '
+test_expect_success '#11: GIT_DIR(rel), GIT_WORK_TREE=wt in subdir' '
cat >11/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/11.git
setup: worktree: $TRASH_DIRECTORY/11/wt
test_repo 11/sub/sub ../../.git "$TRASH_DIRECTORY/11/wt"
'
-test_expect_failure '#11: GIT_DIR(rel), GIT_WORK_TREE=wt(rel) in subdir' '
+test_expect_success '#11: GIT_DIR(rel), GIT_WORK_TREE=wt(rel) in subdir' '
cat >11/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/11.git
setup: worktree: $TRASH_DIRECTORY/11/wt
test_repo 11/sub/sub ../../.git ../../wt
'
-test_expect_failure '#11: GIT_DIR, GIT_WORK_TREE=wt(rel) in subdir' '
+test_expect_success '#11: GIT_DIR, GIT_WORK_TREE=wt(rel) in subdir' '
cat >11/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/11.git
setup: worktree: $TRASH_DIRECTORY/11/wt
test_repo 11/sub/sub "$TRASH_DIRECTORY/11/.git" ../../wt
'
-test_expect_failure '#11: GIT_DIR, GIT_WORK_TREE=wt in subdir' '
+test_expect_success '#11: GIT_DIR, GIT_WORK_TREE=wt in subdir' '
cat >11/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/11.git
setup: worktree: $TRASH_DIRECTORY/11/wt
test_repo 11/sub/sub "$TRASH_DIRECTORY/11/.git" "$TRASH_DIRECTORY/11/wt"
'
-test_expect_failure '#11: GIT_DIR(rel), GIT_WORK_TREE=.. at root' '
+test_expect_success '#11: GIT_DIR(rel), GIT_WORK_TREE=.. at root' '
cat >11/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/11.git
setup: worktree: $TRASH_DIRECTORY
test_repo 11 .git "$TRASH_DIRECTORY"
'
-test_expect_failure '#11: GIT_DIR(rel), GIT_WORK_TREE=..(rel) at root' '
+test_expect_success '#11: GIT_DIR(rel), GIT_WORK_TREE=..(rel) at root' '
cat >11/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/11.git
setup: worktree: $TRASH_DIRECTORY
test_repo 11 .git ..
'
-test_expect_failure '#11: GIT_DIR, GIT_WORK_TREE=..(rel) at root' '
+test_expect_success '#11: GIT_DIR, GIT_WORK_TREE=..(rel) at root' '
cat >11/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/11.git
setup: worktree: $TRASH_DIRECTORY
test_repo 11 "$TRASH_DIRECTORY/11/.git" ..
'
-test_expect_failure '#11: GIT_DIR, GIT_WORK_TREE=.. at root' '
+test_expect_success '#11: GIT_DIR, GIT_WORK_TREE=.. at root' '
cat >11/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/11.git
setup: worktree: $TRASH_DIRECTORY
test_repo 11 "$TRASH_DIRECTORY/11/.git" "$TRASH_DIRECTORY"
'
-test_expect_failure '#11: GIT_DIR(rel), GIT_WORK_TREE=.. in subdir' '
+test_expect_success '#11: GIT_DIR(rel), GIT_WORK_TREE=.. in subdir' '
cat >11/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/11.git
setup: worktree: $TRASH_DIRECTORY
test_repo 11/sub/sub ../../.git "$TRASH_DIRECTORY"
'
-test_expect_failure '#11: GIT_DIR(rel), GIT_WORK_TREE=..(rel) in subdir' '
+test_expect_success '#11: GIT_DIR(rel), GIT_WORK_TREE=..(rel) in subdir' '
cat >11/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/11.git
setup: worktree: $TRASH_DIRECTORY
test_repo 11/sub/sub ../../.git ../../..
'
-test_expect_failure '#11: GIT_DIR, GIT_WORK_TREE=..(rel) in subdir' '
+test_expect_success '#11: GIT_DIR, GIT_WORK_TREE=..(rel) in subdir' '
cat >11/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/11.git
setup: worktree: $TRASH_DIRECTORY
test_repo 11/sub/sub "$TRASH_DIRECTORY/11/.git" ../../../
'
-test_expect_failure '#11: GIT_DIR, GIT_WORK_TREE=.. in subdir' '
+test_expect_success '#11: GIT_DIR, GIT_WORK_TREE=.. in subdir' '
cat >11/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/11.git
setup: worktree: $TRASH_DIRECTORY
cd ..
'
-test_expect_failure '#14: GIT_DIR(rel), core.worktree=../14 at root' '
+test_expect_success '#14: GIT_DIR(rel), core.worktree=../14 at root' '
cat >14/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/14.git
setup: worktree: $TRASH_DIRECTORY/14
test_repo 14 .git
'
-test_expect_failure '#14: GIT_DIR(rel), core.worktree=../14(rel) at root' '
+test_expect_success '#14: GIT_DIR(rel), core.worktree=../14(rel) at root' '
cat >14/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/14.git
setup: worktree: $TRASH_DIRECTORY/14
test_repo 14 .git
'
-test_expect_failure '#14: GIT_DIR, core.worktree=../14 at root' '
+test_expect_success '#14: GIT_DIR, core.worktree=../14 at root' '
cat >14/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/14.git
setup: worktree: $TRASH_DIRECTORY/14
test_repo 14 "$TRASH_DIRECTORY/14/.git"
'
-test_expect_failure '#14: GIT_DIR, core.worktree=../14(rel) at root' '
+test_expect_success '#14: GIT_DIR, core.worktree=../14(rel) at root' '
cat >14/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/14.git
setup: worktree: $TRASH_DIRECTORY/14
test_repo 14 "$TRASH_DIRECTORY/14/.git"
'
-test_expect_failure '#14: GIT_DIR(rel), core.worktree=../14 in subdir' '
+test_expect_success '#14: GIT_DIR(rel), core.worktree=../14 in subdir' '
cat >14/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/14.git
setup: worktree: $TRASH_DIRECTORY/14
test_repo 14/sub/sub ../../.git
'
-test_expect_failure '#14: GIT_DIR(rel), core.worktree=../14(rel) in subdir' '
+test_expect_success '#14: GIT_DIR(rel), core.worktree=../14(rel) in subdir' '
cat >14/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/14.git
setup: worktree: $TRASH_DIRECTORY/14
test_repo 14/sub/sub ../../.git
'
-test_expect_failure '#14: GIT_DIR, core.worktree=../14 in subdir' '
+test_expect_success '#14: GIT_DIR, core.worktree=../14 in subdir' '
cat >14/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/14.git
setup: worktree: $TRASH_DIRECTORY/14
test_repo 14/sub "$TRASH_DIRECTORY/14/.git"
'
-test_expect_failure '#14: GIT_DIR, core.worktree=../14(rel) in subdir' '
+test_expect_success '#14: GIT_DIR, core.worktree=../14(rel) in subdir' '
cat >14/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/14.git
setup: worktree: $TRASH_DIRECTORY/14
test_repo 14/sub/sub "$TRASH_DIRECTORY/14/.git"
'
-test_expect_failure '#14: GIT_DIR(rel), core.worktree=../14/wt at root' '
+test_expect_success '#14: GIT_DIR(rel), core.worktree=../14/wt at root' '
cat >14/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/14.git
setup: worktree: $TRASH_DIRECTORY/14/wt
test_repo 14 .git
'
-test_expect_failure '#14: GIT_DIR(rel), core.worktree=../14/wt(rel) at root' '
+test_expect_success '#14: GIT_DIR(rel), core.worktree=../14/wt(rel) at root' '
cat >14/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/14.git
setup: worktree: $TRASH_DIRECTORY/14/wt
test_repo 14 .git
'
-test_expect_failure '#14: GIT_DIR, core.worktree=../14/wt(rel) at root' '
+test_expect_success '#14: GIT_DIR, core.worktree=../14/wt(rel) at root' '
cat >14/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/14.git
setup: worktree: $TRASH_DIRECTORY/14/wt
test_repo 14 "$TRASH_DIRECTORY/14/.git"
'
-test_expect_failure '#14: GIT_DIR, core.worktree=../14/wt at root' '
+test_expect_success '#14: GIT_DIR, core.worktree=../14/wt at root' '
cat >14/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/14.git
setup: worktree: $TRASH_DIRECTORY/14/wt
test_repo 14 "$TRASH_DIRECTORY/14/.git"
'
-test_expect_failure '#14: GIT_DIR(rel), core.worktree=../14/wt in subdir' '
+test_expect_success '#14: GIT_DIR(rel), core.worktree=../14/wt in subdir' '
cat >14/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/14.git
setup: worktree: $TRASH_DIRECTORY/14/wt
test_repo 14/sub/sub ../../.git
'
-test_expect_failure '#14: GIT_DIR(rel), core.worktree=../14/wt(rel) in subdir' '
+test_expect_success '#14: GIT_DIR(rel), core.worktree=../14/wt(rel) in subdir' '
cat >14/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/14.git
setup: worktree: $TRASH_DIRECTORY/14/wt
test_repo 14/sub/sub ../../.git
'
-test_expect_failure '#14: GIT_DIR, core.worktree=../14/wt(rel) in subdir' '
+test_expect_success '#14: GIT_DIR, core.worktree=../14/wt(rel) in subdir' '
cat >14/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/14.git
setup: worktree: $TRASH_DIRECTORY/14/wt
test_repo 14/sub/sub "$TRASH_DIRECTORY/14/.git"
'
-test_expect_failure '#14: GIT_DIR, core.worktree=../14/wt in subdir' '
+test_expect_success '#14: GIT_DIR, core.worktree=../14/wt in subdir' '
cat >14/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/14.git
setup: worktree: $TRASH_DIRECTORY/14/wt
test_repo 14/sub/sub "$TRASH_DIRECTORY/14/.git"
'
-test_expect_failure '#14: GIT_DIR(rel), core.worktree=.. at root' '
+test_expect_success '#14: GIT_DIR(rel), core.worktree=.. at root' '
cat >14/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/14.git
setup: worktree: $TRASH_DIRECTORY
test_repo 14 .git
'
-test_expect_failure '#14: GIT_DIR(rel), core.worktree=..(rel) at root' '
+test_expect_success '#14: GIT_DIR(rel), core.worktree=..(rel) at root' '
cat >14/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/14.git
setup: worktree: $TRASH_DIRECTORY
test_repo 14 .git
'
-test_expect_failure '#14: GIT_DIR, core.worktree=..(rel) at root' '
+test_expect_success '#14: GIT_DIR, core.worktree=..(rel) at root' '
cat >14/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/14.git
setup: worktree: $TRASH_DIRECTORY
test_repo 14 "$TRASH_DIRECTORY/14/.git"
'
-test_expect_failure '#14: GIT_DIR, core.worktree=.. at root' '
+test_expect_success '#14: GIT_DIR, core.worktree=.. at root' '
cat >14/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/14.git
setup: worktree: $TRASH_DIRECTORY
test_repo 14 "$TRASH_DIRECTORY/14/.git"
'
-test_expect_failure '#14: GIT_DIR(rel), core.worktree=.. in subdir' '
+test_expect_success '#14: GIT_DIR(rel), core.worktree=.. in subdir' '
cat >14/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/14.git
setup: worktree: $TRASH_DIRECTORY
test_repo 14/sub/sub ../../.git
'
-test_expect_failure '#14: GIT_DIR(rel), core.worktree=..(rel) in subdir' '
+test_expect_success '#14: GIT_DIR(rel), core.worktree=..(rel) in subdir' '
cat >14/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/14.git
setup: worktree: $TRASH_DIRECTORY
test_repo 14/sub/sub ../../.git
'
-test_expect_failure '#14: GIT_DIR, core.worktree=..(rel) in subdir' '
+test_expect_success '#14: GIT_DIR, core.worktree=..(rel) in subdir' '
cat >14/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/14.git
setup: worktree: $TRASH_DIRECTORY
test_repo 14/sub/sub "$TRASH_DIRECTORY/14/.git"
'
-test_expect_failure '#14: GIT_DIR, core.worktree=.. in subdir' '
+test_expect_success '#14: GIT_DIR, core.worktree=.. in subdir' '
cat >14/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/14.git
setup: worktree: $TRASH_DIRECTORY
cd ..
'
-test_expect_failure '#15: GIT_DIR(rel), GIT_WORK_TREE=root at root' '
+test_expect_success '#15: GIT_DIR(rel), GIT_WORK_TREE=root at root' '
cat >15/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/15.git
setup: worktree: $TRASH_DIRECTORY/15
test_repo 15 .git "$TRASH_DIRECTORY/15"
'
-test_expect_failure '#15: GIT_DIR(rel), GIT_WORK_TREE=root(rel) at root' '
+test_expect_success '#15: GIT_DIR(rel), GIT_WORK_TREE=root(rel) at root' '
cat >15/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/15.git
setup: worktree: $TRASH_DIRECTORY/15
test_repo 15 .git .
'
-test_expect_failure '#15: GIT_DIR, GIT_WORK_TREE=root at root' '
+test_expect_success '#15: GIT_DIR, GIT_WORK_TREE=root at root' '
cat >15/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/15.git
setup: worktree: $TRASH_DIRECTORY/15
test_repo 15 "$TRASH_DIRECTORY/15/.git" "$TRASH_DIRECTORY/15"
'
-test_expect_failure '#15: GIT_DIR, GIT_WORK_TREE=root(rel) at root' '
+test_expect_success '#15: GIT_DIR, GIT_WORK_TREE=root(rel) at root' '
cat >15/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/15.git
setup: worktree: $TRASH_DIRECTORY/15
test_repo 15 "$TRASH_DIRECTORY/15/.git" .
'
-test_expect_failure '#15: GIT_DIR(rel), GIT_WORKTREE=root in subdir' '
+test_expect_success '#15: GIT_DIR(rel), GIT_WORKTREE=root in subdir' '
cat >15/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/15.git
setup: worktree: $TRASH_DIRECTORY/15
test_repo 15/sub/sub ../../.git "$TRASH_DIRECTORY/15"
'
-test_expect_failure '#15: GIT_DIR(rel), GIT_WORKTREE=root(rel) in subdir' '
+test_expect_success '#15: GIT_DIR(rel), GIT_WORKTREE=root(rel) in subdir' '
cat >15/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/15.git
setup: worktree: $TRASH_DIRECTORY/15
test_repo 15/sub/sub ../../.git ../..
'
-test_expect_failure '#15: GIT_DIR, GIT_WORKTREE=root in subdir' '
+test_expect_success '#15: GIT_DIR, GIT_WORKTREE=root in subdir' '
cat >15/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/15.git
setup: worktree: $TRASH_DIRECTORY/15
test_repo 15/sub "$TRASH_DIRECTORY/15/.git" "$TRASH_DIRECTORY/15"
'
-test_expect_failure '#15: GIT_DIR, GIT_WORKTREE=root(rel) in subdir' '
+test_expect_success '#15: GIT_DIR, GIT_WORKTREE=root(rel) in subdir' '
cat >15/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/15.git
setup: worktree: $TRASH_DIRECTORY/15
test_repo 15/sub/sub "$TRASH_DIRECTORY/15/.git" ../..
'
-test_expect_failure '#15: GIT_DIR(rel), GIT_WORK_TREE=wt at root' '
+test_expect_success '#15: GIT_DIR(rel), GIT_WORK_TREE=wt at root' '
cat >15/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/15.git
setup: worktree: $TRASH_DIRECTORY/15/wt
test_repo 15 .git "$TRASH_DIRECTORY/15/wt"
'
-test_expect_failure '#15: GIT_DIR(rel), GIT_WORK_TREE=wt(rel) at root' '
+test_expect_success '#15: GIT_DIR(rel), GIT_WORK_TREE=wt(rel) at root' '
cat >15/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/15.git
setup: worktree: $TRASH_DIRECTORY/15/wt
test_repo 15 .git wt
'
-test_expect_failure '#15: GIT_DIR, GIT_WORK_TREE=wt(rel) at root' '
+test_expect_success '#15: GIT_DIR, GIT_WORK_TREE=wt(rel) at root' '
cat >15/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/15.git
setup: worktree: $TRASH_DIRECTORY/15/wt
test_repo 15 "$TRASH_DIRECTORY/15/.git" wt
'
-test_expect_failure '#15: GIT_DIR, GIT_WORK_TREE=wt at root' '
+test_expect_success '#15: GIT_DIR, GIT_WORK_TREE=wt at root' '
cat >15/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/15.git
setup: worktree: $TRASH_DIRECTORY/15/wt
test_repo 15 "$TRASH_DIRECTORY/15/.git" "$TRASH_DIRECTORY/15/wt"
'
-test_expect_failure '#15: GIT_DIR(rel), GIT_WORK_TREE=wt in subdir' '
+test_expect_success '#15: GIT_DIR(rel), GIT_WORK_TREE=wt in subdir' '
cat >15/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/15.git
setup: worktree: $TRASH_DIRECTORY/15/wt
test_repo 15/sub/sub ../../.git "$TRASH_DIRECTORY/15/wt"
'
-test_expect_failure '#15: GIT_DIR(rel), GIT_WORK_TREE=wt(rel) in subdir' '
+test_expect_success '#15: GIT_DIR(rel), GIT_WORK_TREE=wt(rel) in subdir' '
cat >15/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/15.git
setup: worktree: $TRASH_DIRECTORY/15/wt
test_repo 15/sub/sub ../../.git ../../wt
'
-test_expect_failure '#15: GIT_DIR, GIT_WORK_TREE=wt(rel) in subdir' '
+test_expect_success '#15: GIT_DIR, GIT_WORK_TREE=wt(rel) in subdir' '
cat >15/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/15.git
setup: worktree: $TRASH_DIRECTORY/15/wt
test_repo 15/sub/sub "$TRASH_DIRECTORY/15/.git" ../../wt
'
-test_expect_failure '#15: GIT_DIR, GIT_WORK_TREE=wt in subdir' '
+test_expect_success '#15: GIT_DIR, GIT_WORK_TREE=wt in subdir' '
cat >15/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/15.git
setup: worktree: $TRASH_DIRECTORY/15/wt
test_repo 15/sub/sub "$TRASH_DIRECTORY/15/.git" "$TRASH_DIRECTORY/15/wt"
'
-test_expect_failure '#15: GIT_DIR(rel), GIT_WORK_TREE=.. at root' '
+test_expect_success '#15: GIT_DIR(rel), GIT_WORK_TREE=.. at root' '
cat >15/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/15.git
setup: worktree: $TRASH_DIRECTORY
test_repo 15 .git "$TRASH_DIRECTORY"
'
-test_expect_failure '#15: GIT_DIR(rel), GIT_WORK_TREE=..(rel) at root' '
+test_expect_success '#15: GIT_DIR(rel), GIT_WORK_TREE=..(rel) at root' '
cat >15/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/15.git
setup: worktree: $TRASH_DIRECTORY
test_repo 15 .git ..
'
-test_expect_failure '#15: GIT_DIR, GIT_WORK_TREE=..(rel) at root' '
+test_expect_success '#15: GIT_DIR, GIT_WORK_TREE=..(rel) at root' '
cat >15/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/15.git
setup: worktree: $TRASH_DIRECTORY
test_repo 15 "$TRASH_DIRECTORY/15/.git" ..
'
-test_expect_failure '#15: GIT_DIR, GIT_WORK_TREE=.. at root' '
+test_expect_success '#15: GIT_DIR, GIT_WORK_TREE=.. at root' '
cat >15/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/15.git
setup: worktree: $TRASH_DIRECTORY
test_repo 15 "$TRASH_DIRECTORY/15/.git" "$TRASH_DIRECTORY"
'
-test_expect_failure '#15: GIT_DIR(rel), GIT_WORK_TREE=.. in subdir' '
+test_expect_success '#15: GIT_DIR(rel), GIT_WORK_TREE=.. in subdir' '
cat >15/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/15.git
setup: worktree: $TRASH_DIRECTORY
test_repo 15/sub/sub ../../.git "$TRASH_DIRECTORY"
'
-test_expect_failure '#15: GIT_DIR(rel), GIT_WORK_TREE=..(rel) in subdir' '
+test_expect_success '#15: GIT_DIR(rel), GIT_WORK_TREE=..(rel) in subdir' '
cat >15/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/15.git
setup: worktree: $TRASH_DIRECTORY
test_repo 15/sub/sub ../../.git ../../..
'
-test_expect_failure '#15: GIT_DIR, GIT_WORK_TREE=..(rel) in subdir' '
+test_expect_success '#15: GIT_DIR, GIT_WORK_TREE=..(rel) in subdir' '
cat >15/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/15.git
setup: worktree: $TRASH_DIRECTORY
test_repo 15/sub/sub "$TRASH_DIRECTORY/15/.git" ../../../
'
-test_expect_failure '#15: GIT_DIR, GIT_WORK_TREE=.. in subdir' '
+test_expect_success '#15: GIT_DIR, GIT_WORK_TREE=.. in subdir' '
cat >15/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/15.git
setup: worktree: $TRASH_DIRECTORY
test_repo 22/.git "$TRASH_DIRECTORY/22/.git"
'
-test_expect_failure '#22.1: GIT_DIR(rel), core.worktree=. in .git/sub' '
+test_expect_success '#22.1: GIT_DIR(rel), core.worktree=. in .git/sub' '
cat >22/.git/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/22/.git
setup: worktree: $TRASH_DIRECTORY/22/.git
test_repo 22/.git/sub ..
'
-test_expect_failure '#22.1: GIT_DIR(rel), core.worktree=.(rel) in .git/sub' '
+test_expect_success '#22.1: GIT_DIR(rel), core.worktree=.(rel) in .git/sub' '
cat >22/.git/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/22/.git
setup: worktree: $TRASH_DIRECTORY/22/.git
test_repo 22/.git/sub "$TRASH_DIRECTORY/22/.git"
'
-test_expect_failure '#22.1: GIT_DIR(rel), core.worktree=.. at .git' '
+test_expect_success '#22.1: GIT_DIR(rel), core.worktree=.. at .git' '
cat >22/.git/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/22/.git
setup: worktree: $TRASH_DIRECTORY/22
test_repo 22/.git .
'
-test_expect_failure '#22.1: GIT_DIR(rel), core.worktree=..(rel) at .git' '
+test_expect_success '#22.1: GIT_DIR(rel), core.worktree=..(rel) at .git' '
cat >22/.git/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/22/.git
setup: worktree: $TRASH_DIRECTORY/22
test_repo 22/.git "$TRASH_DIRECTORY/22/.git"
'
-test_expect_failure '#22.1: GIT_DIR(rel), core.worktree=.. in .git/sub' '
+test_expect_success '#22.1: GIT_DIR(rel), core.worktree=.. in .git/sub' '
cat >22/.git/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/22/.git
setup: worktree: $TRASH_DIRECTORY/22
test_repo 22/.git/sub ..
'
-test_expect_failure '#22.1: GIT_DIR(rel), core.worktree=..(rel) in .git/sub' '
+test_expect_success '#22.1: GIT_DIR(rel), core.worktree=..(rel) in .git/sub' '
cat >22/.git/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/22/.git
setup: worktree: $TRASH_DIRECTORY/22
git config --file="$TRASH_DIRECTORY/22/.git/config" core.bare true
'
-test_expect_failure '#22.2: at .git' '
+test_expect_success '#22.2: at .git' '
(
cd 22/.git &&
GIT_DIR=. &&
)
'
-test_expect_failure '#22.2: at root' '
+test_expect_success '#22.2: at root' '
(
cd 22 &&
GIT_DIR=.git &&
cd ..
'
-test_expect_failure '#26: (rel) at root' '
+test_expect_success '#26: (rel) at root' '
cat >26/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/26.git
setup: worktree: (null)
test_repo 26 .git
'
-test_expect_failure '#26: at root' '
+test_expect_success '#26: at root' '
cat >26/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/26.git
setup: worktree: (null)
test_repo 26 "$TRASH_DIRECTORY/26/.git"
'
-test_expect_failure '#26: (rel) in subdir' '
+test_expect_success '#26: (rel) in subdir' '
cat >26/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/26.git
setup: worktree: (null)
test_repo 26/sub ../.git
'
-test_expect_failure '#26: in subdir' '
+test_expect_success '#26: in subdir' '
cat >26/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/26.git
setup: worktree: (null)
cd ..
'
-test_expect_failure '#27: GIT_DIR(rel), GIT_WORK_TREE=root at root' '
+test_expect_success '#27: GIT_DIR(rel), GIT_WORK_TREE=root at root' '
cat >27/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/27.git
setup: worktree: $TRASH_DIRECTORY/27
test_repo 27 .git "$TRASH_DIRECTORY/27"
'
-test_expect_failure '#27: GIT_DIR(rel), GIT_WORK_TREE=root(rel) at root' '
+test_expect_success '#27: GIT_DIR(rel), GIT_WORK_TREE=root(rel) at root' '
cat >27/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/27.git
setup: worktree: $TRASH_DIRECTORY/27
test_repo 27 .git .
'
-test_expect_failure '#27: GIT_DIR, GIT_WORK_TREE=root at root' '
+test_expect_success '#27: GIT_DIR, GIT_WORK_TREE=root at root' '
cat >27/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/27.git
setup: worktree: $TRASH_DIRECTORY/27
test_repo 27 "$TRASH_DIRECTORY/27/.git" "$TRASH_DIRECTORY/27"
'
-test_expect_failure '#27: GIT_DIR, GIT_WORK_TREE=root(rel) at root' '
+test_expect_success '#27: GIT_DIR, GIT_WORK_TREE=root(rel) at root' '
cat >27/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/27.git
setup: worktree: $TRASH_DIRECTORY/27
test_repo 27 "$TRASH_DIRECTORY/27/.git" .
'
-test_expect_failure '#27: GIT_DIR(rel), GIT_WORKTREE=root in subdir' '
+test_expect_success '#27: GIT_DIR(rel), GIT_WORKTREE=root in subdir' '
cat >27/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/27.git
setup: worktree: $TRASH_DIRECTORY/27
test_repo 27/sub/sub ../../.git "$TRASH_DIRECTORY/27"
'
-test_expect_failure '#27: GIT_DIR(rel), GIT_WORKTREE=root(rel) in subdir' '
+test_expect_success '#27: GIT_DIR(rel), GIT_WORKTREE=root(rel) in subdir' '
cat >27/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/27.git
setup: worktree: $TRASH_DIRECTORY/27
test_repo 27/sub/sub ../../.git ../..
'
-test_expect_failure '#27: GIT_DIR, GIT_WORKTREE=root in subdir' '
+test_expect_success '#27: GIT_DIR, GIT_WORKTREE=root in subdir' '
cat >27/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/27.git
setup: worktree: $TRASH_DIRECTORY/27
test_repo 27/sub "$TRASH_DIRECTORY/27/.git" "$TRASH_DIRECTORY/27"
'
-test_expect_failure '#27: GIT_DIR, GIT_WORKTREE=root(rel) in subdir' '
+test_expect_success '#27: GIT_DIR, GIT_WORKTREE=root(rel) in subdir' '
cat >27/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/27.git
setup: worktree: $TRASH_DIRECTORY/27
test_repo 27/sub/sub "$TRASH_DIRECTORY/27/.git" ../..
'
-test_expect_failure '#27: GIT_DIR(rel), GIT_WORK_TREE=wt at root' '
+test_expect_success '#27: GIT_DIR(rel), GIT_WORK_TREE=wt at root' '
cat >27/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/27.git
setup: worktree: $TRASH_DIRECTORY/27/wt
test_repo 27 .git "$TRASH_DIRECTORY/27/wt"
'
-test_expect_failure '#27: GIT_DIR(rel), GIT_WORK_TREE=wt(rel) at root' '
+test_expect_success '#27: GIT_DIR(rel), GIT_WORK_TREE=wt(rel) at root' '
cat >27/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/27.git
setup: worktree: $TRASH_DIRECTORY/27/wt
test_repo 27 .git wt
'
-test_expect_failure '#27: GIT_DIR, GIT_WORK_TREE=wt(rel) at root' '
+test_expect_success '#27: GIT_DIR, GIT_WORK_TREE=wt(rel) at root' '
cat >27/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/27.git
setup: worktree: $TRASH_DIRECTORY/27/wt
test_repo 27 "$TRASH_DIRECTORY/27/.git" wt
'
-test_expect_failure '#27: GIT_DIR, GIT_WORK_TREE=wt at root' '
+test_expect_success '#27: GIT_DIR, GIT_WORK_TREE=wt at root' '
cat >27/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/27.git
setup: worktree: $TRASH_DIRECTORY/27/wt
test_repo 27 "$TRASH_DIRECTORY/27/.git" "$TRASH_DIRECTORY/27/wt"
'
-test_expect_failure '#27: GIT_DIR(rel), GIT_WORK_TREE=wt in subdir' '
+test_expect_success '#27: GIT_DIR(rel), GIT_WORK_TREE=wt in subdir' '
cat >27/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/27.git
setup: worktree: $TRASH_DIRECTORY/27/wt
test_repo 27/sub/sub ../../.git "$TRASH_DIRECTORY/27/wt"
'
-test_expect_failure '#27: GIT_DIR(rel), GIT_WORK_TREE=wt(rel) in subdir' '
+test_expect_success '#27: GIT_DIR(rel), GIT_WORK_TREE=wt(rel) in subdir' '
cat >27/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/27.git
setup: worktree: $TRASH_DIRECTORY/27/wt
test_repo 27/sub/sub ../../.git ../../wt
'
-test_expect_failure '#27: GIT_DIR, GIT_WORK_TREE=wt(rel) in subdir' '
+test_expect_success '#27: GIT_DIR, GIT_WORK_TREE=wt(rel) in subdir' '
cat >27/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/27.git
setup: worktree: $TRASH_DIRECTORY/27/wt
test_repo 27/sub/sub "$TRASH_DIRECTORY/27/.git" ../../wt
'
-test_expect_failure '#27: GIT_DIR, GIT_WORK_TREE=wt in subdir' '
+test_expect_success '#27: GIT_DIR, GIT_WORK_TREE=wt in subdir' '
cat >27/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/27.git
setup: worktree: $TRASH_DIRECTORY/27/wt
test_repo 27/sub/sub "$TRASH_DIRECTORY/27/.git" "$TRASH_DIRECTORY/27/wt"
'
-test_expect_failure '#27: GIT_DIR(rel), GIT_WORK_TREE=.. at root' '
+test_expect_success '#27: GIT_DIR(rel), GIT_WORK_TREE=.. at root' '
cat >27/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/27.git
setup: worktree: $TRASH_DIRECTORY
test_repo 27 .git "$TRASH_DIRECTORY"
'
-test_expect_failure '#27: GIT_DIR(rel), GIT_WORK_TREE=..(rel) at root' '
+test_expect_success '#27: GIT_DIR(rel), GIT_WORK_TREE=..(rel) at root' '
cat >27/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/27.git
setup: worktree: $TRASH_DIRECTORY
test_repo 27 .git ..
'
-test_expect_failure '#27: GIT_DIR, GIT_WORK_TREE=..(rel) at root' '
+test_expect_success '#27: GIT_DIR, GIT_WORK_TREE=..(rel) at root' '
cat >27/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/27.git
setup: worktree: $TRASH_DIRECTORY
test_repo 27 "$TRASH_DIRECTORY/27/.git" ..
'
-test_expect_failure '#27: GIT_DIR, GIT_WORK_TREE=.. at root' '
+test_expect_success '#27: GIT_DIR, GIT_WORK_TREE=.. at root' '
cat >27/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/27.git
setup: worktree: $TRASH_DIRECTORY
test_repo 27 "$TRASH_DIRECTORY/27/.git" "$TRASH_DIRECTORY"
'
-test_expect_failure '#27: GIT_DIR(rel), GIT_WORK_TREE=.. in subdir' '
+test_expect_success '#27: GIT_DIR(rel), GIT_WORK_TREE=.. in subdir' '
cat >27/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/27.git
setup: worktree: $TRASH_DIRECTORY
test_repo 27/sub/sub ../../.git "$TRASH_DIRECTORY"
'
-test_expect_failure '#27: GIT_DIR(rel), GIT_WORK_TREE=..(rel) in subdir' '
+test_expect_success '#27: GIT_DIR(rel), GIT_WORK_TREE=..(rel) in subdir' '
cat >27/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/27.git
setup: worktree: $TRASH_DIRECTORY
test_repo 27/sub/sub ../../.git ../../..
'
-test_expect_failure '#27: GIT_DIR, GIT_WORK_TREE=..(rel) in subdir' '
+test_expect_success '#27: GIT_DIR, GIT_WORK_TREE=..(rel) in subdir' '
cat >27/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/27.git
setup: worktree: $TRASH_DIRECTORY
test_repo 27/sub/sub "$TRASH_DIRECTORY/27/.git" ../../../
'
-test_expect_failure '#27: GIT_DIR, GIT_WORK_TREE=.. in subdir' '
+test_expect_success '#27: GIT_DIR, GIT_WORK_TREE=.. in subdir' '
cat >27/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/27.git
setup: worktree: $TRASH_DIRECTORY
cd ..
'
-test_expect_failure '#30: at root' '
+test_expect_success '#30: at root' '
(
cd 30 &&
GIT_DIR=.git &&
cd ..
'
-test_expect_failure '#31: GIT_DIR(rel), GIT_WORK_TREE=root at root' '
+test_expect_success '#31: GIT_DIR(rel), GIT_WORK_TREE=root at root' '
cat >31/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/31.git
setup: worktree: $TRASH_DIRECTORY/31
test_repo 31 .git "$TRASH_DIRECTORY/31"
'
-test_expect_failure '#31: GIT_DIR(rel), GIT_WORK_TREE=root(rel) at root' '
+test_expect_success '#31: GIT_DIR(rel), GIT_WORK_TREE=root(rel) at root' '
cat >31/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/31.git
setup: worktree: $TRASH_DIRECTORY/31
test_repo 31 .git .
'
-test_expect_failure '#31: GIT_DIR, GIT_WORK_TREE=root at root' '
+test_expect_success '#31: GIT_DIR, GIT_WORK_TREE=root at root' '
cat >31/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/31.git
setup: worktree: $TRASH_DIRECTORY/31
test_repo 31 "$TRASH_DIRECTORY/31/.git" "$TRASH_DIRECTORY/31"
'
-test_expect_failure '#31: GIT_DIR, GIT_WORK_TREE=root(rel) at root' '
+test_expect_success '#31: GIT_DIR, GIT_WORK_TREE=root(rel) at root' '
cat >31/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/31.git
setup: worktree: $TRASH_DIRECTORY/31
test_repo 31 "$TRASH_DIRECTORY/31/.git" .
'
-test_expect_failure '#31: GIT_DIR(rel), GIT_WORKTREE=root in subdir' '
+test_expect_success '#31: GIT_DIR(rel), GIT_WORKTREE=root in subdir' '
cat >31/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/31.git
setup: worktree: $TRASH_DIRECTORY/31
test_repo 31/sub/sub ../../.git "$TRASH_DIRECTORY/31"
'
-test_expect_failure '#31: GIT_DIR(rel), GIT_WORKTREE=root(rel) in subdir' '
+test_expect_success '#31: GIT_DIR(rel), GIT_WORKTREE=root(rel) in subdir' '
cat >31/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/31.git
setup: worktree: $TRASH_DIRECTORY/31
test_repo 31/sub/sub ../../.git ../..
'
-test_expect_failure '#31: GIT_DIR, GIT_WORKTREE=root in subdir' '
+test_expect_success '#31: GIT_DIR, GIT_WORKTREE=root in subdir' '
cat >31/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/31.git
setup: worktree: $TRASH_DIRECTORY/31
test_repo 31/sub "$TRASH_DIRECTORY/31/.git" "$TRASH_DIRECTORY/31"
'
-test_expect_failure '#31: GIT_DIR, GIT_WORKTREE=root(rel) in subdir' '
+test_expect_success '#31: GIT_DIR, GIT_WORKTREE=root(rel) in subdir' '
cat >31/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/31.git
setup: worktree: $TRASH_DIRECTORY/31
test_repo 31/sub/sub "$TRASH_DIRECTORY/31/.git" ../..
'
-test_expect_failure '#31: GIT_DIR(rel), GIT_WORK_TREE=wt at root' '
+test_expect_success '#31: GIT_DIR(rel), GIT_WORK_TREE=wt at root' '
cat >31/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/31.git
setup: worktree: $TRASH_DIRECTORY/31/wt
test_repo 31 .git "$TRASH_DIRECTORY/31/wt"
'
-test_expect_failure '#31: GIT_DIR(rel), GIT_WORK_TREE=wt(rel) at root' '
+test_expect_success '#31: GIT_DIR(rel), GIT_WORK_TREE=wt(rel) at root' '
cat >31/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/31.git
setup: worktree: $TRASH_DIRECTORY/31/wt
test_repo 31 .git wt
'
-test_expect_failure '#31: GIT_DIR, GIT_WORK_TREE=wt(rel) at root' '
+test_expect_success '#31: GIT_DIR, GIT_WORK_TREE=wt(rel) at root' '
cat >31/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/31.git
setup: worktree: $TRASH_DIRECTORY/31/wt
test_repo 31 "$TRASH_DIRECTORY/31/.git" wt
'
-test_expect_failure '#31: GIT_DIR, GIT_WORK_TREE=wt at root' '
+test_expect_success '#31: GIT_DIR, GIT_WORK_TREE=wt at root' '
cat >31/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/31.git
setup: worktree: $TRASH_DIRECTORY/31/wt
test_repo 31 "$TRASH_DIRECTORY/31/.git" "$TRASH_DIRECTORY/31/wt"
'
-test_expect_failure '#31: GIT_DIR(rel), GIT_WORK_TREE=wt in subdir' '
+test_expect_success '#31: GIT_DIR(rel), GIT_WORK_TREE=wt in subdir' '
cat >31/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/31.git
setup: worktree: $TRASH_DIRECTORY/31/wt
test_repo 31/sub/sub ../../.git "$TRASH_DIRECTORY/31/wt"
'
-test_expect_failure '#31: GIT_DIR(rel), GIT_WORK_TREE=wt(rel) in subdir' '
+test_expect_success '#31: GIT_DIR(rel), GIT_WORK_TREE=wt(rel) in subdir' '
cat >31/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/31.git
setup: worktree: $TRASH_DIRECTORY/31/wt
test_repo 31/sub/sub ../../.git ../../wt
'
-test_expect_failure '#31: GIT_DIR, GIT_WORK_TREE=wt(rel) in subdir' '
+test_expect_success '#31: GIT_DIR, GIT_WORK_TREE=wt(rel) in subdir' '
cat >31/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/31.git
setup: worktree: $TRASH_DIRECTORY/31/wt
test_repo 31/sub/sub "$TRASH_DIRECTORY/31/.git" ../../wt
'
-test_expect_failure '#31: GIT_DIR, GIT_WORK_TREE=wt in subdir' '
+test_expect_success '#31: GIT_DIR, GIT_WORK_TREE=wt in subdir' '
cat >31/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/31.git
setup: worktree: $TRASH_DIRECTORY/31/wt
test_repo 31/sub/sub "$TRASH_DIRECTORY/31/.git" "$TRASH_DIRECTORY/31/wt"
'
-test_expect_failure '#31: GIT_DIR(rel), GIT_WORK_TREE=.. at root' '
+test_expect_success '#31: GIT_DIR(rel), GIT_WORK_TREE=.. at root' '
cat >31/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/31.git
setup: worktree: $TRASH_DIRECTORY
test_repo 31 .git "$TRASH_DIRECTORY"
'
-test_expect_failure '#31: GIT_DIR(rel), GIT_WORK_TREE=..(rel) at root' '
+test_expect_success '#31: GIT_DIR(rel), GIT_WORK_TREE=..(rel) at root' '
cat >31/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/31.git
setup: worktree: $TRASH_DIRECTORY
test_repo 31 .git ..
'
-test_expect_failure '#31: GIT_DIR, GIT_WORK_TREE=..(rel) at root' '
+test_expect_success '#31: GIT_DIR, GIT_WORK_TREE=..(rel) at root' '
cat >31/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/31.git
setup: worktree: $TRASH_DIRECTORY
test_repo 31 "$TRASH_DIRECTORY/31/.git" ..
'
-test_expect_failure '#31: GIT_DIR, GIT_WORK_TREE=.. at root' '
+test_expect_success '#31: GIT_DIR, GIT_WORK_TREE=.. at root' '
cat >31/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/31.git
setup: worktree: $TRASH_DIRECTORY
test_repo 31 "$TRASH_DIRECTORY/31/.git" "$TRASH_DIRECTORY"
'
-test_expect_failure '#31: GIT_DIR(rel), GIT_WORK_TREE=.. in subdir' '
+test_expect_success '#31: GIT_DIR(rel), GIT_WORK_TREE=.. in subdir' '
cat >31/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/31.git
setup: worktree: $TRASH_DIRECTORY
test_repo 31/sub/sub ../../.git "$TRASH_DIRECTORY"
'
-test_expect_failure '#31: GIT_DIR(rel), GIT_WORK_TREE=..(rel) in subdir' '
+test_expect_success '#31: GIT_DIR(rel), GIT_WORK_TREE=..(rel) in subdir' '
cat >31/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/31.git
setup: worktree: $TRASH_DIRECTORY
test_repo 31/sub/sub ../../.git ../../..
'
-test_expect_failure '#31: GIT_DIR, GIT_WORK_TREE=..(rel) in subdir' '
+test_expect_success '#31: GIT_DIR, GIT_WORK_TREE=..(rel) in subdir' '
cat >31/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/31.git
setup: worktree: $TRASH_DIRECTORY
test_repo 31/sub/sub "$TRASH_DIRECTORY/31/.git" ../../../
'
-test_expect_failure '#31: GIT_DIR, GIT_WORK_TREE=.. in subdir' '
+test_expect_success '#31: GIT_DIR, GIT_WORK_TREE=.. in subdir' '
cat >31/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/31.git
setup: worktree: $TRASH_DIRECTORY