projects
/
git.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
apply: allow-binary-replacement.
[git.git]
/
git-archimport.perl
diff --git
a/git-archimport.perl
b/git-archimport.perl
index
3749b8b
..
23becb7
100755
(executable)
--- a/
git-archimport.perl
+++ b/
git-archimport.perl
@@
-228,10
+228,12
@@
foreach my $ps (@psets) {
# skip commits already in repo
#
if (ptag($ps->{id})) {
# skip commits already in repo
#
if (ptag($ps->{id})) {
- $opt_v && print "Skipping already imported: $ps->{id}\n";
+ $opt_v && print "
*
Skipping already imported: $ps->{id}\n";
next;
}
next;
}
+ print " * Starting to work on $ps->{id}\n";
+
#
# create the branch if needed
#
#
# create the branch if needed
#
@@
-408,8
+410,7
@@
foreach my $ps (@psets) {
open HEAD, ">$git_dir/refs/heads/$ps->{branch}";
print HEAD $commitid;
close HEAD;
open HEAD, ">$git_dir/refs/heads/$ps->{branch}";
print HEAD $commitid;
close HEAD;
- unlink ("$git_dir/HEAD");
- symlink("refs/heads/$ps->{branch}","$git_dir/HEAD");
+ system('git-update-ref', 'HEAD', "$ps->{branch}");
# tag accordingly
ptag($ps->{id}, $commitid); # private tag
# tag accordingly
ptag($ps->{id}, $commitid); # private tag
@@
-563,6
+564,11
@@
sub parselog {
next if $t =~ m!\{arch\}/!;
next if $t =~ m!\.arch-ids/!;
next if $t =~ m!\.arch-inventory$!;
next if $t =~ m!\{arch\}/!;
next if $t =~ m!\.arch-ids/!;
next if $t =~ m!\.arch-inventory$!;
+ # tla cat-archive-log will give us filenames with spaces as file\(sp)name - why?
+ # we can assume that any filename with \ indicates some pika escaping that we want to get rid of.
+ if ($t =~ /\\/ ){
+ $t = `tla escape --unescaped '$t'`;
+ }
push (@tmp, shell_quote($t));
}
@$ref = @tmp;
push (@tmp, shell_quote($t));
}
@$ref = @tmp;
@@
-675,6
+681,10
@@
sub find_parents {
# that branch.
#
foreach my $branch (keys %branches) {
# that branch.
#
foreach my $branch (keys %branches) {
+
+ # check that we actually know about the branch
+ next unless -e "$git_dir/refs/heads/$branch";
+
my $mergebase = `git-merge-base $branch $ps->{branch}`;
die "Cannot find merge base for $branch and $ps->{branch}" if $?;
chomp $mergebase;
my $mergebase = `git-merge-base $branch $ps->{branch}`;
die "Cannot find merge base for $branch and $ps->{branch}" if $?;
chomp $mergebase;