* [PATCH] git-svnimport: support for partial imports
@ 2006-10-25 22:50 Sasha Khapyorsky
2006-10-26 8:47 ` Karl Hasselström
2006-10-31 22:50 ` Sasha Khapyorsky
0 siblings, 2 replies; 7+ messages in thread
From: Sasha Khapyorsky @ 2006-10-25 22:50 UTC (permalink / raw)
To: Junio C Hamano; +Cc: git, Matthias Urlichs
This adds support for partial svn imports. Let's assume that SVN
repository layout looks like:
$trunk/path/to/our/project
$branches/path/to/our/project
$tags/path/to/our/project
, and we would like to import only tree under this specific
'path/to/our/project' and not whole tree under $trunk, $branches, etc..
Now we will be be able to do it by using '-P path/to/our/project' option
with git-svnimport.
Signed-off-by: Sasha Khapyorsky <sashak@voltaire.com>
---
git-svnimport.perl | 29 +++++++++++++++++++++++++----
1 files changed, 25 insertions(+), 4 deletions(-)
diff --git a/git-svnimport.perl b/git-svnimport.perl
index f6eff8e..cbaa8ab 100755
--- a/git-svnimport.perl
+++ b/git-svnimport.perl
@@ -31,7 +31,7 @@ die "Need SVN:Core 1.2.1 or better" if $
$ENV{'TZ'}="UTC";
our($opt_h,$opt_o,$opt_v,$opt_u,$opt_C,$opt_i,$opt_m,$opt_M,$opt_t,$opt_T,
- $opt_b,$opt_r,$opt_I,$opt_A,$opt_s,$opt_l,$opt_d,$opt_D,$opt_S,$opt_F);
+ $opt_b,$opt_r,$opt_I,$opt_A,$opt_s,$opt_l,$opt_d,$opt_D,$opt_S,$opt_F,$opt_P);
sub usage() {
print STDERR <<END;
@@ -39,17 +39,19 @@ Usage: ${\basename $0} # fetch/updat
[-o branch-for-HEAD] [-h] [-v] [-l max_rev]
[-C GIT_repository] [-t tagname] [-T trunkname] [-b branchname]
[-d|-D] [-i] [-u] [-r] [-I ignorefilename] [-s start_chg]
- [-m] [-M regex] [-A author_file] [-S] [-F] [SVN_URL]
+ [-m] [-M regex] [-A author_file] [-S] [-F] [-P project_name] [SVN_URL]
END
exit(1);
}
-getopts("A:b:C:dDFhiI:l:mM:o:rs:t:T:Suv") or usage();
+getopts("A:b:C:dDFhiI:l:mM:o:rs:t:T:SP:uv") or usage();
usage if $opt_h;
my $tag_name = $opt_t || "tags";
my $trunk_name = $opt_T || "trunk";
my $branch_name = $opt_b || "branches";
+my $project_name = $opt_P || "";
+$project_name = "/" . $project_name if ($project_name);
@ARGV == 1 or @ARGV == 2 or usage();
@@ -427,6 +429,20 @@ sub get_ignore($$$$$) {
}
}
+sub project_path($$)
+{
+ my ($path, $project) = @_;
+
+ $path = "/".$path unless ($path =~ m#^\/#) ;
+ return $1 if ($path =~ m#^$project\/(.*)$#);
+
+ $path =~ s#\.#\\\.#g;
+ $path =~ s#\+#\\\+#g;
+ return "/" if ($project =~ m#^$path.*$#);
+
+ return undef;
+}
+
sub split_path($$) {
my($rev,$path) = @_;
my $branch;
@@ -446,7 +462,11 @@ sub split_path($$) {
print STDERR "$rev: Unrecognized path: $path\n" unless (defined $no_error{$path});
return ()
}
- $path = "/" if $path eq "";
+ if ($path eq "") {
+ $path = "/";
+ } elsif ($project_name) {
+ $path = project_path($path, $project_name);
+ }
return ($branch,$path);
}
@@ -898,6 +918,7 @@ sub commit_all {
while(my($path,$action) = each %$changed_paths) {
($branch,$path) = split_path($revision,$path);
next if not defined $branch;
+ next if not defined $path;
$done{$branch}{$path} = $action;
}
while(($branch,$changed_paths) = each %done) {
--
1.4.3.1.g9f9e
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH] git-svnimport: support for partial imports
2006-10-25 22:50 [PATCH] git-svnimport: support for partial imports Sasha Khapyorsky
@ 2006-10-26 8:47 ` Karl Hasselström
2006-10-26 10:31 ` Sasha Khapyorsky
2006-10-31 22:50 ` Sasha Khapyorsky
1 sibling, 1 reply; 7+ messages in thread
From: Karl Hasselström @ 2006-10-26 8:47 UTC (permalink / raw)
To: Sasha Khapyorsky; +Cc: Junio C Hamano, git, Matthias Urlichs
On 2006-10-26 00:50:26 +0200, Sasha Khapyorsky wrote:
> This adds support for partial svn imports. Let's assume that SVN
> repository layout looks like:
>
> $trunk/path/to/our/project
> $branches/path/to/our/project
> $tags/path/to/our/project
>
> , and we would like to import only tree under this specific
> 'path/to/our/project' and not whole tree under $trunk, $branches,
> etc.. Now we will be be able to do it by using '-P
> path/to/our/project' option with git-svnimport.
Isn't this already doable with "-T trunk/path/to/our/project -t
tags/path/to/our/project -b branches/path/to/our/project"?
--
Karl Hasselström, kha@treskal.com
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] git-svnimport: support for partial imports
2006-10-26 8:47 ` Karl Hasselström
@ 2006-10-26 10:31 ` Sasha Khapyorsky
2006-10-26 10:54 ` Karl Hasselström
0 siblings, 1 reply; 7+ messages in thread
From: Sasha Khapyorsky @ 2006-10-26 10:31 UTC (permalink / raw)
To: Karl Hasselstr?m; +Cc: Junio C Hamano, git, Matthias Urlichs
On 10:47 Thu 26 Oct , Karl Hasselstr?m wrote:
> On 2006-10-26 00:50:26 +0200, Sasha Khapyorsky wrote:
>
> > This adds support for partial svn imports. Let's assume that SVN
> > repository layout looks like:
> >
> > $trunk/path/to/our/project
> > $branches/path/to/our/project
> > $tags/path/to/our/project
> >
> > , and we would like to import only tree under this specific
> > 'path/to/our/project' and not whole tree under $trunk, $branches,
> > etc.. Now we will be be able to do it by using '-P
> > path/to/our/project' option with git-svnimport.
>
> Isn't this already doable with "-T trunk/path/to/our/project -t
> tags/path/to/our/project -b branches/path/to/our/project"?
In such case git-svnimport will not be able to resolve branches and
tags names - note that actual SVN paths are:
branches/<branch-name>/path/to/our/project
tags/<tag-name>/path/to/our/project
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] git-svnimport: support for partial imports
2006-10-26 10:31 ` Sasha Khapyorsky
@ 2006-10-26 10:54 ` Karl Hasselström
0 siblings, 0 replies; 7+ messages in thread
From: Karl Hasselström @ 2006-10-26 10:54 UTC (permalink / raw)
To: Sasha Khapyorsky; +Cc: Junio C Hamano, git, Matthias Urlichs
On 2006-10-26 12:31:20 +0200, Sasha Khapyorsky wrote:
> On 10:47 Thu 26 Oct, Karl Hasselström wrote:
> > Isn't this already doable with "-T trunk/path/to/our/project -t
> > tags/path/to/our/project -b branches/path/to/our/project"?
>
> In such case git-svnimport will not be able to resolve branches and
> tags names - note that actual SVN paths are:
>
> branches/<branch-name>/path/to/our/project
> tags/<tag-name>/path/to/our/project
Aahh, right. I didn't think of that.
--
Karl Hasselström, kha@treskal.com
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] git-svnimport: support for partial imports
2006-10-25 22:50 [PATCH] git-svnimport: support for partial imports Sasha Khapyorsky
2006-10-26 8:47 ` Karl Hasselström
@ 2006-10-31 22:50 ` Sasha Khapyorsky
2006-10-31 23:48 ` Junio C Hamano
1 sibling, 1 reply; 7+ messages in thread
From: Sasha Khapyorsky @ 2006-10-31 22:50 UTC (permalink / raw)
To: Junio C Hamano; +Cc: git, Matthias Urlichs
On 00:50 Thu 26 Oct , Sasha Khapyorsky wrote:
> This adds support for partial svn imports. Let's assume that SVN
> repository layout looks like:
>
> $trunk/path/to/our/project
> $branches/path/to/our/project
> $tags/path/to/our/project
>
> , and we would like to import only tree under this specific
> 'path/to/our/project' and not whole tree under $trunk, $branches, etc..
> Now we will be be able to do it by using '-P path/to/our/project' option
> with git-svnimport.
>
> Signed-off-by: Sasha Khapyorsky <sashak@voltaire.com>
Any news about status of this patch?
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] git-svnimport: support for partial imports
2006-10-31 22:50 ` Sasha Khapyorsky
@ 2006-10-31 23:48 ` Junio C Hamano
2006-11-01 0:51 ` Sasha Khapyorsky
0 siblings, 1 reply; 7+ messages in thread
From: Junio C Hamano @ 2006-10-31 23:48 UTC (permalink / raw)
To: Sasha Khapyorsky; +Cc: git, Matthias Urlichs
Sasha Khapyorsky <sashak@voltaire.com> writes:
> On 00:50 Thu 26 Oct , Sasha Khapyorsky wrote:
>> This adds support for partial svn imports. Let's assume that SVN
>> repository layout looks like:
>>
>> $trunk/path/to/our/project
>> $branches/path/to/our/project
>> $tags/path/to/our/project
>>
>> , and we would like to import only tree under this specific
>> 'path/to/our/project' and not whole tree under $trunk, $branches, etc..
>> Now we will be be able to do it by using '-P path/to/our/project' option
>> with git-svnimport.
>>
>> Signed-off-by: Sasha Khapyorsky <sashak@voltaire.com>
>
> Any news about status of this patch?
Somebody mentioned this duplicates something that can be already
done, and I saw you refuted that. At that point I thought then
it would be Ok to add, and then I forgot about it. Sorry.
Will apply unless somebody objects immediately ;-).
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] git-svnimport: support for partial imports
2006-10-31 23:48 ` Junio C Hamano
@ 2006-11-01 0:51 ` Sasha Khapyorsky
0 siblings, 0 replies; 7+ messages in thread
From: Sasha Khapyorsky @ 2006-11-01 0:51 UTC (permalink / raw)
To: Junio C Hamano; +Cc: git, Matthias Urlichs
On 15:48 Tue 31 Oct , Junio C Hamano wrote:
> Sasha Khapyorsky <sashak@voltaire.com> writes:
>
> > On 00:50 Thu 26 Oct , Sasha Khapyorsky wrote:
> >> This adds support for partial svn imports. Let's assume that SVN
> >> repository layout looks like:
> >>
> >> $trunk/path/to/our/project
> >> $branches/path/to/our/project
> >> $tags/path/to/our/project
> >>
> >> , and we would like to import only tree under this specific
> >> 'path/to/our/project' and not whole tree under $trunk, $branches, etc..
> >> Now we will be be able to do it by using '-P path/to/our/project' option
> >> with git-svnimport.
> >>
> >> Signed-off-by: Sasha Khapyorsky <sashak@voltaire.com>
> >
> > Any news about status of this patch?
>
> Somebody mentioned this duplicates something that can be already
> done, and I saw you refuted that. At that point I thought then
> it would be Ok to add, and then I forgot about it. Sorry.
No problem.
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2006-11-01 0:45 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-10-25 22:50 [PATCH] git-svnimport: support for partial imports Sasha Khapyorsky
2006-10-26 8:47 ` Karl Hasselström
2006-10-26 10:31 ` Sasha Khapyorsky
2006-10-26 10:54 ` Karl Hasselström
2006-10-31 22:50 ` Sasha Khapyorsky
2006-10-31 23:48 ` Junio C Hamano
2006-11-01 0:51 ` Sasha Khapyorsky
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).