From: Sam Vilain <sam@vilain.net>
To: Eric Wong <normalperson@yhbt.net>
Cc: git@vger.kernel.org
Subject: [PATCH 1/5] git-svn: make test for SVK mirror path import
Date: Tue, 05 Dec 2006 16:17:38 +1100 [thread overview]
Message-ID: <20061205051738.16552.8987.stgit@localhost> (raw)
From: <sam@vilain.net>
A manual test that sets up a repository that looks like an SVK depot,
and then imports it to check that it looks like we mirrored the
'original' source.
There is also a minor modification to the git-svn test library shell
file which sets a variable for the subversion repository's filesystem
path.
---
t/lib-git-svn.sh | 3 -
t/t9107-git-svn-svk-mirrorpaths.sh | 92 ++++++++++++++++++++++++++++++++++++
2 files changed, 93 insertions(+), 2 deletions(-)
diff --git a/t/lib-git-svn.sh b/t/lib-git-svn.sh
index 63c6703..dffd1fb 100644
--- a/t/lib-git-svn.sh
+++ b/t/lib-git-svn.sh
@@ -45,6 +45,5 @@ else
svnadmin create "$svnrepo"
fi
+rawsvnrepo="$svnrepo"
svnrepo="file://$svnrepo"
-
-
diff --git a/t/t9107-git-svn-svk-mirrorpaths.sh b/t/t9107-git-svn-svk-mirrorpaths.sh
new file mode 100755
index 0000000..130e786
--- /dev/null
+++ b/t/t9107-git-svn-svk-mirrorpaths.sh
@@ -0,0 +1,92 @@
+#!/bin/sh
+#
+# Copyright (c) 2006 Eric Wong
+#
+
+test_description='git-svn on SVK mirror paths'
+. ./lib-git-svn.sh
+
+if test -n "$GIT_SVN_NO_LIB" && test "$GIT_SVN_NO_LIB" -ne 0
+then
+ echo 'Skipping: only implemented with SVN libraries'
+ test_done
+ exit 0
+fi
+
+# 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' "
+ 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 &&
+ 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 &&
+ 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 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 \` = 3"
+
+test_expect_success 're-wrote git-svn-id URL' "git-show HEAD | grep git-svn-id: | fgrep $url"
+test_expect_success 're-wrote git-svn-id UUID' "git-show HEAD | grep git-svn-id: | fgrep $uuid"
+test_expect_success 're-wrote git-svn-id revision' "git-show HEAD | grep git-svn-id: | fgrep '@3'"
+test_expect_success 're-wrote author e-mail domain UUID' "test \`git-show --pretty=fuller HEAD | grep '<.*@.*>' | fgrep $uuid | wc -l\` = 2"
+
+test_debug 'gitk --all &'
+
+test_done
next reply other threads:[~2006-12-05 5:22 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-12-05 5:17 Sam Vilain [this message]
2006-12-05 5:17 ` [PATCH 2/5] git-svn: let libsvn_ls_fullurl return properties too Sam Vilain
2006-12-05 5:17 ` [PATCH 3/5] git-svn: collect SVK source URL on mirror paths Sam Vilain
2006-12-05 5:17 ` [PATCH 5/5] git-svn: re-map repository URLs and UUIDs on SVK " Sam Vilain
2006-12-05 8:58 ` Eric Wong
2006-12-07 0:20 ` Sam Vilain
2006-12-07 20:02 ` Eric Wong
2006-12-08 10:20 ` [PATCH] git-svn: use do_switch for --follow-parent if the SVN library supports it Eric Wong
2006-12-05 5:17 ` [PATCH 4/5] git-svn: collect revision properties when fetching Sam Vilain
2006-12-05 8:40 ` [PATCH 1/5] git-svn: make test for SVK mirror path import Eric Wong
2006-12-05 10:32 ` Jakub Narebski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20061205051738.16552.8987.stgit@localhost \
--to=sam@vilain.net \
--cc=git@vger.kernel.org \
--cc=normalperson@yhbt.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.