Matthieu Moy <Matthieu.Moy@xxxxxxx> wrote: > Eric Wong <normalperson@xxxxxxxx> writes: > > > foreach (sort { $b =~ tr#/#/# <=> $a =~ tr#/#/# } keys %$bat) { > > + next if $_ eq ''; > > $self->close_directory($bat->{$_}, $p); > > } > > + $self->close_directory($bat->{''}, $p); > > Works for me. Thanks a lot! > > BTW, I didn't have time to write my script as a real testcase for > git-svn, but it should probably be added to the testsuite. I have a modified version of the test I posted earlier based on your test. However, I'm not comfortable binding to any port (even without ssh) on a users machine or potentially leaving a daemon running if the test is interrupted. >From bfbd67e31e952489098c2a10df259fbf1e7863fb Mon Sep 17 00:00:00 2001 From: Eric Wong <normalperson@xxxxxxxx> Date: Sun, 13 May 2007 17:38:21 -0700 Subject: [PATCH] git-svn: test for creating new directories over svn:// As reported by Matthieu Moy, this is causing svnserve to terminate connections (because it segfaults) segfault. Signed-off-by: Eric Wong <normalperson@xxxxxxxx> --- t/t9112-git-svn-dcommit-new-file.sh | 37 +++++++++++++++++++++++++++++++++++ 1 files changed, 37 insertions(+), 0 deletions(-) create mode 100755 t/t9112-git-svn-dcommit-new-file.sh diff --git a/t/t9112-git-svn-dcommit-new-file.sh b/t/t9112-git-svn-dcommit-new-file.sh new file mode 100755 index 0000000..b186fce --- /dev/null +++ b/t/t9112-git-svn-dcommit-new-file.sh @@ -0,0 +1,37 @@ +#!/bin/sh +# +# Copyright (c) 2007 Eric Wong +# + +test_description='git-svn dcommit new files over svn:// test' + +. ./lib-git-svn.sh + +# standard svnserve runs on 3690, so lets not conflict with that +SVNSERVE_PORT=${SVNSERVE_PORT-'3691'} + +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 -- Eric Wong - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html