There were two places in the code where ill-formed commits were
generated: both psedumerges.
One is in dgit import-dsc, a fairly minor problem.
The other is in --overwrite and is very bad because that's an
important option.
Nothing in git seems to notice, unless you run git-fsck. Even a git
server does not, by default. However, some other popular git servers
do reject these broken commits.
I have tested this changes with git-fsck (by using the test suite
patches which follow in this series) and now everything seems fine.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
parent $dgitview
parent $archive_hash
author $authline
-commiter $authline
+committer $authline
$msg_msg
progress "Import, merging.";
my $tree = cmdoutput @git, qw(rev-parse), "$newhash:";
my $version = getfield $dsc, 'Version';
+ my $clogp = commit_getclogp $newhash;
+ my $authline = clogp_authline $clogp;
$newhash = make_commit_text <<END;
tree $tree
parent $newhash
parent $oldhash
+author $authline
+committer $authline
Merge $package ($version) import into $dstbranch
END