[Development] [FYI] the smart way of pushing to gerrit, take 2

Tor Arne Vestbø Tor.arne.Vestbo at qt.io
Fri Apr 3 13:59:02 CEST 2020


Hurray, glad to see this finally landed! Thanks! :)

tor arne

> On 1 Apr 2020, at 21:47, Oswald Buddenhagen <oswald.buddenhagen at gmx.de> wrote:
> 
> moin,
> 
> not even six years after the initial announcement, i have landed my git-gpush improvements and related tools to the qtrepotools repo.
> 
> note for early adopters (i heard that there are quite some of you at kdab): the command lines and metadata storage changed over the years.
> 
> the landing page https://wiki.qt.io/Git-gpush-scripts explains the major features, how to get started and perform advanced tasks, and counters frequent skepticism. excerpts:
> 
> =====================
> 
> The general idea of these scripts is to make working with Gerrit more transparent:
> 
> - You can keep many unrelated Changes on one local branch without   creating spurious dependencies between them on Gerrit. While you can   achieve the same by having a separate local branch for every series,   having all Changes on a single branch is much more convenient.
> - You can pull as often as you want, including right before pushing, as   you would usually do in a git pull --rebase based workflow. Without   git-gpush, this would unnecessarily rebase previously pushed Changes,   which would make Gerrit's inter-diff feature slower and much noisier.
> 
> You may have noticed that these major features are geared towards making not your life easier, but that of your reviewers. Until roles are switched, that is.
> 
> ================
> 
> Getting Started
> ---------------
> 
> As usual, you should start with some solid RTFM: ;)
> 
> $ git-gpush -h
> $ git-gpick -h
> $ git-gpull -h
> $ git-ggc -h
> 
> Get all your pending changes onto the current branch, in case you kept them on separate branches:
> 
> $ git cherry-pick <…>
> 
> Alternatively, you could merge all your local branches and then rebase.
> 
> If you have pending Changes for the given branch on Gerrit, you need to synchronize (bootstrap) the state:
> 
> $ git gpick --check --all
> 
> To get an idea about what gpush thinks you have in your branch:
> 
> $ git gpush --list
> 
> Group remaining loose Changes into series:
> 
> $ git gpush --group :3
> $ git gpush --group ~3:5
> <…>
> 
> Get a more thorough overview:
> 
> $ git gpush --list-online
> 
> Push out any modified Changes:
> 
> $ git gpush --all
> 
> ===================
> 
> have fun!
> _______________________________________________
> Development mailing list
> Development at qt-project.org
> https://lists.qt-project.org/listinfo/development



More information about the Development mailing list