Code

git-svn: read the dcommit url from the config file on a per remote basis
authorPeter Oberndorfer <kumbayo84@arcor.de>
Mon, 23 Feb 2009 11:02:53 +0000 (12:02 +0100)
committerEric Wong <normalperson@yhbt.net>
Mon, 23 Feb 2009 21:50:24 +0000 (13:50 -0800)
The commit url for dcommit is determined in the following order:
commandline option --commit-url
svn.commiturl
svn-remote.<name>.commiturl
svn-remote.<name>.url

Signed-off-by: Peter Oberndorfer <kumbayo84@arcor.de>
Acked-by: Eric Wong <normalperson@yhbt.net>
Documentation/git-svn.txt
git-svn.perl

index 3d456545d7bf6b81a6ea1ab7b3671939ba3be045..cda3389331edd615cab316574e4dedc5cc30bd31 100644 (file)
@@ -169,6 +169,10 @@ and have no uncommitted changes.
        reused if a user is later given access to an alternate transport
        method (e.g. `svn+ssh://` or `https://`) for commit.
 
+config key: svn-remote.<name>.commiturl
+
+config key: svn.commiturl (overwrites all svn-remote.<name>.commiturl options)
+
        Using this option for any other purpose (don't ask)
        is very strongly discouraged.
 --
index bce24a80c45e67663cebf43e3617e9c6aa7f8def..d8476c81eefd4cbbe178894dc2bcc39ffdadd6e9 100755 (executable)
@@ -438,7 +438,17 @@ sub cmd_dcommit {
                die "Unable to determine upstream SVN information from ",
                    "$head history.\nPerhaps the repository is empty.";
        }
-       $url = defined $_commit_url ? $_commit_url : $gs->full_url;
+
+       if (defined $_commit_url) {
+               $url = $_commit_url;
+       } else {
+               $url = eval { command_oneline('config', '--get',
+                             "svn-remote.$gs->{repo_id}.commiturl") };
+               if (!$url) {
+                       $url = $gs->full_url
+               }
+       }
+
        my $last_rev = $_revision if defined $_revision;
        if ($url) {
                print "Committing to $url ...\n";