Code

git-svn: save paths to tags/branches with for future reuse
authorEric Wong <normalperson@yhbt.net>
Thu, 1 Feb 2007 11:59:07 +0000 (03:59 -0800)
committerEric Wong <normalperson@yhbt.net>
Fri, 23 Feb 2007 08:57:11 +0000 (00:57 -0800)
Signed-off-by: Eric Wong <normalperson@yhbt.net>
git-svn.perl

index a2db73fe00368416fa1b9565f2940f582f00352c..ad2ef53f8d22e60e4dc8dfc6b20955439544660e 100755 (executable)
@@ -469,6 +469,8 @@ sub complete_url_ls_init {
        my $r = defined $_revision ? $_revision : $ra->get_latest_revnum;
        my ($dirent, undef, undef) = $ra->get_dir($repo_path, $r);
        my $url = $ra->{url};
+       my $remote_id;
+       my $remote_path;
        foreach my $d (sort keys %$dirent) {
                next if ($dirent->{$d}->kind != $SVN::Node::dir);
                my $path =  "$repo_path/$d";
@@ -477,8 +479,17 @@ sub complete_url_ls_init {
                # don't try to init already existing refs
                unless ($gs) {
                        print "init $url/$path => $ref\n";
-                       Git::SVN->init($url, $path, undef, $ref);
+                       $gs = Git::SVN->init($url, $path, undef, $ref);
                }
+               $remote_id ||= $gs->{repo_id} if $gs;
+       }
+       if (defined $remote_id) {
+               $remote_path = "$ra->{svn_path}/$repo_path/*";
+               $remote_path =~ s#/+#/#g;
+               $remote_path =~ s#^/##g;
+               my ($n) = ($switch =~ /^--(\w+)/);
+               command_noisy('config', "svn-remote.$remote_id.$n",
+                                       $remote_path);
        }
 }