From c974b978761dfae45cf673ca0a7852f21bc39956 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sat, 29 Jun 2019 17:08:39 +0100 Subject: Dgit.pm: read_tree_*: Treat '' as meaning 'delete this' No functional change with existing callers. Signed-off-by: Ian Jackson --- Debian/Dgit.pm | 10 +++++++--- 1 file 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; -- cgit v1.2.3