#!/bin/sh # # Copyright (c) 2012 Daniel GraƱa # test_description='Test submodules on detached working tree This test verifies that "git submodule" initialization, update and addition works on detahced working trees ' TEST_NO_CREATE_REPO=1 . ./test-lib.sh test_expect_success 'submodule on detached working tree' ' git init --bare remote && test_create_repo bundle1 && ( cd bundle1 && test_commit "shoot" && git rev-parse --verify HEAD >../expect ) && mkdir home && ( cd home && GIT_WORK_TREE="$(pwd)" && GIT_DIR="$(pwd)/.dotfiles" && export GIT_WORK_TREE GIT_DIR && git clone --bare ../remote .dotfiles && git submodule add ../bundle1 .vim/bundle/sogood && test_commit "sogood" && ( unset GIT_WORK_TREE GIT_DIR && cd .vim/bundle/sogood && git rev-parse --verify HEAD >actual && test_cmp ../../../../expect actual ) && git push origin master ) && mkdir home2 && ( cd home2 && git clone --bare ../remote .dotfiles && GIT_WORK_TREE="$(pwd)" && GIT_DIR="$(pwd)/.dotfiles" && export GIT_WORK_TREE GIT_DIR && git checkout master && git submodule update --init && ( unset GIT_WORK_TREE GIT_DIR && cd .vim/bundle/sogood && git rev-parse --verify HEAD >actual && test_cmp ../../../../expect actual ) ) ' test_expect_success 'submodule on detached working pointed by core.worktree' ' mkdir home3 && ( cd home3 && GIT_DIR="$(pwd)/.dotfiles" && export GIT_DIR && git clone --bare ../remote "$GIT_DIR" && git config core.bare false && git config core.worktree .. && git checkout master && git submodule add ../bundle1 .vim/bundle/dupe && test_commit "dupe" && git push origin master ) && ( cd home && GIT_DIR="$(pwd)/.dotfiles" && export GIT_DIR && git config core.bare false && git config core.worktree .. && git pull && git submodule update --init && test -f .vim/bundle/dupe/shoot.t ) ' test_done