diff options
author | Junio C Hamano <gitster@pobox.com> | 2012-07-27 21:13:46 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2012-07-27 21:13:46 -0700 |
commit | a64fe6c1d5949492857e1a5ad14d60175dd484fa (patch) | |
tree | 7ead9fa752f3eba3caa799866f37e1a468d2a2bd /t | |
parent | Merge branch 'jk/maint-checkout-orphan-check-fix' (diff) | |
parent | git-submodule: work with GIT_DIR/GIT_WORK_TREE (diff) | |
download | tgif-a64fe6c1d5949492857e1a5ad14d60175dd484fa.tar.xz |
Merge branch 'dg/submodule-in-dismembered-working-tree'
In a superproject that has repository outside of its working tree,
"git submodule add" failed to clone a new submodule, as GIT_DIR and
GIT_WORK_TREE environment variables necessary to work in such a
superproject interfered with access to the submodule repository.
* dg/submodule-in-dismembered-working-tree:
git-submodule: work with GIT_DIR/GIT_WORK_TREE
Diffstat (limited to 't')
-rw-r--r-- | t/t7409-submodule-detached-worktree.sh | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/t/t7409-submodule-detached-worktree.sh b/t/t7409-submodule-detached-worktree.sh new file mode 100644 index 0000000000..db75642fc3 --- /dev/null +++ b/t/t7409-submodule-detached-worktree.sh @@ -0,0 +1,61 @@ +#!/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") && + mkdir home && + ( + cd home && + export GIT_WORK_TREE="$(pwd)" GIT_DIR="$(pwd)/.dotfiles" && + git clone --bare ../remote .dotfiles && + git submodule add ../bundle1 .vim/bundle/sogood && + test_commit "sogood" && + git push origin master + ) && + mkdir home2 && + ( + cd home2 && + export GIT_WORK_TREE="$(pwd)" GIT_DIR="$(pwd)/.dotfiles" && + git clone --bare ../remote .dotfiles && + git submodule update --init + ) +' + +test_expect_success 'submodule on detached working pointed by core.worktree' ' + mkdir home3 && + ( + cd home3 && + export GIT_DIR="$(pwd)/.dotfiles" && + git clone --bare ../remote "$GIT_DIR" && + git config core.bare false && + git config core.worktree .. && + git submodule add ../bundle1 .vim/bundle/dupe && + test_commit "dupe" && + git push origin master + ) && + ( + cd home && + export GIT_DIR="$(pwd)/.dotfiles" && + git config core.bare false && + git config core.worktree .. && + git pull && + git submodule update && + git submodule status && + test -d .vim/bundle/dupe + ) +' + +test_done |