Skip to content

Commit f7c8588

Browse files
pcloudsgitster
authored andcommitted
t1510: setup case #15
Signed-off-by: Nguyễn Thái Ngọc Duy <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 69bf2b1 commit f7c8588

File tree

1 file changed

+268
-0
lines changed

1 file changed

+268
-0
lines changed

t/t1510-repo-setup.sh

Lines changed: 268 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1957,4 +1957,272 @@ EOF
19571957
test_repo 14/sub/sub "$TRASH_DIRECTORY/14/.git"
19581958
'
19591959

1960+
#
1961+
# case #15
1962+
#
1963+
############################################################
1964+
#
1965+
# Input:
1966+
#
1967+
# - GIT_WORK_TREE is set
1968+
# - GIT_DIR is set
1969+
# - core.worktree is set
1970+
# - .git is a file
1971+
# - core.bare is not set, cwd is outside .git
1972+
#
1973+
# Output:
1974+
#
1975+
# #7 except that git_dir is set by .git file
1976+
1977+
test_expect_success '#15: setup' '
1978+
unset GIT_DIR GIT_WORK_TREE &&
1979+
mkdir 15 15/sub 15/sub/sub 15.wt 15.wt/sub 15/wt 15/wt/sub &&
1980+
cd 15 &&
1981+
git init &&
1982+
git config core.worktree non-existent &&
1983+
mv .git ../15.git &&
1984+
echo gitdir: ../15.git >.git &&
1985+
cd ..
1986+
'
1987+
1988+
test_expect_failure '#15: GIT_DIR(rel), GIT_WORK_TREE=root at root' '
1989+
cat >15/expected <<EOF &&
1990+
setup: git_dir: $TRASH_DIRECTORY/15.git
1991+
setup: worktree: $TRASH_DIRECTORY/15
1992+
setup: cwd: $TRASH_DIRECTORY/15
1993+
setup: prefix: (null)
1994+
EOF
1995+
test_repo 15 .git "$TRASH_DIRECTORY/15"
1996+
'
1997+
1998+
test_expect_failure '#15: GIT_DIR(rel), GIT_WORK_TREE=root(rel) at root' '
1999+
cat >15/expected <<EOF &&
2000+
setup: git_dir: $TRASH_DIRECTORY/15.git
2001+
setup: worktree: $TRASH_DIRECTORY/15
2002+
setup: cwd: $TRASH_DIRECTORY/15
2003+
setup: prefix: (null)
2004+
EOF
2005+
test_repo 15 .git .
2006+
'
2007+
2008+
test_expect_failure '#15: GIT_DIR, GIT_WORK_TREE=root at root' '
2009+
cat >15/expected <<EOF &&
2010+
setup: git_dir: $TRASH_DIRECTORY/15.git
2011+
setup: worktree: $TRASH_DIRECTORY/15
2012+
setup: cwd: $TRASH_DIRECTORY/15
2013+
setup: prefix: (null)
2014+
EOF
2015+
test_repo 15 "$TRASH_DIRECTORY/15/.git" "$TRASH_DIRECTORY/15"
2016+
'
2017+
2018+
test_expect_failure '#15: GIT_DIR, GIT_WORK_TREE=root(rel) at root' '
2019+
cat >15/expected <<EOF &&
2020+
setup: git_dir: $TRASH_DIRECTORY/15.git
2021+
setup: worktree: $TRASH_DIRECTORY/15
2022+
setup: cwd: $TRASH_DIRECTORY/15
2023+
setup: prefix: (null)
2024+
EOF
2025+
test_repo 15 "$TRASH_DIRECTORY/15/.git" .
2026+
'
2027+
2028+
test_expect_failure '#15: GIT_DIR(rel), GIT_WORKTREE=root in subdir' '
2029+
cat >15/sub/sub/expected <<EOF &&
2030+
setup: git_dir: $TRASH_DIRECTORY/15.git
2031+
setup: worktree: $TRASH_DIRECTORY/15
2032+
setup: cwd: $TRASH_DIRECTORY/15
2033+
setup: prefix: sub/sub/
2034+
EOF
2035+
test_repo 15/sub/sub ../../.git "$TRASH_DIRECTORY/15"
2036+
'
2037+
2038+
test_expect_failure '#15: GIT_DIR(rel), GIT_WORKTREE=root(rel) in subdir' '
2039+
cat >15/sub/sub/expected <<EOF &&
2040+
setup: git_dir: $TRASH_DIRECTORY/15.git
2041+
setup: worktree: $TRASH_DIRECTORY/15
2042+
setup: cwd: $TRASH_DIRECTORY/15
2043+
setup: prefix: sub/sub/
2044+
EOF
2045+
test_repo 15/sub/sub ../../.git ../..
2046+
'
2047+
2048+
test_expect_failure '#15: GIT_DIR, GIT_WORKTREE=root in subdir' '
2049+
cat >15/sub/expected <<EOF &&
2050+
setup: git_dir: $TRASH_DIRECTORY/15.git
2051+
setup: worktree: $TRASH_DIRECTORY/15
2052+
setup: cwd: $TRASH_DIRECTORY/15
2053+
setup: prefix: sub/
2054+
EOF
2055+
test_repo 15/sub "$TRASH_DIRECTORY/15/.git" "$TRASH_DIRECTORY/15"
2056+
'
2057+
2058+
test_expect_failure '#15: GIT_DIR, GIT_WORKTREE=root(rel) in subdir' '
2059+
cat >15/sub/sub/expected <<EOF &&
2060+
setup: git_dir: $TRASH_DIRECTORY/15.git
2061+
setup: worktree: $TRASH_DIRECTORY/15
2062+
setup: cwd: $TRASH_DIRECTORY/15
2063+
setup: prefix: sub/sub/
2064+
EOF
2065+
test_repo 15/sub/sub "$TRASH_DIRECTORY/15/.git" ../..
2066+
'
2067+
2068+
test_expect_failure '#15: GIT_DIR(rel), GIT_WORK_TREE=wt at root' '
2069+
cat >15/expected <<EOF &&
2070+
setup: git_dir: $TRASH_DIRECTORY/15.git
2071+
setup: worktree: $TRASH_DIRECTORY/15/wt
2072+
setup: cwd: $TRASH_DIRECTORY/15
2073+
setup: prefix: (null)
2074+
EOF
2075+
test_repo 15 .git "$TRASH_DIRECTORY/15/wt"
2076+
'
2077+
2078+
test_expect_failure '#15: GIT_DIR(rel), GIT_WORK_TREE=wt(rel) at root' '
2079+
cat >15/expected <<EOF &&
2080+
setup: git_dir: $TRASH_DIRECTORY/15.git
2081+
setup: worktree: $TRASH_DIRECTORY/15/wt
2082+
setup: cwd: $TRASH_DIRECTORY/15
2083+
setup: prefix: (null)
2084+
EOF
2085+
test_repo 15 .git wt
2086+
'
2087+
2088+
test_expect_failure '#15: GIT_DIR, GIT_WORK_TREE=wt(rel) at root' '
2089+
cat >15/expected <<EOF &&
2090+
setup: git_dir: $TRASH_DIRECTORY/15.git
2091+
setup: worktree: $TRASH_DIRECTORY/15/wt
2092+
setup: cwd: $TRASH_DIRECTORY/15
2093+
setup: prefix: (null)
2094+
EOF
2095+
test_repo 15 "$TRASH_DIRECTORY/15/.git" wt
2096+
'
2097+
2098+
test_expect_failure '#15: GIT_DIR, GIT_WORK_TREE=wt at root' '
2099+
cat >15/expected <<EOF &&
2100+
setup: git_dir: $TRASH_DIRECTORY/15.git
2101+
setup: worktree: $TRASH_DIRECTORY/15/wt
2102+
setup: cwd: $TRASH_DIRECTORY/15
2103+
setup: prefix: (null)
2104+
EOF
2105+
test_repo 15 "$TRASH_DIRECTORY/15/.git" "$TRASH_DIRECTORY/15/wt"
2106+
'
2107+
2108+
test_expect_failure '#15: GIT_DIR(rel), GIT_WORK_TREE=wt in subdir' '
2109+
cat >15/sub/sub/expected <<EOF &&
2110+
setup: git_dir: $TRASH_DIRECTORY/15.git
2111+
setup: worktree: $TRASH_DIRECTORY/15/wt
2112+
setup: cwd: $TRASH_DIRECTORY/15/sub/sub
2113+
setup: prefix: (null)
2114+
EOF
2115+
test_repo 15/sub/sub ../../.git "$TRASH_DIRECTORY/15/wt"
2116+
'
2117+
2118+
test_expect_failure '#15: GIT_DIR(rel), GIT_WORK_TREE=wt(rel) in subdir' '
2119+
cat >15/sub/sub/expected <<EOF &&
2120+
setup: git_dir: $TRASH_DIRECTORY/15.git
2121+
setup: worktree: $TRASH_DIRECTORY/15/wt
2122+
setup: cwd: $TRASH_DIRECTORY/15/sub/sub
2123+
setup: prefix: (null)
2124+
EOF
2125+
test_repo 15/sub/sub ../../.git ../../wt
2126+
'
2127+
2128+
test_expect_failure '#15: GIT_DIR, GIT_WORK_TREE=wt(rel) in subdir' '
2129+
cat >15/sub/sub/expected <<EOF &&
2130+
setup: git_dir: $TRASH_DIRECTORY/15.git
2131+
setup: worktree: $TRASH_DIRECTORY/15/wt
2132+
setup: cwd: $TRASH_DIRECTORY/15/sub/sub
2133+
setup: prefix: (null)
2134+
EOF
2135+
test_repo 15/sub/sub "$TRASH_DIRECTORY/15/.git" ../../wt
2136+
'
2137+
2138+
test_expect_failure '#15: GIT_DIR, GIT_WORK_TREE=wt in subdir' '
2139+
cat >15/sub/sub/expected <<EOF &&
2140+
setup: git_dir: $TRASH_DIRECTORY/15.git
2141+
setup: worktree: $TRASH_DIRECTORY/15/wt
2142+
setup: cwd: $TRASH_DIRECTORY/15/sub/sub
2143+
setup: prefix: (null)
2144+
EOF
2145+
test_repo 15/sub/sub "$TRASH_DIRECTORY/15/.git" "$TRASH_DIRECTORY/15/wt"
2146+
'
2147+
2148+
test_expect_failure '#15: GIT_DIR(rel), GIT_WORK_TREE=.. at root' '
2149+
cat >15/expected <<EOF &&
2150+
setup: git_dir: $TRASH_DIRECTORY/15.git
2151+
setup: worktree: $TRASH_DIRECTORY
2152+
setup: cwd: $TRASH_DIRECTORY
2153+
setup: prefix: 15/
2154+
EOF
2155+
test_repo 15 .git "$TRASH_DIRECTORY"
2156+
'
2157+
2158+
test_expect_failure '#15: GIT_DIR(rel), GIT_WORK_TREE=..(rel) at root' '
2159+
cat >15/expected <<EOF &&
2160+
setup: git_dir: $TRASH_DIRECTORY/15.git
2161+
setup: worktree: $TRASH_DIRECTORY
2162+
setup: cwd: $TRASH_DIRECTORY
2163+
setup: prefix: 15/
2164+
EOF
2165+
test_repo 15 .git ..
2166+
'
2167+
2168+
test_expect_failure '#15: GIT_DIR, GIT_WORK_TREE=..(rel) at root' '
2169+
cat >15/expected <<EOF &&
2170+
setup: git_dir: $TRASH_DIRECTORY/15.git
2171+
setup: worktree: $TRASH_DIRECTORY
2172+
setup: cwd: $TRASH_DIRECTORY
2173+
setup: prefix: 15/
2174+
EOF
2175+
test_repo 15 "$TRASH_DIRECTORY/15/.git" ..
2176+
'
2177+
2178+
test_expect_failure '#15: GIT_DIR, GIT_WORK_TREE=.. at root' '
2179+
cat >15/expected <<EOF &&
2180+
setup: git_dir: $TRASH_DIRECTORY/15.git
2181+
setup: worktree: $TRASH_DIRECTORY
2182+
setup: cwd: $TRASH_DIRECTORY
2183+
setup: prefix: 15/
2184+
EOF
2185+
test_repo 15 "$TRASH_DIRECTORY/15/.git" "$TRASH_DIRECTORY"
2186+
'
2187+
2188+
test_expect_failure '#15: GIT_DIR(rel), GIT_WORK_TREE=.. in subdir' '
2189+
cat >15/sub/sub/expected <<EOF &&
2190+
setup: git_dir: $TRASH_DIRECTORY/15.git
2191+
setup: worktree: $TRASH_DIRECTORY
2192+
setup: cwd: $TRASH_DIRECTORY
2193+
setup: prefix: 15/sub/sub/
2194+
EOF
2195+
test_repo 15/sub/sub ../../.git "$TRASH_DIRECTORY"
2196+
'
2197+
2198+
test_expect_failure '#15: GIT_DIR(rel), GIT_WORK_TREE=..(rel) in subdir' '
2199+
cat >15/sub/sub/expected <<EOF &&
2200+
setup: git_dir: $TRASH_DIRECTORY/15.git
2201+
setup: worktree: $TRASH_DIRECTORY
2202+
setup: cwd: $TRASH_DIRECTORY
2203+
setup: prefix: 15/sub/sub/
2204+
EOF
2205+
test_repo 15/sub/sub ../../.git ../../..
2206+
'
2207+
2208+
test_expect_failure '#15: GIT_DIR, GIT_WORK_TREE=..(rel) in subdir' '
2209+
cat >15/sub/sub/expected <<EOF &&
2210+
setup: git_dir: $TRASH_DIRECTORY/15.git
2211+
setup: worktree: $TRASH_DIRECTORY
2212+
setup: cwd: $TRASH_DIRECTORY
2213+
setup: prefix: 15/sub/sub/
2214+
EOF
2215+
test_repo 15/sub/sub "$TRASH_DIRECTORY/15/.git" ../../../
2216+
'
2217+
2218+
test_expect_failure '#15: GIT_DIR, GIT_WORK_TREE=.. in subdir' '
2219+
cat >15/sub/sub/expected <<EOF &&
2220+
setup: git_dir: $TRASH_DIRECTORY/15.git
2221+
setup: worktree: $TRASH_DIRECTORY
2222+
setup: cwd: $TRASH_DIRECTORY
2223+
setup: prefix: 15/sub/sub/
2224+
EOF
2225+
test_repo 15/sub/sub "$TRASH_DIRECTORY/15/.git" "$TRASH_DIRECTORY"
2226+
'
2227+
19602228
test_done

0 commit comments

Comments
 (0)