On Thursday, December 4, 2025 12:45:30 PM Mountain Standard Time Andrey Rakhmatullin wrote: > On Fri, Dec 05, 2025 at 01:12:14AM +0530, Jai kadam wrote: > >> >> You can also consult its manpage to learn what does it do. > >> > > >> >I see, I read the man page just now after your suggestion it's not > >> > >> detailed. > >> > >> It's very detailed > > > >By manual you mean "man gbp" or something else? > > I mean gbp-push(1), you could learn that it exists from "SEE ALSO" of > gbp(1). To add a bit more information about the behavior of "gbp push” and “git push” and when to use them and mix their uses: 1. The key to understanding this is that “gbp push” will push the following things: a. The pristine-tar branch (if in use). b. The upstream branch. c. Any new tags on the upstream branch. d. The debian branch, but only if the changelog does not target UNRELEASED. e. Check for a new tag in the debian branch for the latest changelog entry and push it, but only if the changelog does not target UNRELEASED. 2. What we want to avoid is pushing a debian/X.Y-Z tag on the debian branch before X.Y-Z has actually been accepted into Debian. 3. The following workflow accomplishes this: a. gbp import-orig --uscan (this updates pristine-tar if used, the upstream branch, the debian branch, and creates a new upstream tag). b. dch (adjust the changelog version number accordingly, but leave the target as UNRELEASED). c. gbp buildpackage (make sure the package builds). d. <Fix any problems>. e. gbp push (this pushes pristine-tar if in use, the upstream branch, and the new upstream branch tag, but not the debian branch because the changelog targets UNRELEASED). f. git push (this pushes the debian branch). 4. When ready to release: a. dch -r (this changes the target from UNRELEASED to unstable, edit to experimental if desired). b. gbp buildpackage (build the package with the final changelog). c. Upload the package. d. gbp tag (this creates the debian/X.Y-Z tag, typically one only does this after the package has been accepted into Debian). e. gbp push (this pushes the debian/X.Y-Z tag). Note that it is possible to do all of this using a plethora of git commands. gbp simply makes it easier. On a side note, "gbp clone” is just like “git clone” except that it automatically clones the pristine-tar branch (if used), the upstream branch, and the debian branch, whereas “git clone” just clones the default branch and requires extra commands to populate the other ones. -- Soren Stoutner soren@debian.org
Attachment:
signature.asc
Description: This is a digitally signed message part.