summaryrefslogtreecommitdiff
path: root/t/t9113-git-svn-dcommit-new-file.sh
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2007-06-13 09:37:04 (GMT)
committerJunio C Hamano <gitster@pobox.com>2007-06-13 18:01:49 (GMT)
commitb3bf96d483ac2ff4a7523445a4e3f53f266501a4 (patch)
treef95f80c32ba486caac06f8828cd91744f9c2c027 /t/t9113-git-svn-dcommit-new-file.sh
parentb54a901e05235b2717da54d2a51b8cbd571cefcd (diff)
downloadgit-b3bf96d483ac2ff4a7523445a4e3f53f266501a4.zip
git-b3bf96d483ac2ff4a7523445a4e3f53f266501a4.tar.gz
git-b3bf96d483ac2ff4a7523445a4e3f53f266501a4.tar.bz2
git-svn: test for creating new directories over svn://
As reported by Matthieu Moy, this is causing svnserve to terminate connections, because it segfaults. This test is disabled by default and can be enabled by setting SVNSERVE_PORT to an unbound (for 127.0.0.1) TCP port in the environment (in addition to SVN_TESTS=1). I'm not comfortable with having a test start a daemon by default and take up a port that could potentially stay running if the test failed. Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t9113-git-svn-dcommit-new-file.sh')
-rwxr-xr-xt/t9113-git-svn-dcommit-new-file.sh40
1 files changed, 40 insertions, 0 deletions
diff --git a/t/t9113-git-svn-dcommit-new-file.sh b/t/t9113-git-svn-dcommit-new-file.sh
new file mode 100755
index 0000000..9ef0db9
--- /dev/null
+++ b/t/t9113-git-svn-dcommit-new-file.sh
@@ -0,0 +1,40 @@
+#!/bin/sh
+#
+# Copyright (c) 2007 Eric Wong
+#
+
+# Don't run this test by default unless the user really wants it
+# I don't like the idea of taking a port and possibly leaving a
+# daemon running on a users system if the test fails.
+# Not all git users will need to interact with SVN.
+test -z "$SVNSERVE_PORT" && exit 0
+
+test_description='git-svn dcommit new files over svn:// test'
+
+. ./lib-git-svn.sh
+
+start_svnserve () {
+ svnserve --listen-port $SVNSERVE_PORT \
+ --root $rawsvnrepo \
+ --listen-once \
+ --listen-host 127.0.0.1 &
+}
+
+test_expect_success 'start tracking an empty repo' "
+ svn mkdir -m 'empty dir' $svnrepo/empty-dir &&
+ echo anon-access = write >> $rawsvnrepo/conf/svnserve.conf &&
+ start_svnserve &&
+ git svn init svn://127.0.0.1:$SVNSERVE_PORT &&
+ git svn fetch
+ "
+
+test_expect_success 'create files in new directory with dcommit' "
+ mkdir git-new-dir &&
+ echo hello > git-new-dir/world &&
+ git update-index --add git-new-dir/world &&
+ git commit -m hello &&
+ start_svnserve &&
+ git svn dcommit
+ "
+
+test_done