#!/bin/sh global test_description := ''git archive attribute pattern tests'' source ./test-lib.sh proc test_expect_exists { test_expect_success " $1 exists" "test -e $1" } proc test_expect_missing { test_expect_success " $1 does not exist" "test ! -e $1" } test_expect_success 'setup' ' echo ignored >ignored && echo ignored export-ignore >>.git/info/attributes && git add ignored && mkdir not-ignored-dir && echo ignored-in-tree >not-ignored-dir/ignored && echo not-ignored-in-tree >not-ignored-dir/ignored-only-if-dir && git add not-ignored-dir && mkdir ignored-only-if-dir && echo ignored by ignored dir >ignored-only-if-dir/ignored-by-ignored-dir && echo ignored-only-if-dir/ export-ignore >>.git/info/attributes && git add ignored-only-if-dir && mkdir -p ignored-without-slash && echo "ignored without slash" >ignored-without-slash/foo && git add ignored-without-slash/foo && echo "ignored-without-slash export-ignore" >>.git/info/attributes && mkdir -p wildcard-without-slash && echo "ignored without slash" >wildcard-without-slash/foo && git add wildcard-without-slash/foo && echo "wild*-without-slash export-ignore" >>.git/info/attributes && mkdir -p deep/and/slashless && echo "ignored without slash" >deep/and/slashless/foo && git add deep/and/slashless/foo && echo "deep/and/slashless export-ignore" >>.git/info/attributes && mkdir -p deep/with/wildcard && echo "ignored without slash" >deep/with/wildcard/foo && git add deep/with/wildcard/foo && echo "deep/*t*/wildcard export-ignore" >>.git/info/attributes && mkdir -p one-level-lower/two-levels-lower/ignored-only-if-dir && echo ignored by ignored dir >one-level-lower/two-levels-lower/ignored-only-if-dir/ignored-by-ignored-dir && git add one-level-lower && git commit -m. && git clone --bare . bare && cp .git/info/attributes bare/info/attributes ' test_expect_success 'git archive' ' git archive HEAD >archive.tar && (mkdir archive && cd archive && "$TAR" xf -) )} spids: [4] ) ] spids: [4] ) (C {(.)} {(./test-lib.sh)}) (FuncDef name: test_expect_exists body: (BraceGroup children: [ (C {(test_expect_success)} {(DQ (" ") ($ VSub_Number "$1") (" exists"))} {(DQ ("test -e ") ($ VSub_Number "$1"))} ) ] spids: [19] ) spids: [15 18] ) (FuncDef name: test_expect_missing body: (BraceGroup children: [ (C {(test_expect_success)} {(DQ (" ") ($ VSub_Number "$1") (" does not exist"))} {(DQ ("test ! -e ") ($ VSub_Number "$1"))} ) ] spids: [42] ) spids: [38 41] ) (C {(test_expect_success)} {(SQ )} { (SQ <"\n"> <"\techo ignored >ignored &&\n"> <"\techo ignored export-ignore >>.git/info/attributes &&\n"> <"\tgit add ignored &&\n"> <"\n"> <"\tmkdir not-ignored-dir &&\n"> <"\techo ignored-in-tree >not-ignored-dir/ignored &&\n"> <"\techo not-ignored-in-tree >not-ignored-dir/ignored-only-if-dir &&\n"> <"\tgit add not-ignored-dir &&\n"> <"\n"> <"\tmkdir ignored-only-if-dir &&\n"> <"\techo ignored by ignored dir >ignored-only-if-dir/ignored-by-ignored-dir &&\n"> <"\techo ignored-only-if-dir/ export-ignore >>.git/info/attributes &&\n"> <"\tgit add ignored-only-if-dir &&\n"> <"\n"> <"\tmkdir -p ignored-without-slash &&\n"> <"\techo \"ignored without slash\" >ignored-without-slash/foo &&\n"> <"\tgit add ignored-without-slash/foo &&\n"> <"\techo \"ignored-without-slash export-ignore\" >>.git/info/attributes &&\n"> <"\n"> <"\tmkdir -p wildcard-without-slash &&\n"> <"\techo \"ignored without slash\" >wildcard-without-slash/foo &&\n"> <"\tgit add wildcard-without-slash/foo &&\n"> <"\techo \"wild*-without-slash export-ignore\" >>.git/info/attributes &&\n"> <"\n"> <"\tmkdir -p deep/and/slashless &&\n"> <"\techo \"ignored without slash\" >deep/and/slashless/foo &&\n"> <"\tgit add deep/and/slashless/foo &&\n"> <"\techo \"deep/and/slashless export-ignore\" >>.git/info/attributes &&\n"> <"\n"> <"\tmkdir -p deep/with/wildcard &&\n"> <"\techo \"ignored without slash\" >deep/with/wildcard/foo &&\n"> <"\tgit add deep/with/wildcard/foo &&\n"> <"\techo \"deep/*t*/wildcard export-ignore\" >>.git/info/attributes &&\n"> <"\n"> <"\tmkdir -p one-level-lower/two-levels-lower/ignored-only-if-dir &&\n"> < "\techo ignored by ignored dir >one-level-lower/two-levels-lower/ignored-only-if-dir/ignored-by-ignored-dir &&\n" > <"\tgit add one-level-lower &&\n"> <"\n"> <"\tgit commit -m. &&\n"> <"\n"> <"\tgit clone --bare . bare &&\n"> <"\tcp .git/info/attributes bare/info/attributes\n"> ) } ) (C {(test_expect_success)} {(SQ <"git archive">)} { (SQ <"\n"> <"\tgit archive HEAD >archive.tar &&\n"> <"\t(mkdir archive && cd archive && \"$TAR\" xf -) ) } ) (C {(test_expect_missing)} {(archive/ignored)}) (C {(test_expect_missing)} {(archive/not-ignored-dir/ignored)}) (C {(test_expect_exists)} {(archive/not-ignored-dir/ignored-only-if-dir)}) (C {(test_expect_exists)} {(archive/not-ignored-dir/)}) (C {(test_expect_missing)} {(archive/ignored-only-if-dir/)}) (C {(test_expect_missing)} {(archive/ignored-ony-if-dir/ignored-by-ignored-dir)}) (AndOr children: [ (C {(test_expect_missing)} {(archive/ignored-without-slash/)}) (AndOr children: [ (C {(test_expect_missing)} {(archive/ignored-without-slash/foo)}) (C {(test_expect_missing)} {(archive/wildcard-without-slash/)}) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) (AndOr children: [ (C {(test_expect_missing)} {(archive/wildcard-without-slash/foo)}) (AndOr children: [ (C {(test_expect_missing)} {(archive/deep/and/slashless/)}) (AndOr children: [ (C {(test_expect_missing)} {(archive/deep/and/slashless/foo)}) (AndOr children: [ (C {(test_expect_missing)} {(archive/deep/with/wildcard/)}) (AndOr children: [ (C {(test_expect_missing)} {(archive/deep/with/wildcard/foo)}) (C {(test_expect_exists)} {(archive/one-level-lower/)}) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) (C {(test_expect_missing)} {(archive/one-level-lower/two-levels-lower/ignored-only-if-dir/)}) (C {(test_expect_missing)} {(archive/one-level-lower/two-levels-lower/ignored-ony-if-dir/ignored-by-ignored-dir)} ) (C {(test_done)}) ] )