-sub rm_subdir_cached ($) {
- my ($subdir) = @_;
- runcmd @git, qw(rm --quiet -rf --cached --ignore-unmatch), $subdir;
-}
-
-sub read_tree_subdir ($$) {
- my ($subdir, $new_tree_object) = @_;
- rm_subdir_cached $subdir;
- runcmd @git, qw(read-tree), "--prefix=$subdir/", $new_tree_object;
-}
-
-sub read_tree_debian ($) {
- my ($treeish) = @_;
- read_tree_subdir 'debian', "$treeish:debian";
- rm_subdir_cached 'debian/patches';
-}
-
-sub read_tree_upstream ($;$$) {
- my ($treeish, $keep_patches, $tree_with_debian) = @_;
- # if $tree_with_debian is supplied, will use that for debian/
- # otherwise will save and restore it.
- my $debian =
- $tree_with_debian ? "$tree_with_debian:debian"
- : cmdoutput @git, qw(write-tree --prefix=debian/);
- runcmd @git, qw(read-tree), $treeish;
- read_tree_subdir 'debian', $debian;
- rm_subdir_cached 'debian/patches' unless $keep_patches;
-};
-
-sub make_commit ($$) {
- my ($parents, $message_paras) = @_;
- my $tree = cmdoutput @git, qw(write-tree);
- my @cmd = (@git, qw(commit-tree), $tree);
- push @cmd, qw(-p), $_ foreach @$parents;
- push @cmd, qw(-m), $_ foreach @$message_paras;
- return cmdoutput @cmd;
-}
-