Re: [PATCH] git svn: Support multiple branch and tag paths in the svn repository.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Marc Branchaud <marcnarc@xxxxxxxxxxx> wrote:
> This enables git-svn.perl to read multiple 'branches' and 'tags' entries in
> svn-remote config sections.  The init and clone subcommands also support
> multiple --branches and --tags arguments.
> 
> The branch (and tag) subcommand gets a new argument: --destination (or -d).
> This argument is required if there are multiple branches (or tags) entries
> configured for the remote Subversion repository.  The argument's value
> specifies which branch (or tag) path to use to create the branch (or tag).
> The specified value must match the left side (without wildcards) of one of
> the branches (or tags) refspecs in the svn-remote's config.
> 
> Signed-off-by: Marc Branchaud <marcnarc@xxxxxxxxxxx>
> ---
> 
> I got carried away making unit tests and went and implemented most of this...
> 
> I'm fairly happy with this, except for the way the branch subcommand matches
> refspecs.  The patch does a simple string comparison, but it'd be better to do
> an actual glob.  I just couldn't track down the right function for that, so I
> left it as a strcmp and hope that a gitizen can tell me how to glob here.
> 
> (ps. I'm trying a new way to send patches -- apologies if it's mangled!)

Thanks Marc!  Everything looks fine here; I don't think I'll have time
to test it myself any time soon but your test case looks good and
doesn't break any of the other tests :)  Sorry for the delay, I haven't
had access to my computer or email much in the past few weeks.

Acked and and pushed out to git://git.bogomips.org/git-svn along with a
followup patch to convert the glob to a regexp for branching:

>From f7050599310c18bd67b35b8d59486116b30ff1f6 Mon Sep 17 00:00:00 2001
From: Eric Wong <normalperson@xxxxxxxx>
Date: Thu, 25 Jun 2009 02:28:15 -0700
Subject: [PATCH] git-svn: convert globs to regexps for branch destinations

Marc Branchaud wrote:
> I'm fairly happy with this, except for the way the branch
> subcommand matches refspecs.  The patch does a simple string
> comparison, but it'd be better to do an actual glob.  I just
> couldn't track down the right function for that, so I left it as
> a strcmp and hope that a gitizen can tell me how to glob here.

Signed-off-by: Eric Wong <normalperson@xxxxxxxx>
---

 I haven't actually tested it, and yes, it should probably be
 moved to Git.pm even though it's not necessarily git-only...

 git-svn.perl |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/git-svn.perl b/git-svn.perl
index 48e8aad..6c42e2a 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -646,7 +646,9 @@ sub cmd_branch {
 		            " with the --destination argument.\n";
 		}
 		foreach my $g (@{$allglobs}) {
-			if ($_branch_dest eq $g->{path}->{left}) {
+			# SVN::Git::Editor could probably be moved to Git.pm..
+			my $re = SVN::Git::Editor::glob2pat($g->{path}->{left});
+			if ($_branch_dest =~ /$re/) {
 				$glob = $g;
 				last;
 			}
-- 
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

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]