-
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.
Use svnrdump_sim.py to emulate svnrdump without an svn server. Tests fetching, incremental fetching, fetching from file://, and the regeneration of fast-import's marks file. Signed-off-by: Florian Achleitner <florian.achleitner.2.6.31@gmail.com> Acked-by: David Michael Barr <b@rr-dav.id.au> Signed-off-by: Junio C Hamano <gitster@pobox.com>
- Loading branch information
Florian Achleitner
authored and
Junio C Hamano
committed
Oct 7, 2012
1 parent
5bfc76b
commit e99d012
Showing
1 changed file
with
84 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,84 @@ | ||
#!/bin/sh | ||
|
||
test_description='tests remote-svn' | ||
|
||
. ./test-lib.sh | ||
|
||
MARKSPATH=.git/info/fast-import/remote-svn | ||
|
||
if ! test_have_prereq PYTHON | ||
then | ||
skip_all='skipping remote-svn tests, python not available' | ||
test_done | ||
fi | ||
|
||
# We override svnrdump by placing a symlink to the svnrdump-emulator in . | ||
export PATH="$HOME:$PATH" | ||
ln -sf $GIT_BUILD_DIR/contrib/svn-fe/svnrdump_sim.py "$HOME/svnrdump" | ||
|
||
init_git () { | ||
rm -fr .git && | ||
git init && | ||
#git remote add svnsim testsvn::sim:///$TEST_DIRECTORY/t9020/example.svnrdump | ||
# let's reuse an exisiting dump file!? | ||
git remote add svnsim testsvn::sim://$TEST_DIRECTORY/t9154/svn.dump | ||
git remote add svnfile testsvn::file://$TEST_DIRECTORY/t9154/svn.dump | ||
} | ||
|
||
if test -e "$GIT_BUILD_DIR/git-remote-testsvn" | ||
then | ||
test_set_prereq REMOTE_SVN | ||
fi | ||
|
||
test_debug ' | ||
git --version | ||
which git | ||
which svnrdump | ||
' | ||
|
||
test_expect_success REMOTE_SVN 'simple fetch' ' | ||
init_git && | ||
git fetch svnsim && | ||
test_cmp .git/refs/svn/svnsim/master .git/refs/remotes/svnsim/master && | ||
cp .git/refs/remotes/svnsim/master master.good | ||
' | ||
|
||
test_debug ' | ||
cat .git/refs/svn/svnsim/master | ||
cat .git/refs/remotes/svnsim/master | ||
' | ||
|
||
test_expect_success REMOTE_SVN 'repeated fetch, nothing shall change' ' | ||
git fetch svnsim && | ||
test_cmp master.good .git/refs/remotes/svnsim/master | ||
' | ||
|
||
test_expect_success REMOTE_SVN 'fetch from a file:// url gives the same result' ' | ||
git fetch svnfile | ||
' | ||
|
||
test_expect_failure REMOTE_SVN 'the sha1 differ because the git-svn-id line in the commit msg contains the url' ' | ||
test_cmp .git/refs/remotes/svnfile/master .git/refs/remotes/svnsim/master | ||
' | ||
|
||
test_expect_success REMOTE_SVN 'mark-file regeneration' ' | ||
# filter out any other marks, that can not be regenerated. Only up to 3 digit revisions are allowed here | ||
grep ":[0-9]\{1,3\} " $MARKSPATH/svnsim.marks > $MARKSPATH/svnsim.marks.old && | ||
rm $MARKSPATH/svnsim.marks && | ||
git fetch svnsim && | ||
test_cmp $MARKSPATH/svnsim.marks.old $MARKSPATH/svnsim.marks | ||
' | ||
|
||
test_expect_success REMOTE_SVN 'incremental imports must lead to the same head' ' | ||
export SVNRMAX=3 && | ||
init_git && | ||
git fetch svnsim && | ||
test_cmp .git/refs/svn/svnsim/master .git/refs/remotes/svnsim/master && | ||
unset SVNRMAX && | ||
git fetch svnsim && | ||
test_cmp master.good .git/refs/remotes/svnsim/master | ||
' | ||
|
||
test_debug 'git branch -a' | ||
|
||
test_done |