summaryrefslogtreecommitdiff
path: root/t/t9110-git-svn-use-svm-props.sh
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2007-02-17 02:53:07 -0800
committerEric Wong <normalperson@yhbt.net>2007-02-23 00:57:13 -0800
commitbefc9adc0ced7d3e1c1316d6420007357d50b202 (patch)
tree186451798759ca705c03be77d95e4bee5db5b954 /t/t9110-git-svn-use-svm-props.sh
parent62e349d235ecbb20c5338de5d4cbff9ce5c6aa66 (diff)
downloadgit-befc9adc0ced7d3e1c1316d6420007357d50b202.tar.gz
git-svn: fix useSvmProps, hopefully for the last time
svm:mirror is not useful at all for us. Parts of the old unit test were broken and based on my misunderstanding of the svm:mirror property. When we read svm:source; make sure we correctly handle the '!' in it: it is used to separate the path of the repository root from the virtual path within the repository. We don't need to make that distinction, honestly! We also ensure that subdirectories are also mirrored with the correct URL if we're using useSvmProps. We have a new test that uses dumped repo that was really created using SVN::Mirror to avoid ambiguities and mis-understandings about the svm: properties. Note: trailing whitespace in the svm.dump file is unfortunately a reality and required by SVN; so please ignore it when applying this patch. Also, ensure that the -R/--remote/--svn-remote flag is always in effect if explicitly passed via the command-line. This allows us to track logically different mirrors sharing the same URL (probably common with SVN::Mirror/SVK users). Signed-off-by: Eric Wong <normalperson@yhbt.net>
Diffstat (limited to 't/t9110-git-svn-use-svm-props.sh')
-rwxr-xr-xt/t9110-git-svn-use-svm-props.sh51
1 files changed, 51 insertions, 0 deletions
diff --git a/t/t9110-git-svn-use-svm-props.sh b/t/t9110-git-svn-use-svm-props.sh
new file mode 100755
index 0000000000..9db0d8fd8d
--- /dev/null
+++ b/t/t9110-git-svn-use-svm-props.sh
@@ -0,0 +1,51 @@
+#!/bin/sh
+#
+# Copyright (c) 2007 Eric Wong
+#
+
+test_description='git-svn useSvmProps test'
+
+. ./lib-git-svn.sh
+
+test_expect_success 'load svm repo' "
+ svnadmin load -q $rawsvnrepo < ../t9110/svm.dump &&
+ git-svn init -R arr -i bar $svnrepo/mirror/arr &&
+ git-svn init -R argh -i dir $svnrepo/mirror/argh &&
+ git-svn init -R argh -i e $svnrepo/mirror/argh/a/b/c/d/e &&
+ git-config svn.useSvmProps true &&
+ git-svn fetch --all
+ "
+
+uuid=161ce429-a9dd-4828-af4a-52023f968c89
+
+bar_url=http://mayonaise/svnrepo/bar
+test_expect_success 'verify metadata for /bar' "
+ git-cat-file commit refs/remotes/bar | \
+ grep '^git-svn-id: $bar_url@12 $uuid$' &&
+ git-cat-file commit refs/remotes/bar~1 | \
+ grep '^git-svn-id: $bar_url@11 $uuid$' &&
+ git-cat-file commit refs/remotes/bar~2 | \
+ grep '^git-svn-id: $bar_url@10 $uuid$' &&
+ git-cat-file commit refs/remotes/bar~3 | \
+ grep '^git-svn-id: $bar_url@9 $uuid$' &&
+ git-cat-file commit refs/remotes/bar~4 | \
+ grep '^git-svn-id: $bar_url@6 $uuid$' &&
+ git-cat-file commit refs/remotes/bar~5 | \
+ grep '^git-svn-id: $bar_url@1 $uuid$'
+ "
+
+e_url=http://mayonaise/svnrepo/dir/a/b/c/d/e
+test_expect_success 'verify metadata for /dir/a/b/c/d/e' "
+ git-cat-file commit refs/remotes/e | \
+ grep '^git-svn-id: $e_url@1 $uuid$'
+ "
+
+dir_url=http://mayonaise/svnrepo/dir
+test_expect_success 'verify metadata for /dir' "
+ git-cat-file commit refs/remotes/dir | \
+ grep '^git-svn-id: $dir_url@2 $uuid$' &&
+ git-cat-file commit refs/remotes/dir~1 | \
+ grep '^git-svn-id: $dir_url@1 $uuid$'
+ "
+
+test_done