diff options
author | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2013-08-17 11:57:58 +0100 |
---|---|---|
committer | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2013-08-17 11:57:58 +0100 |
commit | ab34d3425ffc141e64a3beb90868619c5a21b407 (patch) | |
tree | ad6449a65c11da842f8d79e173fc81b160d7a090 | |
parent | 17652b53bde8d7aa85a7cdd8fc6d7abcc94b2946 (diff) |
construct import commits differently (merge separate from contents)
-rwxr-xr-x | dgit | 25 |
1 files changed, 21 insertions, 4 deletions
@@ -336,6 +336,11 @@ sub is_orig_file ($) { m/\.orig(?:-\w+)?\.tar\.\w+$/; } +sub make_commit ($) { + my ($file) = @_; + return cmdoutput @git, qw(hash-object -w -t commit), $file; +} + sub generate_commit_from_dsc () { prep_ud(); chdir $ud or die $!; @@ -362,9 +367,8 @@ sub generate_commit_from_dsc () { my $authline = "$author $date"; $authline =~ m/^[^<>]+ \<\S+\> \d+ [-+]\d+$/ or die $authline; open C, ">../commit.tmp" or die $!; - print C "tree $tree\n" or die $!; - print C "parent $upload_hash\n" or die $! if $upload_hash; print C <<END or die $!; +tree $tree author $authline committer $authline @@ -373,10 +377,23 @@ $clogp->{Changes} # imported from the archive END close C or die $!; - my $commithash = cmdoutput @git, qw(hash-object -w -t commit ../commit.tmp); + my $commithash = make_commit qw(../commit.tmp); + if ($upload_hash) { + open C, ">../commit2.tmp" or die $!; + print C <<END or die $!; +tree $tree +parent $upload_hash +parent $commithash +author $authline +committer $authline + +Record $package ($clogp->{Version}) in archive suite $suite +END + $commithash = make_commit qw(../commit2.tmp); + } print "synthesised git commit from .dsc $clogp->{Version}\n"; chdir '../../../..' or die $!; - cmdoutput @git, qw(update-ref -m),"dgit synthesise $clogp->{Version}", + cmdoutput @git, qw(update-ref -m),"dgit fetch import $clogp->{Version}", 'DGIT_ARCHIVE', $commithash; cmdoutput @git, qw(log -n2), $commithash; # ... gives git a chance to complain if our commit is malformed |