(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test_description) op: assign_op.Equal rhs: { (SQ (Token id: Id.Lit_Chars val: 'Test Git when git repository is located at root\n' span_id: 6 ) (Token id:Id.Lit_Chars val:'\n' span_id:7) (Token id: Id.Lit_Chars val: 'This test requires write access in root. Do not bother if you do not\n' span_id: 8 ) (Token id:Id.Lit_Chars val:'have a throwaway chroot or VM.\n' span_id:9) (Token id:Id.Lit_Chars val:'\n' span_id:10) (Token id: Id.Lit_Chars val: 'Script t1509/prepare-chroot.sh may help you setup chroot, then you\n' span_id: 11 ) (Token id:Id.Lit_Chars val:'can chroot in and execute this test from there.\n' span_id:12) ) } spids: [4] ) ] ) (C {(.)} {(./test-lib.sh)}) (command.ShFunction name: test_cmp_val body: (command.BraceGroup children: [ (command.Simple words: [{(echo)} {(DQ ($ Id.VSub_Number '$1'))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:34) fd: -1 arg_word: {(expected)} ) ] ) (command.Simple words: [{(echo)} {(DQ ($ Id.VSub_Number '$2'))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:45) fd: -1 arg_word: {(result)} ) ] ) (C {(test_cmp)} {(expected)} {(result)}) ] ) ) (command.ShFunction name: test_vars body: (command.BraceGroup children: [ (C {(test_expect_success)} {(DQ ($ Id.VSub_Number '$1') (': gitdir'))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:74) (Token id:Id.Lit_Chars val:'\t\ttest_cmp_val "' span_id:75) ) (DQ ($ Id.VSub_Number '$2')) (SQ (Token id:Id.Lit_Chars val:'" "$(git rev-parse --git-dir)"\n' span_id:81) (Token id:Id.Lit_Chars val:'\t' span_id:82) ) } ) (C {(test_expect_success)} {(DQ ($ Id.VSub_Number '$1') (': worktree'))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:95) (Token id:Id.Lit_Chars val:'\t\ttest_cmp_val "' span_id:96) ) (DQ ($ Id.VSub_Number '$3')) (SQ (Token id:Id.Lit_Chars val:'" "$(git rev-parse --show-toplevel)"\n' span_id:102) (Token id:Id.Lit_Chars val:'\t' span_id:103) ) } ) (C {(test_expect_success)} {(DQ ($ Id.VSub_Number '$1') (': prefix'))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:116) (Token id:Id.Lit_Chars val:'\t\ttest_cmp_val "' span_id:117) ) (DQ ($ Id.VSub_Number '$4')) (SQ (Token id:Id.Lit_Chars val:'" "$(git rev-parse --show-prefix)"\n' span_id:123) (Token id:Id.Lit_Chars val:'\t' span_id:124) ) } ) ] ) ) (command.ShFunction name: test_foobar_root body: (command.BraceGroup children: [ (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'add relative' span_id:140))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:144) (Token id: Id.Lit_Chars val: '\t\ttest -z "$(cd / && git ls-files)" &&\n' span_id: 145 ) (Token id:Id.Lit_Chars val:'\t\tgit add foo/foome &&\n' span_id:146) (Token id: Id.Lit_Chars val: '\t\tgit add foo/bar/barme &&\n' span_id: 147 ) (Token id:Id.Lit_Chars val:'\t\tgit add me &&\n' span_id:148) (Token id: Id.Lit_Chars val: '\t\t( cd / && git ls-files --stage ) > result &&\n' span_id: 149 ) (Token id:Id.Lit_Chars val:'\t\ttest_cmp /ls.expected result &&\n' span_id:150) (Token id: Id.Lit_Chars val: '\t\trm "$(git rev-parse --git-dir)/index"\n' span_id: 151 ) (Token id:Id.Lit_Chars val:'\t' span_id:152) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'add absolute' span_id:160))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:164) (Token id: Id.Lit_Chars val: '\t\ttest -z "$(cd / && git ls-files)" &&\n' span_id: 165 ) (Token id:Id.Lit_Chars val:'\t\tgit add /foo/foome &&\n' span_id:166) (Token id: Id.Lit_Chars val: '\t\tgit add /foo/bar/barme &&\n' span_id: 167 ) (Token id:Id.Lit_Chars val:'\t\tgit add /me &&\n' span_id:168) (Token id: Id.Lit_Chars val: '\t\t( cd / && git ls-files --stage ) > result &&\n' span_id: 169 ) (Token id:Id.Lit_Chars val:'\t\ttest_cmp /ls.expected result &&\n' span_id:170) (Token id: Id.Lit_Chars val: '\t\trm "$(git rev-parse --git-dir)/index"\n' span_id: 171 ) (Token id:Id.Lit_Chars val:'\t' span_id:172) ) } ) ] ) ) (command.ShFunction name: test_foobar_foo body: (command.BraceGroup children: [ (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'add relative' span_id:189))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:193) (Token id: Id.Lit_Chars val: '\t\ttest -z "$(cd / && git ls-files)" &&\n' span_id: 194 ) (Token id:Id.Lit_Chars val:'\t\tgit add foome &&\n' span_id:195) (Token id: Id.Lit_Chars val: '\t\tgit add bar/barme &&\n' span_id: 196 ) (Token id:Id.Lit_Chars val:'\t\tgit add ../me &&\n' span_id:197) (Token id: Id.Lit_Chars val: '\t\t( cd / && git ls-files --stage ) > result &&\n' span_id: 198 ) (Token id:Id.Lit_Chars val:'\t\ttest_cmp /ls.expected result &&\n' span_id:199) (Token id: Id.Lit_Chars val: '\t\trm "$(git rev-parse --git-dir)/index"\n' span_id: 200 ) (Token id:Id.Lit_Chars val:'\t' span_id:201) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'add absolute' span_id:209))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:213) (Token id: Id.Lit_Chars val: '\t\ttest -z "$(cd / && git ls-files)" &&\n' span_id: 214 ) (Token id:Id.Lit_Chars val:'\t\tgit add /foo/foome &&\n' span_id:215) (Token id: Id.Lit_Chars val: '\t\tgit add /foo/bar/barme &&\n' span_id: 216 ) (Token id:Id.Lit_Chars val:'\t\tgit add /me &&\n' span_id:217) (Token id: Id.Lit_Chars val: '\t\t( cd / && git ls-files --stage ) > result &&\n' span_id: 218 ) (Token id:Id.Lit_Chars val:'\t\ttest_cmp /ls.expected result &&\n' span_id:219) (Token id: Id.Lit_Chars val: '\t\trm "$(git rev-parse --git-dir)/index"\n' span_id: 220 ) (Token id:Id.Lit_Chars val:'\t' span_id:221) ) } ) ] ) ) (command.ShFunction name: test_foobar_foobar body: (command.BraceGroup children: [ (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'add relative' span_id:237))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:241) (Token id: Id.Lit_Chars val: '\t\ttest -z "$(cd / && git ls-files)" &&\n' span_id: 242 ) (Token id:Id.Lit_Chars val:'\t\tgit add ../foome &&\n' span_id:243) (Token id:Id.Lit_Chars val:'\t\tgit add barme &&\n' span_id:244) (Token id:Id.Lit_Chars val:'\t\tgit add ../../me &&\n' span_id:245) (Token id: Id.Lit_Chars val: '\t\t( cd / && git ls-files --stage ) > result &&\n' span_id: 246 ) (Token id:Id.Lit_Chars val:'\t\ttest_cmp /ls.expected result &&\n' span_id:247) (Token id: Id.Lit_Chars val: '\t\trm "$(git rev-parse --git-dir)/index"\n' span_id: 248 ) (Token id:Id.Lit_Chars val:'\t' span_id:249) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'add absolute' span_id:257))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:261) (Token id: Id.Lit_Chars val: '\t\ttest -z "$(cd / && git ls-files)" &&\n' span_id: 262 ) (Token id:Id.Lit_Chars val:'\t\tgit add /foo/foome &&\n' span_id:263) (Token id: Id.Lit_Chars val: '\t\tgit add /foo/bar/barme &&\n' span_id: 264 ) (Token id:Id.Lit_Chars val:'\t\tgit add /me &&\n' span_id:265) (Token id: Id.Lit_Chars val: '\t\t( cd / && git ls-files --stage ) > result &&\n' span_id: 266 ) (Token id:Id.Lit_Chars val:'\t\ttest_cmp /ls.expected result &&\n' span_id:267) (Token id: Id.Lit_Chars val: '\t\trm "$(git rev-parse --git-dir)/index"\n' span_id: 268 ) (Token id:Id.Lit_Chars val:'\t' span_id:269) ) } ) ] ) ) (command.If arms: [ (if_arm cond: [(command.Pipeline children:[(C {(test)} {(-w)} {(/)})] negated:T)] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:skip_all) op: assign_op.Equal rhs: {(DQ ('Test requiring writable / skipped. Read this test if you want to run it'))} spids: [288] ) ] ) (C {(test_done)}) ] spids: [275 285] ) ] ) (command.If arms: [ (if_arm cond: [ (command.AndOr ops: [Id.Op_DPipe Id.Op_DPipe Id.Op_DPipe Id.Op_DPipe Id.Op_DPipe Id.Op_DPipe] children: [ (C {(test)} {(-e)} {(/refs)}) (C {(test)} {(-e)} {(/objects)}) (C {(test)} {(-e)} {(/info)}) (C {(test)} {(-e)} {(/hooks)}) (C {(test)} {(-e)} {(/.git)}) (C {(test)} {(-e)} {(/foo)}) (C {(test)} {(-e)} {(/me)}) ] ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:skip_all) op: assign_op.Equal rhs: {(DQ ('Skip test that clobbers existing files in /'))} spids: [359] ) ] ) (C {(test_done)}) ] spids: [299 356] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$IKNOWWHATIAMDOING'))} {(Id.KW_Bang '!') (Id.Lit_Equals '=')} {(DQ (YES))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:386) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:skip_all) op: assign_op.Equal rhs: {(DQ ('You must set env var IKNOWWHATIAMDOING=YES in order to run this test'))} spids: [391] ) ] ) (C {(test_done)}) ] spids: [370 388] ) ] ) (command.If arms: [ (if_arm cond: [(command.Pipeline children:[(C {(test_have_prereq)} {(NOT_ROOT)})] negated:T)] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:skip_all) op: assign_op.Equal rhs: {(DQ ("No you can't run this as root"))} spids: [413] ) ] ) (C {(test_done)}) ] spids: [402 410] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ONE_SHA1) op: assign_op.Equal rhs: {(d00491fd7e5bb6fa28c517a0bb32b8b506539d4d)} spids: [424] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:setup span_id:431))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:435) (Token id:Id.Lit_Chars val:'\trm -rf /foo &&\n' span_id:436) (Token id:Id.Lit_Chars val:'\tmkdir /foo &&\n' span_id:437) (Token id:Id.Lit_Chars val:'\tmkdir /foo/bar &&\n' span_id:438) (Token id:Id.Lit_Chars val:'\techo 1 > /foo/foome &&\n' span_id:439) (Token id:Id.Lit_Chars val:'\techo 1 > /foo/bar/barme &&\n' span_id:440) (Token id:Id.Lit_Chars val:'\techo 1 > /me\n' span_id:441) ) } ) (C {(say)} {(DQ ('GIT_DIR absolute, GIT_WORK_TREE set'))}) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'go to /' span_id:455))} {(SQ (Token id:Id.Lit_Chars val:'cd /' span_id:459))} ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:465) fd: -1 arg_word: {(ls.expected)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:468) fd: -1 here_begin: {(EOF)} here_end_span_id: 481 stdin_parts: [ ('100644 ') ($ Id.VSub_DollarName '$ONE_SHA1') (' 0\tfoo/bar/barme\n') ('100644 ') ($ Id.VSub_DollarName '$ONE_SHA1') (' 0\tfoo/foome\n') ('100644 ') ($ Id.VSub_DollarName '$ONE_SHA1') (' 0\tme\n') ] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_DIR) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$TRASH_DIRECTORY') (/.git))} spids: [483] ) ] ) (C {(export)} {(GIT_DIR)}) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_WORK_TREE) op: assign_op.Equal rhs: {(/)} spids: [495] ) ] ) (C {(export)} {(GIT_WORK_TREE)}) ] ) (C {(test_vars)} {(SQ (Token id:Id.Lit_Chars val:'abs gitdir, root' span_id:508))} {(DQ ($ Id.VSub_DollarName '$GIT_DIR'))} {(DQ (/))} {(DQ )} ) (C {(test_foobar_root)}) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'go to /foo' span_id:528))} {(SQ (Token id:Id.Lit_Chars val:'cd /foo' span_id:532))} ) (C {(test_vars)} {(SQ (Token id:Id.Lit_Chars val:'abs gitdir, foo' span_id:539))} {(DQ ($ Id.VSub_DollarName '$GIT_DIR'))} {(DQ (/))} {(DQ (foo/))} ) (C {(test_foobar_foo)}) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'go to /foo/bar' span_id:560))} {(SQ (Token id:Id.Lit_Chars val:'cd /foo/bar' span_id:564))} ) (C {(test_vars)} {(SQ (Token id:Id.Lit_Chars val:'abs gitdir, foo/bar' span_id:571))} {(DQ ($ Id.VSub_DollarName '$GIT_DIR'))} {(DQ (/))} {(DQ (foo/bar/))} ) (C {(test_foobar_foobar)}) (C {(say)} {(DQ ('GIT_DIR relative, GIT_WORK_TREE set'))}) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'go to /' span_id:599))} {(SQ (Token id:Id.Lit_Chars val:'cd /' span_id:603))} ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_DIR) op: assign_op.Equal rhs: { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:609) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {($ Id.VSub_DollarName '$TRASH_DIRECTORY')}) (C {(sed)} {(SQ (Token id:Id.Lit_Chars val:'s,^/,,' span_id:617))}) ] negated: F ) ] ) ) (/.git) ) } spids: [607] ) ] ) (C {(export)} {(GIT_DIR)}) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_WORK_TREE) op: assign_op.Equal rhs: {(/)} spids: [629] ) ] ) (C {(export)} {(GIT_WORK_TREE)}) ] ) (C {(test_vars)} {(SQ (Token id:Id.Lit_Chars val:'rel gitdir, root' span_id:642))} {(DQ ($ Id.VSub_DollarName '$GIT_DIR'))} {(DQ (/))} {(DQ )} ) (C {(test_foobar_root)}) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'go to /foo' span_id:662))} {(SQ (Token id:Id.Lit_Chars val:'cd /foo' span_id:666))} ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_DIR) op: assign_op.Equal rhs: {(DQ (../) ($ Id.VSub_DollarName '$TRASH_DIRECTORY') (/.git))} spids: [670] ) ] ) (C {(export)} {(GIT_DIR)}) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_WORK_TREE) op: assign_op.Equal rhs: {(/)} spids: [683] ) ] ) (C {(export)} {(GIT_WORK_TREE)}) ] ) (C {(test_vars)} {(SQ (Token id:Id.Lit_Chars val:'rel gitdir, foo' span_id:696))} {(DQ ($ Id.VSub_DollarName '$TRASH_DIRECTORY') (/.git))} {(DQ (/))} {(DQ (foo/))} ) (C {(test_foobar_foo)}) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'go to /foo/bar' span_id:718))} {(SQ (Token id:Id.Lit_Chars val:'cd /foo/bar' span_id:722))} ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_DIR) op: assign_op.Equal rhs: {(DQ (../../) ($ Id.VSub_DollarName '$TRASH_DIRECTORY') (/.git))} spids: [726] ) ] ) (C {(export)} {(GIT_DIR)}) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_WORK_TREE) op: assign_op.Equal rhs: {(/)} spids: [739] ) ] ) (C {(export)} {(GIT_WORK_TREE)}) ] ) (C {(test_vars)} {(SQ (Token id:Id.Lit_Chars val:'rel gitdir, foo/bar' span_id:752))} {(DQ ($ Id.VSub_DollarName '$TRASH_DIRECTORY') (/.git))} {(DQ (/))} {(DQ (foo/bar/))} ) (C {(test_foobar_foobar)}) (C {(say)} {(DQ ('GIT_DIR relative, GIT_WORK_TREE relative'))}) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'go to /' span_id:781))} {(SQ (Token id:Id.Lit_Chars val:'cd /' span_id:785))} ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_DIR) op: assign_op.Equal rhs: { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:791) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {($ Id.VSub_DollarName '$TRASH_DIRECTORY')}) (C {(sed)} {(SQ (Token id:Id.Lit_Chars val:'s,^/,,' span_id:799))}) ] negated: F ) ] ) ) (/.git) ) } spids: [789] ) ] ) (C {(export)} {(GIT_DIR)}) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_WORK_TREE) op: assign_op.Equal rhs: {(.)} spids: [811] ) ] ) (C {(export)} {(GIT_WORK_TREE)}) ] ) (C {(test_vars)} {(SQ (Token id:Id.Lit_Chars val:'rel gitdir, root' span_id:824))} {(DQ ($ Id.VSub_DollarName '$GIT_DIR'))} {(DQ (/))} {(DQ )} ) (C {(test_foobar_root)}) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'go to /' span_id:844))} {(SQ (Token id:Id.Lit_Chars val:'cd /foo' span_id:848))} ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_DIR) op: assign_op.Equal rhs: {(DQ (../) ($ Id.VSub_DollarName '$TRASH_DIRECTORY') (/.git))} spids: [852] ) ] ) (C {(export)} {(GIT_DIR)}) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_WORK_TREE) op: assign_op.Equal rhs: {(..)} spids: [865] ) ] ) (C {(export)} {(GIT_WORK_TREE)}) ] ) (C {(test_vars)} {(SQ (Token id:Id.Lit_Chars val:'rel gitdir, foo' span_id:878))} {(DQ ($ Id.VSub_DollarName '$TRASH_DIRECTORY') (/.git))} {(DQ (/))} {(DQ (foo/))} ) (C {(test_foobar_foo)}) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'go to /foo/bar' span_id:900))} {(SQ (Token id:Id.Lit_Chars val:'cd /foo/bar' span_id:904))} ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_DIR) op: assign_op.Equal rhs: {(DQ (../../) ($ Id.VSub_DollarName '$TRASH_DIRECTORY') (/.git))} spids: [908] ) ] ) (C {(export)} {(GIT_DIR)}) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GIT_WORK_TREE) op: assign_op.Equal rhs: {(../..)} spids: [921] ) ] ) (C {(export)} {(GIT_WORK_TREE)}) ] ) (C {(test_vars)} {(SQ (Token id:Id.Lit_Chars val:'rel gitdir, foo/bar' span_id:934))} {(DQ ($ Id.VSub_DollarName '$TRASH_DIRECTORY') (/.git))} {(DQ (/))} {(DQ (foo/bar/))} ) (C {(test_foobar_foobar)}) (C {(say)} {(DQ ('.git at root'))}) (C {(unset)} {(GIT_DIR)}) (C {(unset)} {(GIT_WORK_TREE)}) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'go to /' span_id:972))} {(SQ (Token id:Id.Lit_Chars val:'cd /' span_id:976))} ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:setup span_id:982))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:986) (Token id:Id.Lit_Chars val:'\trm -rf /.git &&\n' span_id:987) (Token id: Id.Lit_Chars val: '\techo "Initialized empty Git repository in /.git/" > expected &&\n' span_id: 988 ) (Token id:Id.Lit_Chars val:'\tgit init > result &&\n' span_id:989) (Token id:Id.Lit_Chars val:'\ttest_cmp expected result\n' span_id:990) ) } ) (C {(test_vars)} {(SQ (Token id:Id.Lit_Chars val:'auto gitdir, root' span_id:997))} {(DQ (.git))} {(DQ (/))} {(DQ )} ) (C {(test_foobar_root)}) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'go to /foo' span_id:1017))} {(SQ (Token id:Id.Lit_Chars val:'cd /foo' span_id:1021))} ) (C {(test_vars)} {(SQ (Token id:Id.Lit_Chars val:'auto gitdir, foo' span_id:1027))} {(DQ (/.git))} {(DQ (/))} {(DQ (foo/))} ) (C {(test_foobar_foo)}) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'go to /foo/bar' span_id:1048))} {(SQ (Token id:Id.Lit_Chars val:'cd /foo/bar' span_id:1052))} ) (C {(test_vars)} {(SQ (Token id:Id.Lit_Chars val:'auto gitdir, foo/bar' span_id:1058))} {(DQ (/.git))} {(DQ (/))} {(DQ (foo/bar/))} ) (C {(test_foobar_foobar)}) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:cleanup span_id:1079))} {(SQ (Token id:Id.Lit_Chars val:'rm -rf /.git' span_id:1083))} ) (C {(say)} {(DQ ('auto bare gitdir'))}) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:setup span_id:1100))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1104) (Token id: Id.Lit_Chars val: '\trm -rf /refs /objects /info /hooks &&\n' span_id: 1105 ) (Token id:Id.Lit_Chars val:'\trm -f /expected /ls.expected /me /result &&\n' span_id:1106) (Token id:Id.Lit_Chars val:'\tcd / &&\n' span_id:1107) (Token id: Id.Lit_Chars val: '\techo "Initialized empty Git repository in /" > expected &&\n' span_id: 1108 ) (Token id:Id.Lit_Chars val:'\tgit init --bare > result &&\n' span_id:1109) (Token id:Id.Lit_Chars val:'\ttest_cmp expected result\n' span_id:1110) ) } ) (C {(test_vars)} {(SQ (Token id:Id.Lit_Chars val:'auto gitdir, root' span_id:1117))} {(DQ (.))} {(DQ )} {(DQ )}) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'go to /foo' span_id:1134))} {(SQ (Token id:Id.Lit_Chars val:'cd /foo' span_id:1138))} ) (C {(test_vars)} {(SQ (Token id:Id.Lit_Chars val:'auto gitdir, root' span_id:1145))} {(DQ (/))} {(DQ )} {(DQ )}) (C {(test_done)}) ] )