Code

git-svn: unlink index files that were globbed, too
authorEric Wong <normalperson@yhbt.net>
Wed, 2 Jan 2008 18:10:03 +0000 (10:10 -0800)
committerJunio C Hamano <gitster@pobox.com>
Wed, 2 Jan 2008 18:44:22 +0000 (10:44 -0800)
commit 3157dd9e89a71e80673d0bc21b5c0630f3b1fe68 (git-svn: unlink
internal index files after operations) introduced unlinking
index files after fetching.  However, this missed indices for
refs that were created by globbing branches and tags.  This will
track all refs we ever touch during a fetch and unlink them at
exit time.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-svn.perl

index 9b1113a33660c3a6565db2f81cb854e8640db6c5..2c97b05885e4323fc175741e20a71f91bfbf27de 100755 (executable)
@@ -1283,8 +1283,11 @@ BEGIN {
        }
 }
 
-my %LOCKFILES;
-END { unlink keys %LOCKFILES if %LOCKFILES }
+my (%LOCKFILES, %INDEX_FILES);
+END {
+       unlink keys %LOCKFILES if %LOCKFILES;
+       unlink keys %INDEX_FILES if %INDEX_FILES;
+}
 
 sub resolve_local_globs {
        my ($url, $fetch, $glob_spec) = @_;
@@ -1376,7 +1379,6 @@ sub fetch_all {
 
        ($base, $head) = parse_revision_argument($base, $head);
        $ra->gs_fetch_loop_common($base, $head, \@gs, \@globs);
-       unlink $_->{index} foreach @gs;
 }
 
 sub read_all_remotes {
@@ -3945,6 +3947,7 @@ sub gs_fetch_loop_common {
                                if ($log_entry) {
                                        $gs->do_git_commit($log_entry);
                                }
+                               $INDEX_FILES{$gs->{index}} = 1;
                        }
                        foreach my $g (@$globs) {
                                my $k = "svn-remote.$g->{remote}." .