git-svn: don't write to the config file from --follow-parent
Having 'fetch' entries in the config file created from --follow-parent is wasteful because it can cause *future* of invocations to follow revisions we were never interested in in the first place. Signed-off-by: Eric Wong <normalperson@yhbt.net>
This commit is contained in:
parent
ce4b4af7ff
commit
d8115c5104
20
git-svn.perl
20
git-svn.perl
@ -724,7 +724,7 @@ sub find_existing_remote {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sub init_remote_config {
|
sub init_remote_config {
|
||||||
my ($self, $url) = @_;
|
my ($self, $url, $no_write) = @_;
|
||||||
$url =~ s!/+$!!; # strip trailing slash
|
$url =~ s!/+$!!; # strip trailing slash
|
||||||
my $r = read_all_remotes();
|
my $r = read_all_remotes();
|
||||||
my $existing = find_existing_remote($url, $r);
|
my $existing = find_existing_remote($url, $r);
|
||||||
@ -769,19 +769,21 @@ sub init_remote_config {
|
|||||||
die "svn-remote.$xrepo_id.fetch already set to track ",
|
die "svn-remote.$xrepo_id.fetch already set to track ",
|
||||||
"$xpath:refs/remotes/", $self->refname, "\n";
|
"$xpath:refs/remotes/", $self->refname, "\n";
|
||||||
}
|
}
|
||||||
command_noisy('config',
|
unless ($no_write) {
|
||||||
"svn-remote.$self->{repo_id}.url", $url);
|
command_noisy('config',
|
||||||
command_noisy('config', '--add',
|
"svn-remote.$self->{repo_id}.url", $url);
|
||||||
"svn-remote.$self->{repo_id}.fetch",
|
command_noisy('config', '--add',
|
||||||
"$self->{path}:".$self->refname);
|
"svn-remote.$self->{repo_id}.fetch",
|
||||||
|
"$self->{path}:".$self->refname);
|
||||||
|
}
|
||||||
$self->{url} = $url;
|
$self->{url} = $url;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub init {
|
sub init {
|
||||||
my ($class, $url, $path, $repo_id, $ref_id) = @_;
|
my ($class, $url, $path, $repo_id, $ref_id, $no_write) = @_;
|
||||||
my $self = _new($class, $repo_id, $ref_id, $path);
|
my $self = _new($class, $repo_id, $ref_id, $path);
|
||||||
if (defined $url) {
|
if (defined $url) {
|
||||||
$self->init_remote_config($url);
|
$self->init_remote_config($url, $no_write);
|
||||||
}
|
}
|
||||||
$self;
|
$self;
|
||||||
}
|
}
|
||||||
@ -1112,7 +1114,7 @@ sub find_parent_branch {
|
|||||||
# just grow a tail if we're not unique enough :x
|
# just grow a tail if we're not unique enough :x
|
||||||
$ref_id .= '-' while find_ref($ref_id);
|
$ref_id .= '-' while find_ref($ref_id);
|
||||||
print STDERR "Initializing parent: $ref_id\n";
|
print STDERR "Initializing parent: $ref_id\n";
|
||||||
$gs = Git::SVN->init($new_url, '', $ref_id, $ref_id);
|
$gs = Git::SVN->init($new_url, '', $ref_id, $ref_id, 1);
|
||||||
}
|
}
|
||||||
my ($r0, $parent) = $gs->find_rev_before($r, 1);
|
my ($r0, $parent) = $gs->find_rev_before($r, 1);
|
||||||
if ($_follow_parent && (!defined $r0 || !defined $parent)) {
|
if ($_follow_parent && (!defined $r0 || !defined $parent)) {
|
||||||
|
@ -34,7 +34,7 @@ test_expect_success 'init and fetch --follow-parent a moved directory' "
|
|||||||
= \"\`git-rev-parse --verify refs/remotes/thunk~1\`\" &&
|
= \"\`git-rev-parse --verify refs/remotes/thunk~1\`\" &&
|
||||||
test \"\`git-cat-file blob refs/remotes/thunk:readme |\
|
test \"\`git-cat-file blob refs/remotes/thunk:readme |\
|
||||||
sed -n -e '3p'\`\" = goodbye &&
|
sed -n -e '3p'\`\" = goodbye &&
|
||||||
test -n \"\`git-config --get svn-remote.git-svn.fetch \
|
test -z \"\`git-config --get svn-remote.git-svn.fetch \
|
||||||
'^trunk:refs/remotes/thunk@2$'\`\"
|
'^trunk:refs/remotes/thunk@2$'\`\"
|
||||||
"
|
"
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user