Bug#1032105: pkg-perl-tools: [dpt prepare] gitddiff shouldn't use last tag but last tag in current branch
Yadd
yadd at debian.org
Wed Mar 1 03:27:13 GMT 2023
On 2/28/23 20:26, gregor herrmann wrote:
> 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].
Hi,
I tried also [2], perfect with all Perl packages I've locally + 1500
nodejs packages, works perfectly!
Cheers,
Yadd
More information about the pkg-perl-maintainers
mailing list