git-svn: fix some issues for people migrating from older versions
* Fixed logic for renaming old .rev_db -> .rev_db.$uuid * correctly handle manual migrations for those who decide to start use globbing to handle branches/tags over individual 'fetch' keys Signed-off-by: Eric Wong <normalperson@yhbt.net>
This commit is contained in:
10
git-svn.perl
10
git-svn.perl
@ -844,6 +844,8 @@ sub fetch_all {
|
|||||||
"svn-remote.$repo_id.${t}-maxRev") };
|
"svn-remote.$repo_id.${t}-maxRev") };
|
||||||
if (defined $max_rev && ($max_rev < $base)) {
|
if (defined $max_rev && ($max_rev < $base)) {
|
||||||
$base = $max_rev;
|
$base = $max_rev;
|
||||||
|
} elsif (!defined $max_rev) {
|
||||||
|
$base = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1066,10 +1068,7 @@ sub new {
|
|||||||
$self->{url} = command_oneline('config', '--get',
|
$self->{url} = command_oneline('config', '--get',
|
||||||
"svn-remote.$repo_id.url") or
|
"svn-remote.$repo_id.url") or
|
||||||
die "Failed to read \"svn-remote.$repo_id.url\" in config\n";
|
die "Failed to read \"svn-remote.$repo_id.url\" in config\n";
|
||||||
if ((-z $self->db_path || ! -e $self->db_path) &&
|
$self->rebuild;
|
||||||
::verify_ref($self->refname.'^0')) {
|
|
||||||
$self->rebuild;
|
|
||||||
}
|
|
||||||
$self;
|
$self;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1737,6 +1736,8 @@ sub set_tree {
|
|||||||
sub rebuild {
|
sub rebuild {
|
||||||
my ($self) = @_;
|
my ($self) = @_;
|
||||||
my $db_path = $self->db_path;
|
my $db_path = $self->db_path;
|
||||||
|
return if (-e $db_path && ! -z $db_path);
|
||||||
|
return unless ::verify_ref($self->refname.'^0');
|
||||||
if (-f $self->{db_root}) {
|
if (-f $self->{db_root}) {
|
||||||
rename $self->{db_root}, $db_path or die
|
rename $self->{db_root}, $db_path or die
|
||||||
"rename $self->{db_root} => $db_path failed: $!\n";
|
"rename $self->{db_root} => $db_path failed: $!\n";
|
||||||
@ -1863,6 +1864,7 @@ sub rev_db_set {
|
|||||||
|
|
||||||
sub rev_db_max {
|
sub rev_db_max {
|
||||||
my ($self) = @_;
|
my ($self) = @_;
|
||||||
|
$self->rebuild;
|
||||||
my $db_path = $self->db_path;
|
my $db_path = $self->db_path;
|
||||||
my @stat = stat $db_path or return 0;
|
my @stat = stat $db_path or return 0;
|
||||||
($stat[7] % 41) == 0 or die "$db_path inconsistent size: $stat[7]\n";
|
($stat[7] % 41) == 0 or die "$db_path inconsistent size: $stat[7]\n";
|
||||||
|
Reference in New Issue
Block a user