From c3db904b1de5630bd90655563f341d22e22986bc Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sun, 16 Jul 2017 11:41:14 +0100 Subject: dgit: unrepres. changes: Tolerate creation of symlinks Experimentally, dpkg-source on stretch will create patches to create new symlinks. (It will fail on attempts to modify existing symlinks and it ignores attempts to change plain file executability.) Implementation: add an alternative which tolerates the git symlink mode. This replaces the check on $oldmode, which in this context we know is all 0s and can therefore never match. While we're here, change the error message. Closes:#857382. Signed-off-by: Ian Jackson --- debian/changelog | 1 + dgit | 6 +++--- tests/tests/unrepresentable | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/debian/changelog b/debian/changelog index 478ad5f..aaaee20 100644 --- a/debian/changelog +++ b/debian/changelog @@ -9,6 +9,7 @@ dgit (3.12~) unstable; urgency=medium * dgit import: Right error message for missing files in .. * dgit import: Avoid making broken symlinks in .. * quilt fixup: Tolerate deletion of executable files. + * quilt fixup: Tolerate symlink creation (make patches). Closes:#857382. Important bugfixes to other components: * dgit-repos-server: Do not reject commits with no author/committer diff --git a/dgit b/dgit index d1bf213..42647ce 100755 --- a/dgit +++ b/dgit @@ -4924,9 +4924,9 @@ sub quiltify_trees_differ ($$;$$$) { unless $oldmode =~ m/^10/; } else { # creation - die "non-default mode or type\n" - unless $newmode =~ m/^100644$/ || - $oldmode =~ m/^100644$/; + die "creation with non-default mode\n" + unless $newmode =~ m/^100644$/ or + $newmode =~ m/^120000$/; } }; if ($@) { diff --git a/tests/tests/unrepresentable b/tests/tests/unrepresentable index 80b5a05..89df719 100755 --- a/tests/tests/unrepresentable +++ b/tests/tests/unrepresentable @@ -44,7 +44,7 @@ badly-1 src.c 'mode or type changed' git add src.c badly-2 -badly-1 new 'non-default mode' +badly-1 new 'creation with non-default mode' echo hi >new chmod 755 new git add new -- cgit v1.2.3