Bug#939602: debdiff: no longer diffs contents of sources, diffs only quiltage
Control: notforwarded -1 Control: retitle -1 debdiff: show diff to patches twice with --apply-patches Control: severity -1 minor On Mon, Sep 09, 2019 at 08:14:54PM +0200, Adam Borowski wrote: > On Fri, Sep 06, 2019 at 08:08:26PM +0100, Adam D. Barratt wrote: > > On Fri, 2019-09-06 at 20:14 +0200, Adam Borowski wrote: > > > A regression from 1.0 to 3.0 (quilt) format: > > [...] > > > With debdiff on 1.0 packages, or with regular diff on unpacked source > > > trees, you get a comparison of the sources that'll be compiled/etc -- > > > > Unless it's 1.0 with any form of patch system that doesn't result in > > the changes being applied directly, e.g. dpatch or even quilt. > > Well yeah, it's not supposed to diff containers recursively. Looking inside > dpatch is no different from eg. looking inside gcc's tarball-in-tarball. I just merged smcv's patch that adds an --apply-patches option (and related config option), however it's not on by default. Also it's going to keep repeating the patch diff since it it's not ignoring the patches by default. Honestly, I wouldn't like either of them, and there are options to achieve both of them, so I don't think I want to merge default changes on that regard, but I'm not going to wontfix this bug just yet. -- regards, Mattia Rizzolo GPG Key: 66AE 2B4A FCCF 3F52 DA18 4D18 4B04 3FCD B944 4540 .''`. More about me: https://mapreri.org : :' : Launchpad user: https://launchpad.net/~mapreri `. `'` Debian QA page: https://qa.debian.org/developer.php?login=mattia `- signature.asc Description: PGP signature
Bug#939602: debdiff: no longer diffs contents of sources, diffs only quiltage
On Fri, Sep 06, 2019 at 08:08:26PM +0100, Adam D. Barratt wrote: > On Fri, 2019-09-06 at 20:14 +0200, Adam Borowski wrote: > > A regression from 1.0 to 3.0 (quilt) format: > [...] > > With debdiff on 1.0 packages, or with regular diff on unpacked source > > trees, you get a comparison of the sources that'll be compiled/etc -- > > Unless it's 1.0 with any form of patch system that doesn't result in > the changes being applied directly, e.g. dpatch or even quilt. Well yeah, it's not supposed to diff containers recursively. Looking inside dpatch is no different from eg. looking inside gcc's tarball-in-tarball. > > ie, anything that matters for the package's functionality. But with > > 3.0, you get only a diff of the outer container. > > > > The new behaviour may be useful at most for comparing changed patch > > metadata, or for debugging quilt-related issues, but not the actual > > code. > > While you say "no longer", and "new behaviour", I will note that the > code in question has been in debdiff for over a decade. See #475506. Or rather: it never had proper support for "3.0 (quilt)" implemented. #475506 complains about differences showing twice. And at that point, 3.0 was an early preview, thus a quick hack that got rid of one of the copies was acceptable. debdiff is a major part of workflows for many of us; in my case I run it on every single non-NEW upload I sponsor. And even when both versions have the same upstream version, double diffs are pretty hard to read. So far I only cursed that but did not investigate the cause -- and only now I realized that the double diffage doesn't seem to be intended. Meow! -- ⢀⣴⠾⠻⢶⣦⠀ Latin: meow 4 characters, 4 columns, 4 bytes ⣾⠁⢠⠒⠀⣿⡁ Greek: μεου 4 characters, 4 columns, 8 bytes ⢿⡄⠘⠷⠚⠋ Runes: ᛗᛖᛟᚹ 4 characters, 4 columns, 12 bytes ⠈⠳⣄ Chinese: 喵 1 character, 2 columns, 3 bytes <-- best!
Bug#939602: debdiff: no longer diffs contents of sources, diffs only quiltage
On Fri, 2019-09-06 at 20:14 +0200, Adam Borowski wrote: > A regression from 1.0 to 3.0 (quilt) format: [...] > With debdiff on 1.0 packages, or with regular diff on unpacked source > trees, you get a comparison of the sources that'll be compiled/etc -- Unless it's 1.0 with any form of patch system that doesn't result in the changes being applied directly, e.g. dpatch or even quilt. > ie, anything that matters for the package's functionality. But with > 3.0, you get only a diff of the outer container. > > The new behaviour may be useful at most for comparing changed patch > metadata, or for debugging quilt-related issues, but not the actual > code. While you say "no longer", and "new behaviour", I will note that the code in question has been in debdiff for over a decade. See #475506. Regards, Adam
Bug#939602: debdiff: no longer diffs contents of sources, diffs only quiltage
Package: devscripts Version: 2.19.6 Severity: normal Hi! A regression from 1.0 to 3.0 (quilt) format: dget https://snapshot.debian.org/archive/debian/20190710T163017Z/pool/main/t/tfortune/tfortune_1.0.0-2.dsc dget https://deb.debian.org/debian/pool/main/t/tfortune/tfortune_1.0.1-1.dsc # Sorry for no snapshot.d.o link, it's not there yet. rm -rf tfortune*/.pc tfortune*/debian/patches Compare: debdiff tfortune*dsc diff -Nurd tfortune-1.0.0/ tfortune-1.0.1/ With debdiff on 1.0 packages, or with regular diff on unpacked source trees, you get a comparison of the sources that'll be compiled/etc -- ie, anything that matters for the package's functionality. But with 3.0, you get only a diff of the outer container. The new behaviour may be useful at most for comparing changed patch metadata, or for debugging quilt-related issues, but not the actual code. Of course, that's still a valid use case, but answers a different question that what I'd expect from debdiff. It's worth keeping as an option for those debugging quilt problems -- but both coders and release people would want to diff the contents, thus I'd say the old behaviour should be default, and that's why I'm reporting this as a regression not a feature. Meow! -- Package-specific info: --- /etc/devscripts.conf --- --- ~/.devscripts --- DEBCHANGE_RELEASE_HEURISTIC=log DEBSIGN_KEYID=FD9CE2D8D7754B78AB279BBD2C3B436FEAC68101 DSCVERIFY_KEYRINGS="~/.gnupg/pubring.gpg" -- System Information: Debian Release: bullseye/sid APT prefers unstable-debug APT policy: (500, 'unstable-debug'), (500, 'unstable'), (500, 'testing'), (500, 'stable'), (1, 'experimental') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 5.3.0-rc7-00047-g0566c3226c1a (SMP w/64 CPU cores) Locale: LANG=C.UTF-8, LC_CTYPE=C.UTF-8 (charmap=UTF-8), LANGUAGE=en_US:en (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: sysvinit (via /sbin/init) Versions of packages devscripts depends on: ii dpkg-dev 1.19.7 ii fakeroot 1.23-1 ii file 1:5.37-5 ii gnupg 2.2.17-3 ii gpgv 2.2.17-3 ii libc6 2.28-10 ii libfile-homedir-perl 1.004-1 ii libfile-which-perl 1.23-1 ii libipc-run-perl20180523.0-1 ii libmoo-perl2.003004-2 ii libstring-shellquote-perl 1.04-1 ii libwww-perl6.39-1 ii patchutils 0.3.4-2+b1 ii perl 5.28.1-6 ii python33.7.3-1 ii sensible-utils 0.0.12 ii wdiff 1.2.2-2+b1 Versions of packages devscripts recommends: ii apt 1.9.1 ii at 3.1.23-1+b1 ii curl7.65.3-1 ii dctrl-tools 2.24-3+b1 ii debian-keyring 2019.08.23 ii dput-ng [dput] 1.28 ii equivs 2.2.0 ii libdistro-info-perl 0.21 ii libdpkg-perl1.19.7 ii libencode-locale-perl 1.05-1 ii libgit-wrapper-perl 0.048-1 ii libgitlab-api-v4-perl 0.21-1 ii liblist-compare-perl0.53-1 ii liblwp-protocol-https-perl 6.07-2 ii libsoap-lite-perl 1.27-1 ii libtry-tiny-perl0.30-1 ii liburi-perl 1.76-1 ii licensecheck3.0.31-3 ii lintian 2.20.0 ii man-db 2.8.7-3 ii patch 2.7.6-6 ii python3-apt 1.8.4 ii python3-debian 0.1.36 ii python3-magic 2:0.4.15-2 ii python3-requests2.21.0-1 ii python3-unidiff 0.5.5-2 ii python3-xdg 0.25-5 ii strace 4.26-0.2 ii unzip 6.0-25 ii wget1.20.3-1+b1 ii xz-utils5.2.4-1+b1 Versions of packages devscripts suggests: ii adequate 0.15.2 ii autopkgtest 5.11 pn bls-standalone ii bsd-mailx [mailx]8.1.2-0.20180807cvs-1+b1 ii build-essential 12.7 pn check-all-the-things pn cvs-buildpackage ii debhelper12.5.4 pn devscripts-el pn diffoscope pn disorderfs ii dose-extra 5.0.1-14 pn duck pn faketime pn gnuplot pn how-can-i-help ii libauthen-sasl-perl 2.1600-1 pn libdbd-pg-perl ii libfile-desktopentry-perl0.22-1 pn libnet-smtps-perl pn libterm-size-perl ii libtimedate-perl 2.3000-2 pn libyaml-syck-perl pn mozilla-devscripts pn mutt ii openssh-client [ssh-client] 1:8.0p1-6 ii piuparts 1.0.1 pn postgresql-client