(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) op: Equal rhs: {(SQ <"split index mode tests">)} spids: [4] ) ] spids: [4] ) (C {(.)} {(./test-lib.sh)}) (C {(sane_unset)} {(GIT_TEST_SPLIT_INDEX)}) (C {(test_expect_success)} {(SQ <"enable split index">)} { (SQ <"\n"> <"\tgit update-index --split-index &&\n"> <"\ttest-dump-split-index .git/index >actual &&\n"> <"\tindexversion=$(test-index-version <.git/index) &&\n"> <"\tif test \"$indexversion\" = \"4\"\n"> <"\tthen\n"> <"\t\town=432ef4b63f32193984f339431fd50ca796493569\n"> <"\t\tbase=508851a7f0dfa8691e9f69c7f055865389012491\n"> <"\telse\n"> <"\t\town=8299b0bcd1ac364e5f1d7768efb62fa2da79a339\n"> <"\t\tbase=39d890139ee5356c7ef572216cebcd27aa41f9df\n"> <"\tfi &&\n"> <"\tcat >expect <<EOF &&\n"> <"own $own\n"> <"base $base\n"> <"replacements:\n"> <"deletions:\n"> <"EOF\n"> <"\ttest_cmp expect actual\n"> ) } ) (C {(test_expect_success)} {(SQ <"add one file">)} { (SQ <"\n"> <"\t: >one &&\n"> <"\tgit update-index --add one &&\n"> <"\tgit ls-files --stage >ls-files.actual &&\n"> <"\tcat >ls-files.expect <<EOF &&\n"> <"100644 $EMPTY_BLOB 0\tone\n"> <"EOF\n"> <"\ttest_cmp ls-files.expect ls-files.actual &&\n"> <"\n"> <"\ttest-dump-split-index .git/index | sed \"/^own/d\" >actual &&\n"> <"\tcat >expect <<EOF &&\n"> <"base $base\n"> <"100644 $EMPTY_BLOB 0\tone\n"> <"replacements:\n"> <"deletions:\n"> <"EOF\n"> <"\ttest_cmp expect actual\n"> ) } ) (C {(test_expect_success)} {(SQ <"disable split index">)} { (SQ <"\n"> <"\tgit update-index --no-split-index &&\n"> <"\tgit ls-files --stage >ls-files.actual &&\n"> <"\tcat >ls-files.expect <<EOF &&\n"> <"100644 $EMPTY_BLOB 0\tone\n"> <"EOF\n"> <"\ttest_cmp ls-files.expect ls-files.actual &&\n"> <"\n"> <"\tBASE=$(test-dump-split-index .git/index | grep \"^own\" | sed \"s/own/base/\") &&\n"> <"\ttest-dump-split-index .git/index | sed \"/^own/d\" >actual &&\n"> <"\tcat >expect <<EOF &&\n"> <"not a split index\n"> <"EOF\n"> <"\ttest_cmp expect actual\n"> ) } ) (C {(test_expect_success)} {(SQ <"enable split index again, \"one\" now belongs to base index\"">)} { (SQ <"\n"> <"\tgit update-index --split-index &&\n"> <"\tgit ls-files --stage >ls-files.actual &&\n"> <"\tcat >ls-files.expect <<EOF &&\n"> <"100644 $EMPTY_BLOB 0\tone\n"> <"EOF\n"> <"\ttest_cmp ls-files.expect ls-files.actual &&\n"> <"\n"> <"\ttest-dump-split-index .git/index | sed \"/^own/d\" >actual &&\n"> <"\tcat >expect <<EOF &&\n"> <"$BASE\n"> <"replacements:\n"> <"deletions:\n"> <"EOF\n"> <"\ttest_cmp expect actual\n"> ) } ) (C {(test_expect_success)} {(SQ <"modify original file, base index untouched">)} { (SQ <"\n"> <"\techo modified >one &&\n"> <"\tgit update-index one &&\n"> <"\tgit ls-files --stage >ls-files.actual &&\n"> <"\tcat >ls-files.expect <<EOF &&\n"> <"100644 2e0996000b7e9019eabcad29391bf0f5c7702f0b 0\tone\n"> <"EOF\n"> <"\ttest_cmp ls-files.expect ls-files.actual &&\n"> <"\n"> <"\ttest-dump-split-index .git/index | sed \"/^own/d\" >actual &&\n"> <"\tq_to_tab >expect <<EOF &&\n"> <"$BASE\n"> <"100644 2e0996000b7e9019eabcad29391bf0f5c7702f0b 0Q\n"> <"replacements: 0\n"> <"deletions:\n"> <"EOF\n"> <"\ttest_cmp expect actual\n"> ) } ) (C {(test_expect_success)} {(SQ <"add another file, which stays index">)} { (SQ <"\n"> <"\t: >two &&\n"> <"\tgit update-index --add two &&\n"> <"\tgit ls-files --stage >ls-files.actual &&\n"> <"\tcat >ls-files.expect <<EOF &&\n"> <"100644 2e0996000b7e9019eabcad29391bf0f5c7702f0b 0\tone\n"> <"100644 $EMPTY_BLOB 0\ttwo\n"> <"EOF\n"> <"\ttest_cmp ls-files.expect ls-files.actual &&\n"> <"\n"> <"\ttest-dump-split-index .git/index | sed \"/^own/d\" >actual &&\n"> <"\tq_to_tab >expect <<EOF &&\n"> <"$BASE\n"> <"100644 2e0996000b7e9019eabcad29391bf0f5c7702f0b 0Q\n"> <"100644 $EMPTY_BLOB 0\ttwo\n"> <"replacements: 0\n"> <"deletions:\n"> <"EOF\n"> <"\ttest_cmp expect actual\n"> ) } ) (C {(test_expect_success)} {(SQ <"remove file not in base index">)} { (SQ <"\n"> <"\tgit update-index --force-remove two &&\n"> <"\tgit ls-files --stage >ls-files.actual &&\n"> <"\tcat >ls-files.expect <<EOF &&\n"> <"100644 2e0996000b7e9019eabcad29391bf0f5c7702f0b 0\tone\n"> <"EOF\n"> <"\ttest_cmp ls-files.expect ls-files.actual &&\n"> <"\n"> <"\ttest-dump-split-index .git/index | sed \"/^own/d\" >actual &&\n"> <"\tq_to_tab >expect <<EOF &&\n"> <"$BASE\n"> <"100644 2e0996000b7e9019eabcad29391bf0f5c7702f0b 0Q\n"> <"replacements: 0\n"> <"deletions:\n"> <"EOF\n"> <"\ttest_cmp expect actual\n"> ) } ) (C {(test_expect_success)} {(SQ <"remove file in base index">)} { (SQ <"\n"> <"\tgit update-index --force-remove one &&\n"> <"\tgit ls-files --stage >ls-files.actual &&\n"> <"\tcat >ls-files.expect <<EOF &&\n"> <"EOF\n"> <"\ttest_cmp ls-files.expect ls-files.actual &&\n"> <"\n"> <"\ttest-dump-split-index .git/index | sed \"/^own/d\" >actual &&\n"> <"\tcat >expect <<EOF &&\n"> <"$BASE\n"> <"replacements:\n"> <"deletions: 0\n"> <"EOF\n"> <"\ttest_cmp expect actual\n"> ) } ) (C {(test_expect_success)} {(SQ <"add original file back">)} { (SQ <"\n"> <"\t: >one &&\n"> <"\tgit update-index --add one &&\n"> <"\tgit ls-files --stage >ls-files.actual &&\n"> <"\tcat >ls-files.expect <<EOF &&\n"> <"100644 $EMPTY_BLOB 0\tone\n"> <"EOF\n"> <"\ttest_cmp ls-files.expect ls-files.actual &&\n"> <"\n"> <"\ttest-dump-split-index .git/index | sed \"/^own/d\" >actual &&\n"> <"\tcat >expect <<EOF &&\n"> <"$BASE\n"> <"100644 $EMPTY_BLOB 0\tone\n"> <"replacements:\n"> <"deletions: 0\n"> <"EOF\n"> <"\ttest_cmp expect actual\n"> ) } ) (C {(test_expect_success)} {(SQ <"add new file">)} { (SQ <"\n"> <"\t: >two &&\n"> <"\tgit update-index --add two &&\n"> <"\tgit ls-files --stage >actual &&\n"> <"\tcat >expect <<EOF &&\n"> <"100644 $EMPTY_BLOB 0\tone\n"> <"100644 $EMPTY_BLOB 0\ttwo\n"> <"EOF\n"> <"\ttest_cmp expect actual\n"> ) } ) (C {(test_expect_success)} {(SQ <"unify index, two files remain">)} { (SQ <"\n"> <"\tgit update-index --no-split-index &&\n"> <"\tgit ls-files --stage >ls-files.actual &&\n"> <"\tcat >ls-files.expect <<EOF &&\n"> <"100644 $EMPTY_BLOB 0\tone\n"> <"100644 $EMPTY_BLOB 0\ttwo\n"> <"EOF\n"> <"\ttest_cmp ls-files.expect ls-files.actual &&\n"> <"\n"> <"\ttest-dump-split-index .git/index | sed \"/^own/d\" >actual &&\n"> <"\tcat >expect <<EOF &&\n"> <"not a split index\n"> <"EOF\n"> <"\ttest_cmp expect actual\n"> ) } ) (C {(test_done)}) ] )