git-svn: add fetch --parent option

Signed-off-by: Jason Merrill <jason@redhat.com>
Acked-By: Eric Wong <normalperson@yhbt.net>
This commit is contained in:
Jason Merrill 2009-04-06 16:37:59 -04:00 committed by Eric Wong
parent e37347bba6
commit c2abd83fea
2 changed files with 17 additions and 4 deletions

View File

@ -97,6 +97,9 @@ COMMANDS
makes 'git-log' (even without --date=local) show the same times
that `svn log` would in the local timezone.
--parent;;
Fetch only from the SVN parent of the current HEAD.
This doesn't interfere with interoperating with the Subversion
repository you cloned from, but if you wish for your local Git
repository to be able to interoperate with someone else's local Git

View File

@ -63,7 +63,7 @@ $sha1_short = qr/[a-f\d]{4,40}/;
my ($_stdin, $_help, $_edit,
$_message, $_file,
$_template, $_shared,
$_version, $_fetch_all, $_no_rebase,
$_version, $_fetch_all, $_no_rebase, $_fetch_parent,
$_merge, $_strategy, $_dry_run, $_local,
$_prefix, $_no_checkout, $_url, $_verbose,
$_git_format, $_commit_url, $_tag);
@ -112,6 +112,7 @@ my %cmd = (
fetch => [ \&cmd_fetch, "Download new revisions from SVN",
{ 'revision|r=s' => \$_revision,
'fetch-all|all' => \$_fetch_all,
'parent|p' => \$_fetch_parent,
%fc_opts } ],
clone => [ \&cmd_clone, "Initialize and fetch revisions",
{ 'revision|r=s' => \$_revision,
@ -381,12 +382,21 @@ sub cmd_fetch {
}
my ($remote) = @_;
if (@_ > 1) {
die "Usage: $0 fetch [--all] [svn-remote]\n";
die "Usage: $0 fetch [--all] [--parent] [svn-remote]\n";
}
$remote ||= $Git::SVN::default_repo_id;
if ($_fetch_all) {
if ($_fetch_parent) {
my ($url, $rev, $uuid, $gs) = working_head_info('HEAD');
unless ($gs) {
die "Unable to determine upstream SVN information from ",
"working tree history\n";
}
# just fetch, don't checkout.
$_no_checkout = 'true';
$_fetch_all ? $gs->fetch_all : $gs->fetch;
} elsif ($_fetch_all) {
cmd_multi_fetch();
} else {
$remote ||= $Git::SVN::default_repo_id;
Git::SVN::fetch_all($remote, Git::SVN::read_all_remotes());
}
}