On Tue, 28 Feb 2023 07:39:15 +0400, Yadd wrote: > > thanks for this powerful tool. When using `dpt prepare` on a package > > that have backports, it shows the difference with last backport, not > > last unstable upload. You can try for example with lemonldap-ng.
Indeed, I've encountered this too, and it's annoying :) Any help in finding an improvement is very welcome. > > In lib/dpt-lib.sh, maybe you could replace > > TAG=$(git rev-list -n1 --tags) > or simply > TAG=$(git describe --abbrev=0) I have a hunch that this doesn't work in all cases, and before testing it, I even hit another issue: Example: libsql-translator-perl % git tag | grep debian/1\. archive/debian/1.60-1 archive/debian/1.61-1 archive/debian/1.62-1 debian/1.60-1 debian/1.61-1 debian/1.62-1 debian/1.62-2 debian/1.62-3 % git rev-list -n1 --tags=debian ed7aa767edfdb042a5bbc4a19722236e17afd891 [matches tag: debian/1.62-3] % git describe --abbrev=0 archive/debian/1.62-1 Ehm, no; first we don't want the archive/debian/* tag (from a previous dgit upload) -- although maybe they are the same in practice? -- , and second we want the -3 upload. Maybe like this: % git describe --abbrev=0 --tags debian/1.62-3 Not like this: % git describe --abbrev=0 --match "debian/*" debian/1.62-1 But maybe this: % git describe --abbrev=0 --match "debian/*" --tags debian/1.62-3 Anyway, now to my actual question: This gitddiff function is used for 2 purposes / on 2 occasions in the dpt-* code: - before working on a package, for whatever reason, after pulling, to check what happened in the repo since the last upload; that's the dpt-prepare case - after importing a new upstream release, to see all changes since the last upload and to know what we need to change (that's in dpt-import-orig) - (I also have a git alias: ddiff = "!git diff --ignore-space-at-eol $(if [ \"$(dpkg-source --print-format .)\" != \"3.0 (native)\" ]; then git rev-list -n1 --tags=debian; else git rev-list -n1 --tags; fi)" so `git ddiff' does basically the same at any time) I'm wondering that `git describe …' will do after `dpt-import-orig', so let's try with our example package libsql-translator-perl: `dpt import-orig' … % git rev-list -n1 --tags=debian ed7aa767edfdb042a5bbc4a19722236e17afd891 (still the same debian/1.62-3) % git describe --abbrev=0 upstream/1.63 Ha, that's what I suspected :) % git describe --abbrev=0 --tags upstream/1.63 Same … But this works: % git describe --abbrev=0 --match "debian/*" --tags # [1] debian/1.62-3 So this looks quite well. Maybe, in order to git rid of the separation between native and non-native package, something funky as % git describe --abbrev=0 --match "$(gbp config DEFAULT.debian-tag | sed -e 's/%(version)s/*/g;')" --tags # [2] debian/1.62-3 :) Alright, maybe we all try out either [1] or [2] a bit? I've updated my .gitconfig and my local version of scripts/lib/dpt-lib.sh to use [2]. Cheers, gregor -- .''`. https://info.comodo.priv.at -- Debian Developer https://www.debian.org : :' : OpenPGP fingerprint D1E1 316E 93A7 60A8 104D 85FA BB3A 6801 8649 AA06 `. `' Member VIBE!AT & SPI Inc. -- Supporter Free Software Foundation Europe `-
signature.asc
Description: Digital Signature