diff options
author | Sam Vilain <sam.vilain@catalyst.net.nz> | 2007-02-23 12:32:29 +1300 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2007-02-23 01:01:02 -0800 |
commit | 18ea92bd818d38c808329abf77ee8f1ca156f446 (patch) | |
tree | 7490f27d4825aed635abb0963cea4b26bb9607de /git-svn.perl | |
parent | 5253dc33b713e3de63a25305bfc5e966999a0fbe (diff) | |
download | git-18ea92bd818d38c808329abf77ee8f1ca156f446.tar.gz |
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-x | git-svn.perl | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/git-svn.perl b/git-svn.perl index a6d98f1608..ea5afb7f80 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; |