summaryrefslogtreecommitdiff
path: root/git-svn.perl
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2007-02-16 12:05:33 (GMT)
committerEric Wong <normalperson@yhbt.net>2007-02-23 08:57:13 (GMT)
commitd6d3346babaf19864ea104b0140279e62f32f7e3 (patch)
tree92e1353b3c90786073c7b193290e44ab5b91c4d2 /git-svn.perl
parent905f8b7dfc2c520b91f418ab0f2aecb1c371fbe4 (diff)
downloadgit-d6d3346babaf19864ea104b0140279e62f32f7e3.zip
git-d6d3346babaf19864ea104b0140279e62f32f7e3.tar.gz
git-d6d3346babaf19864ea104b0140279e62f32f7e3.tar.bz2
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>
Diffstat (limited to 'git-svn.perl')
-rwxr-xr-xgit-svn.perl10
1 files changed, 6 insertions, 4 deletions
diff --git a/git-svn.perl b/git-svn.perl
index eca08bd..d7fc9aa 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -844,6 +844,8 @@ sub fetch_all {
"svn-remote.$repo_id.${t}-maxRev") };
if (defined $max_rev && ($max_rev < $base)) {
$base = $max_rev;
+ } elsif (!defined $max_rev) {
+ $base = 0;
}
}
@@ -1066,10 +1068,7 @@ sub new {
$self->{url} = command_oneline('config', '--get',
"svn-remote.$repo_id.url") or
die "Failed to read \"svn-remote.$repo_id.url\" in config\n";
- if ((-z $self->db_path || ! -e $self->db_path) &&
- ::verify_ref($self->refname.'^0')) {
- $self->rebuild;
- }
+ $self->rebuild;
$self;
}
@@ -1737,6 +1736,8 @@ sub set_tree {
sub rebuild {
my ($self) = @_;
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}) {
rename $self->{db_root}, $db_path or die
"rename $self->{db_root} => $db_path failed: $!\n";
@@ -1863,6 +1864,7 @@ sub rev_db_set {
sub rev_db_max {
my ($self) = @_;
+ $self->rebuild;
my $db_path = $self->db_path;
my @stat = stat $db_path or return 0;
($stat[7] % 41) == 0 or die "$db_path inconsistent size: $stat[7]\n";