| #!/bin/sh | |
| # | |
| # Copyright (C) 2020 Shourya Shukla | |
| # | |
| test_description='Summary support for submodules, adding them using git submodule add | |
| This test script tries to verify the sanity of summary subcommand of git submodule | |
| while making sure to add submodules using `git submodule add` instead of | |
| `git add` as done in t7401. | |
| ' | |
| . ./test-lib.sh | |
| test_expect_success 'setup' ' | |
| git config --global protocol.file.allow always | |
| ' | |
| test_expect_success 'summary test environment setup' ' | |
| git init sm && | |
| test_commit -C sm "add file" file file-content file-tag && | |
| git submodule add ./sm my-subm && | |
| test_tick && | |
| git commit -m "add submodule" | |
| ' | |
| test_expect_success 'submodule summary output for initialized submodule' ' | |
| test_commit -C sm "add file2" file2 file2-content file2-tag && | |
| git submodule update --remote && | |
| test_tick && | |
| git commit -m "update submodule" my-subm && | |
| git submodule summary HEAD^ >actual && | |
| rev1=$(git -C sm rev-parse --short HEAD^) && | |
| rev2=$(git -C sm rev-parse --short HEAD) && | |
| cat >expected <<-EOF && | |
| * my-subm ${rev1}...${rev2} (1): | |
| > add file2 | |
| EOF | |
| test_cmp expected actual | |
| ' | |
| test_expect_success 'submodule summary output for deinitialized submodule' ' | |
| git submodule deinit my-subm && | |
| git submodule summary HEAD^ >actual && | |
| test_must_be_empty actual && | |
| git submodule update --init my-subm && | |
| git submodule summary HEAD^ >actual && | |
| rev1=$(git -C sm rev-parse --short HEAD^) && | |
| rev2=$(git -C sm rev-parse --short HEAD) && | |
| cat >expected <<-EOF && | |
| * my-subm ${rev1}...${rev2} (1): | |
| > add file2 | |
| EOF | |
| test_cmp expected actual | |
| ' | |
| test_expect_success 'submodule summary output for submodules with changed paths' ' | |
| git mv my-subm subm && | |
| git commit -m "change submodule path" && | |
| rev=$(git -C sm rev-parse --short HEAD^) && | |
| git submodule summary HEAD^^ -- my-subm >actual 2>err && | |
| test_must_be_empty err && | |
| cat >expected <<-EOF && | |
| * my-subm ${rev}...0000000: | |
| EOF | |
| test_cmp expected actual | |
| ' | |
| test_done |