summaryrefslogtreecommitdiff
path: root/git-svn.perl
diff options
context:
space:
mode:
authorSam Vilain <sam.vilain@catalyst.net.nz>2007-02-22 23:32:29 (GMT)
committerEric Wong <normalperson@yhbt.net>2007-02-23 09:01:02 (GMT)
commit18ea92bd818d38c808329abf77ee8f1ca156f446 (patch)
tree7490f27d4825aed635abb0963cea4b26bb9607de /git-svn.perl
parent5253dc33b713e3de63a25305bfc5e966999a0fbe (diff)
downloadgit-18ea92bd818d38c808329abf77ee8f1ca156f446.zip
git-18ea92bd818d38c808329abf77ee8f1ca156f446.tar.gz
git-18ea92bd818d38c808329abf77ee8f1ca156f446.tar.bz2
git-svn: don't consider SVN URL usernames significant when comparing
http://foo@blah.com/path is the same as http://blah.com/path, so remove usernames from URLs before storing them in commits, and when reading them from commits. Signed-off-by: Eric Wong <normalperson@yhbt.net>
Diffstat (limited to 'git-svn.perl')
-rwxr-xr-xgit-svn.perl8
1 files changed, 8 insertions, 0 deletions
diff --git a/git-svn.perl b/git-svn.perl
index a6d98f1..ea5afb7 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -1847,6 +1847,8 @@ sub make_log_entry {
$full_url =~ s#^\Q$svm->{replace}\E(/|$)#$svm->{source}$1# or
die "Failed to replace '$svm->{replace}' with ",
"'$svm->{source}' in $full_url\n";
+ # throw away username for storing in records
+ remove_username($full_url);
$log_entry{metadata} = "$full_url\@$r $uuid";
$log_entry{svm_revision} = $r;
$email ||= "$author\@$uuid"
@@ -1915,12 +1917,14 @@ sub rebuild {
my ($rev_list, $ctx) = command_output_pipe("rev-list", $self->refname);
my $latest;
my $full_url = $self->full_url;
+ remove_username($full_url);
my $svn_uuid;
while (<$rev_list>) {
chomp;
my $c = $_;
die "Non-SHA1: $c\n" unless $c =~ /^$::sha1$/o;
my ($url, $rev, $uuid) = ::cmt_metadata($c);
+ remove_username($url);
# ignore merges (from set-tree)
next if (!defined $rev || !$uuid);
@@ -2094,6 +2098,10 @@ sub uri_encode {
$f
}
+sub remove_username {
+ $_[0] =~ s{^([^:]*://)[^@]+@}{$1};
+}
+
package Git::SVN::Prompt;
use strict;
use warnings;