git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* [PATCH] git-svn: add fetch --parent option
@ 2009-04-06 20:37 Jason Merrill
  2009-04-08  2:14 ` Eric Wong
  0 siblings, 1 reply; 2+ messages in thread
From: Jason Merrill @ 2009-04-06 20:37 UTC (permalink / raw)
  To: git

[-- Attachment #1: Type: text/plain, Size: 0 bytes --]



[-- Attachment #2: 0001-git-svn-add-fetch-parent-option.patch --]
[-- Type: text/x-patch, Size: 2481 bytes --]


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.

 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());
 	}
 }
-- 
1.6.2.2


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] git-svn: add fetch --parent option
  2009-04-06 20:37 [PATCH] git-svn: add fetch --parent option Jason Merrill
@ 2009-04-08  2:14 ` Eric Wong
  0 siblings, 0 replies; 2+ messages in thread
From: Eric Wong @ 2009-04-08  2:14 UTC (permalink / raw)
  To: Jason Merrill; +Cc: git

Jason Merrill <jason@redhat.com> wrote:
> 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

>  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());
>  	}
>  }
> -- 

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2009-04-08  2:15 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-04-06 20:37 [PATCH] git-svn: add fetch --parent option Jason Merrill
2009-04-08  2:14 ` Eric Wong

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).