path: root/dgit
diff options
authorIan Jackson <>2017-07-16 11:28:50 +0100
committerIan Jackson <>2017-07-16 12:47:01 +0100
commit242ba73109ae30e7d8849b01f0c668b87d4f4d63 (patch)
tree16185417a19cfde848ce8f5d03109d8c1a50f6cc /dgit
parenta4d27ce9d75fc04b74daf8dfc93f5107c2b96778 (diff)
dgit: unrepres. changes: Tolerate deletion of executable files
We don't care what the old mode was; if we tell dpkg-source to record the deletion it can do so. But we do care that it was a file. Experimentally, dpkg-source on stretch ignores attempts to delete symlinks. The removal of the check for $newmode has no functional change, because in this context we know that $newmode is all 0s. If it wasn't, we would have been in "both old and new files exist", above. So that limb of the test will never match and should be removed. Signed-off-by: Ian Jackson <>
Diffstat (limited to 'dgit')
1 files changed, 2 insertions, 3 deletions
diff --git a/dgit b/dgit
index 1f15630..d1bf213 100755
--- a/dgit
+++ b/dgit
@@ -4920,9 +4920,8 @@ sub quiltify_trees_differ ($$;$$$) {
die "modified symlink\n" unless $newmode =~ m/^10/;
} elsif ($oldmode =~ m/[^0]/) {
# deletion
- die "non-default mode or type\n"
- unless $newmode =~ m/^100644$/ ||
- $oldmode =~ m/^100644$/;
+ die "deletion of symlink\n"
+ unless $oldmode =~ m/^10/;
} else {
# creation
die "non-default mode or type\n"