1
0
mirror of https://github.com/git/git.git synced 2024-11-20 17:45:19 +01:00
git/t/t9109-git-svn-svk-mirrorpaths.sh
Eric Wong ccb6b6f5b5 t910*: s/repo-config/config/g; poke around possible race conditions
Some of the repo-config => config renaming missed the git-svn
tests; so I'm just renaming them to be consisten with the
rest of the modern git.

Also, some of the newer tests didn't have 'poke' in them
to workaround race conditions on fast machines.  This adds
places where they can _possibly_ occur; but I don't have
fast enough hardware to trigger them.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
2007-02-23 00:57:12 -08:00

107 lines
3.3 KiB
Bash
Executable File

#!/bin/sh
#
# Copyright (c) 2006 Sam Vilian
#
test_description='git-svn on SVK mirror paths'
. ./lib-git-svn.sh
# ok, people who don't have SVK installed probably don't care about
# this test.
# we set up the repository manually, because even if SVK is installed
# it is difficult to use it in a way that is idempotent.
# we are not yet testing merge tickets..
uuid=b00bface-b1ff-c0ff-f0ff-b0bafe775e1e
url=https://really.slow.server.com/foobar
test_expect_success 'initialize repo' "
git config svn-remote.svn.useSvmProps true &&
echo '#!/bin/sh' > $rawsvnrepo/hooks/pre-revprop-change &&
echo 'exit 0' >> $rawsvnrepo/hooks/pre-revprop-change &&
chmod +x $rawsvnrepo/hooks/pre-revprop-change &&
mkdir import &&
cd import &&
mkdir local &&
echo hello > local/readme &&
svn import -m 'random local work' . $svnrepo &&
cd .. &&
svn co $svnrepo wc &&
cd wc &&
mkdir -p mirror/foobar &&
svn add mirror &&
svn ps svm:source $url mirror/foobar &&
svn ps svm:uuid $uuid mirror/foobar &&
svn ps svm:mirror / mirror/foobar &&
svn commit -m 'setup mirror/foobar as mirror of upstream' &&
svn ps -r 2 --revprop svm:headrev $uuid:0 $svnrepo &&
mkdir mirror/foobar/trunk
echo hello, world > mirror/foobar/trunk/readme &&
svn add mirror/foobar/trunk &&
svn commit -m 'first upstream revision' &&
svn ps -r 3 --revprop svm:headrev $uuid:1 $svnrepo &&
svn up &&
svn mkdir mirror/foobar/branches &&
svn cp mirror/foobar/trunk mirror/foobar/branches/silly &&
svn commit -m 'make branch for silliness' &&
svn ps -r 4 --revprop svm:headrev $uuid:2 $svnrepo &&
svn up &&
echo random untested feature >> mirror/foobar/trunk/readme &&
poke mirror/foobar/trunk/readme &&
svn commit -m 'add a c00l feature to trunk' &&
svn ps -r 5 --revprop svm:headrev $uuid:3 $svnrepo &&
svn up &&
echo bug fix >> mirror/foobar/branches/silly/readme &&
poke mirror/foobar/branches/silly/readme &&
svn commit -m 'fix a bug' &&
svn ps -r 6 --revprop svm:headrev $uuid:4 $svnrepo &&
svn mkdir mirror/foobar/tags &&
svn cp mirror/foobar/branches/silly mirror/foobar/tags/blah-1.0 &&
svn commit -m 'make a release' &&
svn ps -r 7 --revprop svm:headrev $uuid:5 $svnrepo &&
cd ..
"
test_expect_success 'multi-init an SVK mirror path' "
git-svn multi-init -T trunk -t tags -b branches $svnrepo/mirror/foobar
"
test_expect_success 'multi-fetch an SVK mirror path' "git-svn multi-fetch"
test_expect_success 'got tag history OK' "
test \`git-log --pretty=oneline remotes/tags/blah-1.0 | wc -l\` -eq 3
"
test_expect_success 're-wrote git-svn-id URL, revision and UUID' "
git cat-file commit refs/remotes/trunk | \
fgrep 'git-svn-id: $url/mirror/foobar/trunk@3 $uuid' &&
git cat-file commit refs/remotes/tags/blah-1.0 | \
fgrep 'git-svn-id: $url/mirror/foobar/tags/blah-1.0@5 $uuid'
git cat-file commit refs/remotes/silly | \
fgrep 'git-svn-id: $url/mirror/foobar/branches/silly@4 $uuid'
"
test_expect_success 're-wrote author e-mail domain UUID' "
test \`git log --pretty=fuller trunk | \
grep '<.*@.*>' | fgrep '@$uuid>' | wc -l\` -eq 4 &&
test \`git log --pretty=fuller remotes/silly | \
grep '<.*@.*>' | fgrep '@$uuid>' | wc -l\` -eq 6 &&
test \`git log --pretty=fuller remotes/tags/blah-1.0 | \
grep '<.*@.*>' | fgrep '@$uuid>' | wc -l\` -eq 6
"
test_debug 'gitk --all &'
test_done