-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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
- Loading branch information
Showing
2 changed files
with
66 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 |