Git development
 help / color / mirror / Atom feed
* [PATCH] Fix dcommit, rebase when rewriteRoot is in use
@ 2008-03-08 20:01 John Goerzen
  2008-03-08 21:05 ` Junio C Hamano
  2008-03-08 21:32 ` Johannes Schindelin
  0 siblings, 2 replies; 8+ messages in thread
From: John Goerzen @ 2008-03-08 20:01 UTC (permalink / raw)
  To: git; +Cc: normalperson, John Goerzen

Problem described here:

http://thread.gmane.org/gmane.comp.version-control.git/76561

Signed-off-by: John Goerzen <jgoerzen@complete.org>
---
 git-svn.perl |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/git-svn.perl b/git-svn.perl
index 9e2faf9..1195569 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -1540,9 +1540,14 @@ sub find_by_url { # repos_root and, path are optional
 			                    $remotes->{$repo_id}->{$_});
 		}
 		my $p = $path;
+		my $rwr = rewrite_root({repo_id => $repo_id});
 		unless (defined $p) {
 			$p = $full_url;
-			$p =~ s#^\Q$u\E(?:/|$)## or next;
+			my $z = $u;
+			if ($rwr) {
+				$z = $rwr;
+			}
+			$p =~ s#^\Q$z\E(?:/|$)## or next;
 		}
 		foreach my $f (keys %$fetch) {
 			next if $f ne $p;
-- 
1.5.4.2


^ permalink raw reply related	[flat|nested] 8+ messages in thread
* [PATCH] Fix dcommit, rebase when rewriteRoot is in use
@ 2008-03-08 22:04 John Goerzen
  2008-03-08 22:22 ` Eric Wong
  0 siblings, 1 reply; 8+ messages in thread
From: John Goerzen @ 2008-03-08 22:04 UTC (permalink / raw)
  To: git; +Cc: normalperson, John Goerzen

When the rewriteRoot setting is used with git-svn, it causes the svn
IDs added to commit messages to bear a different URL than is actually
used to retrieve Subversion data.

It is common for Subversion repositories to be available multiple
ways: for instance, HTTP to the public, and svn+ssh to people with
commit access.  The need to switch URLs for access is fairly common as
well -- perhaps someone was just given commit access.  To switch URLs
without having to rewrite history, one can use the old url as a
rewriteRoot, and use the new one in the svn-remote url setting.

This works well for svn fetching and general git commands.

However, git-svn dcommit, rebase, and perhaps other commands do not
work in this scenario.  They scan the svn ID lines in commit messages
and attempt to match them up with url lines in [svn-remote] sections
in the git config.

This patch allows them to match rewriteRoot options, if such options
are present.

Signed-off-by: John Goerzen <jgoerzen@complete.org>
---
 git-svn.perl |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/git-svn.perl b/git-svn.perl
index 9e2faf9..1195569 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -1540,9 +1540,14 @@ sub find_by_url { # repos_root and, path are optional
 			                    $remotes->{$repo_id}->{$_});
 		}
 		my $p = $path;
+		my $rwr = rewrite_root({repo_id => $repo_id});
 		unless (defined $p) {
 			$p = $full_url;
-			$p =~ s#^\Q$u\E(?:/|$)## or next;
+			my $z = $u;
+			if ($rwr) {
+				$z = $rwr;
+			}
+			$p =~ s#^\Q$z\E(?:/|$)## or next;
 		}
 		foreach my $f (keys %$fetch) {
 			next if $f ne $p;
-- 
1.5.4.2


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

end of thread, other threads:[~2008-03-08 22:23 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-03-08 20:01 [PATCH] Fix dcommit, rebase when rewriteRoot is in use John Goerzen
2008-03-08 21:05 ` Junio C Hamano
2008-03-08 21:28   ` John Goerzen
2008-03-08 21:52     ` Eric Wong
2008-03-08 21:32 ` Johannes Schindelin
2008-03-08 22:04   ` John Goerzen
  -- strict thread matches above, loose matches on Subject: below --
2008-03-08 22:04 John Goerzen
2008-03-08 22:22 ` Eric Wong

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox