From: Eric Wong Date: Thu, 15 Feb 2007 02:47:16 +0000 (-0800) Subject: git-svn: allow dcommit for those who only fetch from SVM with useSvmProps X-Git-Tag: v1.5.1-rc1~160 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=60d9c97adf96533e4f02d3fc2fecec998104e8ea;p=git.git git-svn: allow dcommit for those who only fetch from SVM with useSvmProps This allows users to use SVM (SVN::Mirror) to mirror a remote repository to use dcommit to commit to the repository that SVM was mirroring. When dcommit is used in this manner, the automatic fetch + rebase/reset does not happen; in which case the user will have to manually invoke svm/svk, run 'git svn fetch', and finally 'git rebase'. Signed-off-by: Eric Wong --- diff --git a/git-svn.perl b/git-svn.perl index 201418e09..bfe5d6b97 100755 --- a/git-svn.perl +++ b/git-svn.perl @@ -309,8 +309,7 @@ sub cmd_dcommit { die "Unable to determine upstream SVN information from ", "$head history:\n $ctx\n"; } - my $gs = Git::SVN->find_by_url($url) or - die "Can't determine fetch information for $url\n"; + my $gs = Git::SVN->find_by_url($url); my $last_rev; foreach my $d (@refs) { if (!verify_ref("$d~1")) { @@ -345,6 +344,13 @@ sub cmd_dcommit { } } return if $_dry_run; + unless ($gs) { + warn "Could not determine fetch information for $url\n", + "Will not attempt to fetch and rebase commits.\n", + "This probably means you have useSvmProps and should\n", + "now resync your SVN::Mirror repository.\n"; + return; + } $gs->fetch; # we always want to rebase against the current HEAD, not any # head that was passed to us