Yep, I can at least reproduce this issue. What I uploaded was correct on disk and in git: https://git.launchpad.net/~paelzer/ubuntu/+source/diffoscope/diff/?h=danilogondolfo_merge_mantic_1&id=bf6c6188d944806b516aabe65bf328d906768336&id2=202ad0b6515ef427291d5747406809c3fc11cc91 I recreated a branch meant to amend this issue. https://git.launchpad.net/~paelzer/ubuntu/+source/diffoscope/diff/?h=fix-lost-test-files-mantic&id=0dd920ae38eb33c141858e0cd1d5ecaa0266ce1a&id2=202ad0b6515ef427291d5747406809c3fc11cc91 But as expected, other than the changelog diff that is the same. Yet on buildpackage from that tree and checking debdiff I see: ... Binary files /tmp/JqU_4VSXKy/diffoscope-243/tests/data/elfmix2.a and /tmp/tbGODW93AS/diffoscope-243ubuntu2/tests/data/elfmix2.a differ Binary files /tmp/JqU_4VSXKy/diffoscope-243/tests/data/test1.a and /tmp/tbGODW93AS/diffoscope-243ubuntu2/tests/data/test1.a differ Binary files /tmp/JqU_4VSXKy/diffoscope-243/tests/data/test1.o and /tmp/tbGODW93AS/diffoscope-243ubuntu2/tests/data/test1.o differ Binary files /tmp/JqU_4VSXKy/diffoscope-243/tests/data/test2.a and /tmp/tbGODW93AS/diffoscope-243ubuntu2/tests/data/test2.a differ Binary files /tmp/JqU_4VSXKy/diffoscope-243/tests/data/test2.o and /tmp/tbGODW93AS/diffoscope-243ubuntu2/tests/data/test2.o differ I feel that this is either a) something super weird proud to eventually have understood b) something super embarrassing that I've forgotten about native packages and overlook now just waiting on my to facepalm hard Well either way, it is not in there: $ cd $(mktemp -d); pull-debian-source diffoscope &>/dev/null; tar tf diffoscope_243.tar.xz | grep elfmix2.a diffoscope-243/tests/data/elfmix2.a $ cd $(mktemp -d); pull-lp-source diffoscope &>/dev/null; tar tf diffoscope_243ubuntu1.tar.xz | grep elfmix2.a This made me realize that it is very selective, look at this: $ rm ../diffoscope_243ubuntu2.tar.xz; ll tests/data/elfmix*; dpkg-buildpackage -S -nc -I -i -d -sa -v240ubuntu1 $(git ubuntu prepare-upload args); tar tf ../diffoscope_243ubuntu2.tar.xz | grep elfmix -rw-rw-r-- 1 paelzer paelzer 5280 Jul 10 14:38 tests/data/elfmix1.not_a -rw-rw-r-- 1 paelzer paelzer 5280 Jul 11 07:22 tests/data/elfmix2.a -rw-rw-r-- 1 paelzer paelzer 199 Jul 10 14:38 tests/data/elfmix_disassembly_expected_diff -rw-rw-r-- 1 paelzer paelzer 154 Jul 10 14:38 tests/data/elfmix_mach_o_expected_diff__text -rw-rw-r-- 1 paelzer paelzer 95 Jul 10 14:38 tests/data/elfmix_src_c_expected_diff -rw-rw-r-- 1 paelzer paelzer 170 Jul 10 14:38 tests/data/elfmix_x_obj_expected_diff -rw-rw-r-- 1 paelzer paelzer 167 Jul 10 14:38 tests/data/elfmix_x_obj_objdump_expected_diff ... diffoscope/tests/data/elfmix1.not_a diffoscope/tests/data/elfmix_disassembly_expected_diff diffoscope/tests/data/elfmix_mach_o_expected_diff__text diffoscope/tests/data/elfmix_src_c_expected_diff diffoscope/tests/data/elfmix_x_obj_expected_diff diffoscope/tests/data/elfmix_x_obj_objdump_expected_diff And that made me realize that all the files that are missing are .a and .o files. That looks like a build cleanup stage removing them by accident. So let me check the set of usual arguments, best candidates are those in regard to cleaning and excluding. Yep, as expected by now the -I (which in some other build cases is needed) is wreaking havoc here. Dropping -I from buildpackage (and thereby from dpkg-source) creates a tarball that is ok. Double checking before upload ... Yes AFAICS tarball ok, dsc ok, changes ok re-sponsoring with this fixed: $ dput ubuntu ../diffoscope_243ubuntu2_source.changes Uploading diffoscope using ftp to ubuntu (host: upload.ubuntu.com; directory: /ubuntu) running updatemaintainer: Stop if ubuntu changes are without ubuntu maintainer. running checksum: verify checksums before uploading running gitubuntu: Warn if uploading without git-ubuntu Vcs-* entries. running releasemismatch: Warn about mismatching suffixesg e.g. focal with a XX.YY not being 20.04 running check-debs: makes sure the upload contains a binary package running ppaforppaonly: Stop uploads to the archive with or to ppa without ~ppa suffix. running supported-distribution: check whether the target distribution is currently supported (using distro-info) {'allowed': ['release', 'proposed', 'backports', 'security'], 'known': ['release', 'proposed', 'updates', 'backports', 'security']} running badauthor: Stop if uploading with root@ or ubuntu@ email adresses. running required-fields: check whether a field is present and non-empty in the changes file running gpg: check GnuPG signatures before the upload running placeholderbug: Stop if using common placeholder numbers as bug reference. running nobug: Stop if uploading without any bug reference. running suite-mismatch: check the target distribution for common errors Uploading diffoscope_243ubuntu2.dsc Uploading diffoscope_243ubuntu2.tar.xz Uploading diffoscope_243ubuntu2_source.buildinfo Uploading diffoscope_243ubuntu2_source.changes P.S. that also explains why git-ubuntu couldn't match the tree-ish (with the .a/.o files) with the upload (without).