chiark / gitweb /
Dgit.pm: Move make_commit (git-commit-tree wrapper) from gdr
[dgit.git] / Debian / Dgit.pm
index 23db6378fe1a06bfb388c25293b4e9e3822d51f9..e9a85f76b7e4145263d478e0b11f217f145d5992 100644 (file)
@@ -62,7 +62,7 @@ BEGIN {
                      git_reflog_action_msg  git_update_ref_cmd
                      rm_subdir_cached read_tree_subdir
                      read_tree_debian read_tree_upstream
-                     hash_commit_text
+                     make_commit hash_commit_text
                      reflog_cache_insert reflog_cache_lookup
                       $package_re $component_re $deliberately_re
                      $distro_re $versiontag_re $series_filename_re
@@ -831,6 +831,15 @@ sub parsechangelog_loop ($$$) {
     close CLOGS or $?==SIGPIPE or failedcmd @$clogcmd;
 }      
 
+sub make_commit ($$) {
+    my ($parents, $message_paras) = @_;
+    my $tree = cmdoutput qw(git write-tree);
+    my @cmd = (qw(git commit-tree), $tree);
+    push @cmd, qw(-p), $_ foreach @$parents;
+    push @cmd, qw(-m), $_ foreach @$message_paras;
+    return cmdoutput @cmd;
+}
+
 sub hash_commit_text ($) {
     my ($text) = @_;
     my ($out, $in);