From 18ea92bd818d38c808329abf77ee8f1ca156f446 Mon Sep 17 00:00:00 2001 From: Sam Vilain Date: Fri, 23 Feb 2007 12:32:29 +1300 Subject: [PATCH] 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 --- git-svn.perl | 8 ++++++++ 1 file changed, 8 insertions(+) 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;