[git-buildpackage] gbp does not recognize the newly merged & tagged upstream version
Guido Günther
agx at sigxcpu.org
Thu Apr 20 17:54:52 CEST 2017
On Thu, Apr 20, 2017 at 03:41:16PM +0000, Lukasz Walewski wrote:
> >-----Ursprüngliche Nachricht-----
> >Von: Guido Günther [mailto:agx at sigxcpu.org]
> >Gesendet: Donnerstag, 20. April 2017 17:01
> >An: Lukasz Walewski
> >Cc: git-buildpackage at lists.sigxcpu.org
> >Betreff: Re: [git-buildpackage] gbp does not recognize the newly merged
> >& tagged upstream version
> >
> >> Should I commit the merge first?
> >
> >Ahh...yes, commit first - it won't work when you did not commit. The tag
> >should also be an annotated tag (not a lightweight one). If this still
> >fails can you send the output a run with --verbose?
>
> Yeah, I suspected that. OK, so I gave it a fresh run:
>
> $ git clone ...
> $ vi debian/gbp.conf # fixed upstream-tag option
> $ git commit -a
>
> $ git merge v1.0.3
> $ vi conflicted_file # resolved conflict
> $ git add conflicted_file
> $ git commit
> [debian b2ef347] Merge tag 'v1.0.3' into debian
>
> $ gbp dch --snapshot --auto --verbose debian/
> gbp:debug: ['git', 'rev-parse', '--show-cdup']
> gbp:debug: ['git', 'rev-parse', '--is-bare-repository']
> gbp:debug: ['git', 'symbolic-ref', 'HEAD']
> gbp:debug: ['git', 'show-ref', 'refs/heads/debian']
> gbp:debug: ['git', 'tag', '-l', 'debian/1.0.2-2']
> gbp:debug: ['git', 'tag', '-l', 'debian/1.0.2-2']
> gbp:debug: ['git', 'log', '--pretty=format:%H', '-1', '--', 'debian/changelog']
> gbp:info: Changelog last touched at '7e1c5bc392ee8b82ccf2e6c25144f4915158f5ab'
> gbp:info: Continuing from commit '7e1c5bc392ee8b82ccf2e6c25144f4915158f5ab'
> gbp:info: Only looking for changes on 'debian/'
> gbp:debug: ['git', 'log', '--pretty=format:%H', '7e1c5bc392ee8b82ccf2e6c25144f4915158f5ab..HEAD', '--no-merges', '--', 'debian/']
> gbp:debug: ['git', 'describe', '--match', 'v*', '--abbrev=0', 'HEAD']
That' the important part. If this command doesn't find anything it does
not pickup the new upstream version…
> gbp:debug: Found upstream version 1.0.3-1.
…but it did this time.
> gbp:debug: /usr/bin/dpkg ['--compare-versions'] ['1.0.3-1', 'lt', '1.0.2-2']
> gbp:debug: /usr/bin/dpkg ['--compare-versions'] ['1.0.3-1', 'gt', '1.0.2-2']
> gbp:debug: ['git', 'rev-parse', '--quiet', '--verify', '3c47bd17616d280426d565bd7db15fa5b6627ada^0']
> gbp:debug: ['git', 'show', '--pretty=format:%an%x00%ae%x00%ad%x00%cn%x00%ce%x00%cd%x00%s%x00%f%x00%b%x00', '-z', '--date=raw', '--no-renames', '--name-status', '3c47bd17616d280426d565bd7db15fa5b6627ada']
> gbp:debug: dch ['--no-auto-nmu', '--newversion=1.0.3-1', '--distribution=UNRELEASED', '--nomultimaint-merge', '--multimaint', '--', '[[[insert-git-dch-commit-message-here]]]'] []
> gbp:debug: ['git', 'config', 'user.name']
> gbp:debug: ['git', 'config', 'user.email']
> gbp:debug: Snapshot enabled: do not fixup options in header
> gbp:debug: dch ['--no-auto-nmu', '--nomultimaint-merge', '--multimaint', '--nomainttrailer', '--', ''] []
> gbp:debug: ['git', 'rev-parse', '--quiet', '--verify', 'HEAD']
> gbp:info: Changelog has been prepared for snapshot #1 at b2ef3477671d8c80e13a52c13b443422a2a39266
>
>
> At this point my debian/changelog gained a new entry:
>
> $ git diff
> diff --git a/debian/changelog b/debian/changelog
> index 9bb7572..23fc869 100644
> --- a/debian/changelog
> +++ b/debian/changelog
> @@ -1,3 +1,11 @@
> +my-project (1.0.3-1~1.gbpb2ef34) UNRELEASED; urgency=medium
This is 1.0.3 now…
> +
> + ** SNAPSHOT build @b2ef3477671d8c80e13a52c13b443422a2a39266 **
> +
> + * fixed gbp config: consistent upstream-tag for all tools not buildpackage alone
> +
> + -- Lukasz Walewski <lwalewski at s-can.at> Thu, 20 Apr 2017 17:16:42 +0200
> +
> my-project (1.0.2-2) unstable; urgency=medium
>
>
> However, buildpackage does not like the merged changes:
>
> $ gbp buildpackage --git-ignore-new -us -uc
> gbp:info: Exporting 'HEAD' to '/home/.../build/my-project-tmp'
> gbp:info: Moving '/home/.../build/my-project -tmp' to '/home/my-project-1.0.2'
> dpkg-buildpackage -rfakeroot -D -us -uc -i -I
> dpkg-buildpackage: source package my-project
> dpkg-buildpackage: source version 1.0.2-2
…but here it writes 1.0.2-2. Because you're building with
--git-export-dir it seems. In this case you have to pass
--git-export=WC
to the buildpackage call:
--git-export=TREEISH
Instead of exporting the current branch head, export the
treeish object TREEISH. The special name INDEX exports the
current index whereas the special name WC exports the
current working copy as is.
since you have uncommitted (and unchanged) changeds in your working
copy (the modified changelog). The plan is to make
--git-ignore-new
include
--git-export=WC
in a future version since this looks like the saner default.
Cheers
-- Guido
> dpkg-buildpackage: source distribution unstable
> dpkg-buildpackage: source changed by Lukasz Walewski <lwalewski at s-can.at>
> dpkg-source -i -I --before-build my-project-1.0.2
> dpkg-buildpackage: host architecture amd64
> fakeroot debian/rules clean
> dh clean
> dh_testdir
> dh_auto_clean
> make[1]: Entering directory '/home/.../build/my-project-1.0.2'
> rm -f firstboot_tmplt/version
> make[1]: Leaving directory '/home/.../build/my-project-1.0.2'
> dh_clean
> dpkg-source -i -I -b my-project-1.0.2
> dpkg-source: info: using source format `3.0 (quilt)'
> dpkg-source: info: building my-project using existing ./my-project_1.0.2.orig.tar.gz
> dpkg-source: info: local changes detected, the modified files are:
> my-project-1.0.2/Makefile
> my-project-1.0.2/firstboot_tmplt/run.sh
> dpkg-source: error: aborting due to unexpected upstream changes, see /tmp/my-project_1.0.2-2.diff.__SpG2
> dpkg-source: info: you can integrate the local changes with dpkg-source --commit
> dpkg-buildpackage: error: dpkg-source -i -I -b my-project-1.0.2 gave error exit status 2
> debuild: fatal error at line 1376:
> dpkg-buildpackage -rfakeroot -D -us -uc -i -I failed
> gbp:error: 'debuild -i -I -us -uc' failed: it exited with 29
>
> Best,
> Lukasz
>
>
> ----------------------------------------
>
> scan Messtechnik GmbH
> Brigittagasse 22-24
> A-1200 Wien/Vienna
> tel. +43 1 219 73 93 - 0
> fax +43 1 219 73 93 - 12
> http://www.s-can.at
> office at s-can.at
>
> Geschaeftsfuehrer/President: DI Andreas Weingartner
> Firmenbuchnummer/Incorporation No: FN178880i
> Gerichtsstand/Court of Jurisdiction: Wien/Vienna
>
> ----------------------------------------
>
> s::can - intelligent, optical, online
>
> i::scan - compact, precise and affordable!
> UV254::NTU::FTU::TOC::DOC::COD::BOD::Colour ...and many more to come!
> http://www.i-scan.at
> ----------------------------------------
> "YES WE SCAN !"
>
More information about the git-buildpackage
mailing list