git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] git-svn: add fetch --parent option

From
EWEric Wong <normalperson@yhbt.net>
Date
Apr 8, 2009, 02:14 UTC
Message-ID
<20090408021408.GC20161@dcvr.yhbt.net>
In-Reply-To
<49DA6827.9020204@redhat.com>
Jason Merrill <jason@redhat.com> wrote:
Show 5 quoted lines
> Signed-off-by: Jason Merrill <jason@redhat.com>
> ---
> rebase fetches only the SVN parent of the current HEAD; it should
> be possible to do that with fetch as well, for instance to support
> rebasing with stg rebase rather than git rebase.
Hi Jason, the above should be in the commit message.
Otherwise, Acked-by: Eric Wong <normalperson@yhbt.net>
Thanks
Show 65 quoted lines
>  Documentation/git-svn.txt |    3 +++
>  git-svn.perl              |   18 ++++++++++++++----
>  2 files changed, 17 insertions(+), 4 deletions(-)
> 
> diff --git a/Documentation/git-svn.txt b/Documentation/git-svn.txt
> index b7b1af8..85b2c8d 100644
> --- a/Documentation/git-svn.txt
> +++ b/Documentation/git-svn.txt
> @@ -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
> diff --git a/git-svn.perl b/git-svn.perl
> index d919798..cb718b8 100755
> --- a/git-svn.perl
> +++ b/git-svn.perl
> @@ -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());
>  	}
>  }
> -- 
Previous: Jason Merrill
Message 2 of 2 in “git-svn: add fetch --parent option”
  1. git-svn: add fetch --parent optionJason Merrill, Apr 6, 2009
  2. Eric WongApr 8, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.