diff options
author | Junio C Hamano <junkio@cox.net> | 2006-10-25 14:10:50 -0700 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2006-10-25 14:10:50 -0700 |
commit | 01fe679a341ed3b1a816404faf76bf454712aa2f (patch) | |
tree | 68ef9f0749f0e3c9a7ddf81ec573dc41dc09835f | |
parent | 40eaac5abd66b8cafbd519726f59cf30815c10a4 (diff) | |
parent | 1f24c58724a64e7b100ae8d8e0318c9e564df88b (diff) | |
download | git-01fe679a341ed3b1a816404faf76bf454712aa2f.tar.gz |
Merge branch 'aw/cvsimport'
* aw/cvsimport:
cvsimport: move over to using git-for-each-ref to read refs.
-rwxr-xr-x | git-cvsimport.perl | 25 |
1 files changed, 10 insertions, 15 deletions
diff --git a/git-cvsimport.perl b/git-cvsimport.perl index e5a00a1285..14e2c6131b 100755 --- a/git-cvsimport.perl +++ b/git-cvsimport.perl @@ -495,22 +495,17 @@ unless(-d $git_dir) { $tip_at_start = `git-rev-parse --verify HEAD`; # Get the last import timestamps - opendir(D,"$git_dir/refs/heads"); - while(defined(my $head = readdir(D))) { - next if $head =~ /^\./; - open(F,"$git_dir/refs/heads/$head") - or die "Bad head branch: $head: $!\n"; - chomp(my $ftag = <F>); - close(F); - open(F,"git-cat-file commit $ftag |"); - while(<F>) { - next unless /^author\s.*\s(\d+)\s[-+]\d{4}$/; - $branch_date{$head} = $1; - last; - } - close(F); + my $fmt = '($ref, $author) = (%(refname), %(author));'; + open(H, "git-for-each-ref --perl --format='$fmt' refs/heads |") or + die "Cannot run git-for-each-ref: $!\n"; + while(defined(my $entry = <H>)) { + my ($ref, $author); + eval($entry) || die "cannot eval refs list: $@"; + my ($head) = ($ref =~ m|^refs/heads/(.*)|); + $author =~ /^.*\s(\d+)\s[-+]\d{4}$/; + $branch_date{$head} = $1; } - closedir(D); + close(H); } -d $git_dir |