#!/bin/sh # # Copyright (c) 2019 Denton Liu # test_description='Test submodules set-url subcommand This test verifies that the set-url subcommand of git-submodule is working as expected. ' TEST_NO_CREATE_REPO=1 . ./test-lib.sh test_expect_success 'setup' ' git config --global protocol.file.allow always ' test_expect_success 'submodule config cache setup' ' mkdir submodule && ( cd submodule && git init && echo a >file && git add file && git commit -ma ) && mkdir namedsubmodule && ( cd namedsubmodule && git init && echo 1 >file && git add file && git commit -m1 ) && mkdir super && ( cd super && git init && git submodule add ../submodule && git submodule add --name thename ../namedsubmodule thepath && git commit -m "add submodules" ) ' test_expect_success 'test submodule set-url' ' # add commits and move the submodules (change the urls) ( cd submodule && echo b >>file && git add file && git commit -mb ) && mv submodule newsubmodule && ( cd namedsubmodule && echo 2 >>file && git add file && git commit -m2 ) && mv namedsubmodule newnamedsubmodule && git -C newsubmodule show >expect && git -C newnamedsubmodule show >>expect && ( cd super && test_must_fail git submodule update --remote && git submodule set-url submodule ../newsubmodule && test_cmp_config ../newsubmodule -f .gitmodules submodule.submodule.url && git submodule set-url thepath ../newnamedsubmodule && test_cmp_config ../newnamedsubmodule -f .gitmodules submodule.thename.url && test_cmp_config "" -f .gitmodules --default "" submodule.thepath.url && git submodule update --remote ) && git -C super/submodule show >actual && git -C super/thepath show >>actual && test_cmp expect actual ' test_done