-
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.
tests: add a testcase for "git submodule sync"
This testcase ensures that upstream changes to submodule properties can be updated using the sync subcommand. This particular test changes the submodule URL upstream and uses the sync command to update an existing checkout. Signed-off-by: David Aguilar <davvid@gmail.com> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
- Loading branch information
David Aguilar
authored and
Shawn O. Pearce
committed
Oct 3, 2008
1 parent
bf8f2ad
commit 52e8370
Showing
1 changed file
with
64 additions
and
0 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
#!/bin/sh | ||
# | ||
# Copyright (c) 2008 David Aguilar | ||
# | ||
|
||
test_description='git submodule sync | ||
These tests exercise the "git submodule sync" subcommand. | ||
' | ||
|
||
. ./test-lib.sh | ||
|
||
test_expect_success setup ' | ||
echo file > file && | ||
git add file && | ||
test_tick && | ||
git commit -m upstream | ||
git clone . super && | ||
git clone super submodule && | ||
(cd super && | ||
git submodule add ../submodule submodule && | ||
test_tick && | ||
git commit -m "submodule" | ||
) && | ||
git clone super super-clone && | ||
(cd super-clone && git submodule update --init) | ||
' | ||
|
||
test_expect_success 'change submodule' ' | ||
(cd submodule && | ||
echo second line >> file && | ||
test_tick && | ||
git commit -a -m "change submodule" | ||
) | ||
' | ||
|
||
test_expect_success 'change submodule url' ' | ||
(cd super && | ||
cd submodule && | ||
git checkout master && | ||
git pull | ||
) && | ||
mv submodule moved-submodule && | ||
(cd super && | ||
git config -f .gitmodules submodule.submodule.url ../moved-submodule | ||
test_tick && | ||
git commit -a -m moved-submodule | ||
) | ||
' | ||
|
||
test_expect_success '"git submodule sync" should update submodule URLs' ' | ||
(cd super-clone && | ||
git pull && | ||
git submodule sync | ||
) && | ||
test -d "$(git config -f super-clone/submodule/.git/config \ | ||
remote.origin.url)" && | ||
(cd super-clone/submodule && | ||
git checkout master && | ||
git pull | ||
) | ||
' | ||
|
||
test_done |