Skip to content

Commit

Permalink
git-svn: add fetch --parent option
Browse files Browse the repository at this point in the history
Signed-off-by: Jason Merrill <jason@redhat.com>
Acked-By: Eric Wong <normalperson@yhbt.net>
  • Loading branch information
Jason Merrill authored and Eric Wong committed Apr 12, 2009
1 parent e37347b commit c2abd83
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 4 deletions.
3 changes: 3 additions & 0 deletions Documentation/git-svn.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
18 changes: 14 additions & 4 deletions git-svn.perl
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ BEGIN
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);
Expand Down Expand Up @@ -112,6 +112,7 @@ BEGIN
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,
Expand Down Expand Up @@ -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());
}
}
Expand Down

0 comments on commit c2abd83

Please sign in to comment.