diff options
authorIan Jackson <>2017-07-09 13:54:02 +0100
committerIan Jackson <>2017-07-09 13:54:51 +0100
commita04897e74b24b59ed2a212d967f3698f08fec438 (patch)
parent33699f6b4d0e36fca92d36be933f556758bb7ebe (diff)
dgit: Pass --no-renames to git diff-tree -z, avoiding potential trouble
Without this option, git-diff-tree might detect a rename (or possibly even a copy). If it does it prints a different output format with a status of C or R *and a separate filename*. The latter is an additional nul-terminated record and would get dgit's interpreter of the git diff-tree output out of step. Signed-off-by: Ian Jackson <>
2 files changed, 3 insertions, 2 deletions
diff --git a/debian/changelog b/debian/changelog
index 780fe23..5d78d25 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,7 @@
dgit (3.12~) unstable; urgency=medium
- *
+ Important bugfixes to dgit:
+ * Pass --no-renames to git diff-tree -z, avoiding potential trouble.
diff --git a/dgit b/dgit
index ccf5009..91172da 100755
--- a/dgit
+++ b/dgit
@@ -4891,7 +4891,7 @@ sub quiltify_trees_differ ($$;$$$) {
# a list of unrepresentable changes (removals of upstream files
# (as messages)
local $/=undef;
- my @cmd = (@git, qw(diff-tree -z));
+ my @cmd = (@git, qw(diff-tree -z --no-renames));
push @cmd, qw(--name-only) unless $unrepres;
push @cmd, qw(-r) if $finegrained || $unrepres;
push @cmd, $x, $y;