summaryrefslogtreecommitdiff
path: root/Debian
diff options
context:
space:
mode:
Diffstat (limited to 'Debian')
-rw-r--r--Debian/Dgit.pm10
1 files changed, 7 insertions, 3 deletions
diff --git a/Debian/Dgit.pm b/Debian/Dgit.pm
index d60de77..887fbb5 100644
--- a/Debian/Dgit.pm
+++ b/Debian/Dgit.pm
@@ -689,8 +689,11 @@ sub rm_subdir_cached ($) {
sub read_tree_subdir ($$) {
my ($subdir, $new_tree_object) = @_;
+ # If $new_tree_object is '', the subtree is deleted.
+ confess unless defined $new_tree_object;
rm_subdir_cached $subdir;
- runcmd qw(git read-tree), "--prefix=$subdir/", $new_tree_object;
+ runcmd qw(git read-tree), "--prefix=$subdir/", $new_tree_object
+ if length $new_tree_object;
}
sub read_tree_debian ($) {
@@ -702,9 +705,10 @@ sub read_tree_debian ($) {
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.
+ # otherwise will save and restore it. If $tree_with_debian
+ # is '' then debian/ is deleted.
my $debian =
- $tree_with_debian ? "$tree_with_debian:debian"
+ defined $tree_with_debian ? "$tree_with_debian:debian"
: cmdoutput qw(git write-tree --prefix=debian/);
runcmd qw(git read-tree), $treeish;
read_tree_subdir 'debian', $debian;