Hello Andreas,

Newbie gerrit/git questions here:

If someone requests a modification to a changeset in a review (or I realize 
something is wrong with the changeset myself), how do I update the posted 
review on Gerrit for the specified changeset? Mercurial/Reviewboard would be 
something like hg qref followed by hg postreview -oue XXXX and the patch on 
Reviewboard would be updated to reflect the changes. How do we achieve a 
similar behavior here?

Furthermore, what does the resulting commit log look like given whatever 
workflow you use? Ideally, we'd like the commit log to reflect coherent, atomic 
changes that implement one specific feature at a time. I don't want to public 
many incoherent changesets that are iterating to the right/accepted solution to 
implement a feature.

Regards,
Brandon

-----Original Message-----
From: gem5-dev [mailto:[email protected]] On Behalf Of Andreas Sandberg
Sent: Wednesday, March 1, 2017 8:44 AM
To: gem5 Developer List <[email protected]>
Subject: Re: [gem5-dev] Migrating to git and gerrit

Hi Everyone,

The new Gerrit-based infrastructure is now live with the old Mercurial 
repository as a read-only mirror. Mirroring is currently done using a cron job 
that executes every 15 minutes, which means that there is some amount of lag 
between the gerrit master version and the mirrors.

Those of you with commit access who plan to submit patches that have been on 
reviewed using the old infrastructure will need to convert these patches to git 
and push them to the main repository. It is highly recommended that patches 
without reviews are discarded and re-posted using the Gerrit flow to reduce the 
maintenance overhead of committing patches.

Existing Mercurial patches (e.g., from patch queues) can be converted using the 
hg-patch-to-git-patch [1] script from Mozilla. The patch conversion script 
makes sure that the commit message and author information can be understood by 
git. Before converting your patches, make sure they apply cleanly on the 
current master branch. The best way to check this is by qpop:ing your patch 
queue, pulling in new changes, and then reapplying it. If you get warnings when 
applying patches, you need to qrefresh them to make sure that the diffs are up 
to date.
Failing to do so will result in git refusing the patch.

Once you have a patch queue that applies cleanly, you can import it into a new 
git branch using the following commands:

# Create a new clone of the master repository git clone 
https://gem5.googlesource.com/public/gem5 gem5 cd gem5 # Install Gerrit's 
commit message hook. This is done automatically by scons when you build gem5.
cp ext/git-commit-msg .git/hooks/commit-msg

# Create a new branch for the outgoing changes git checkout -b fixes 
origin/master

hg-patch-to-git-patch /path/to/old/gem5/.hg/patches/patch1.patch | git am # Run 
the commit message hook to generate a Change-id by amending the commit git 
commit --amend ...
hg-patch-to-git-patch /path/to/old/gem5/.hg/patches/patchN.patch | git am git 
commit --amend

To push the branch for review (remember to test it and verify that the commit 
log looks OK first!), execute the following command:

git push origin HEAD:refs/for/master

It's sometimes useful to set a patch series topic if you're submitting multiple 
patches. To do that when you submit patches for review, use this command 
instead:

git push origin HEAD:refs/for/master%topic=my/topic

Some users can bypass reviews and push changes straight into the master branch. 
This should only be done for code that has been reviewed using the 
ReviewBoard-based flow. If you're one of the select few, you can use the 
following push command to bypass review:

git push origin HEAD:refs/heads/master


Cheers,
Andreas

[1]
https://github.com/mozilla/moz-git-tools/raw/master/hg-patch-to-git-patch


On 16/02/2017 16:54, Jason Lowe-Power wrote:
> Hi all,
>
> We've been talking about this for a while, but now it's time! Special 
> thanks to Andreas Sandberg for all of his hard work for putting this 
> together.
>
> We will be migrating our infrastructure from the self-hosted mercurial 
> repo at repo.gem5.org and reviewboard to git and gerrit hosted on 
> Google's new googlesource website. You can find a live version (not 
> ready for primetime) of this at https://gem5.googlesource.com/.
>
> We are planning on flipping the switch on *March 1st*, unless there is 
> an objection from the community. Note: I'm announcing this on gem5-dev 
> before announcing on gem5-users and gem5-announce in case there's any 
> details we've missed.
>
> I've posted a patch on reviewboard that contains a new CONTRIBUTING 
> document that details the new contribution process. Please review that 
> document so it can be pushed before we transition. (
> http://reviews.gem5.org/r/3814/)
>
> The major changes are detailed below:
> 1. REPOSITORIES
>    * The canonical version of gem5 will now live at 
> https://gem5.googlesource.com/, not repo.gem5.org
>    * The mercurial repository at repo.gem5.org will be a read-only 
> mirror of the googlesource repo.
>    * We will keep the github mirror
> 2. CODE REVIEWS
>    * All reviews will happen on https://gem5-review.googlesource.com/.
>    * No new patches will be accepted on reviewboard after March 1. Any 
> patches still on reviewboard will be discussed/reviewed there, but 
> committers will have to manually commit them to the git repo (not 
> unlike our current situation).
>
> Main differences for developers:
> 1. You will have to learn to use git, if you haven't already 2. 
> Developers who submit patches will be able to *commit their own 
> patches* after review. No more waiting for me to push patches for you!
> 3. Continuous integration tests are coming soon, and must pass before 
> a patch is committed.
> 4. Gerrit has a different user-interface than reviewboard... sorry for 
> the change.
> 5. Many of the policies we have for commits will be *strictly 
> enforced* automatically by gerrit. E.g., it will no longer be possible 
> to post a patch that has a non-conforming commit message.
> 6. Instead of using postreview, patches will be posted by pushing to 
> special git branches on our gerrit instance.
>
> *Please let me know if you have any questions or concerns. I'd like to 
> iron all of this out in the next few days so we can post the 
> announcement on gem5-users and gem5-announce.*
>
> I would also like to thank the team at Google that has generously 
> donated their time to set up this infrastructure. This include Rahul 
> Thakur, Jason Buberel, Haihong Zhuo, and many others.
>
> Cheers,
> Jason
> _______________________________________________
> gem5-dev mailing list
> [email protected]
> http://m5sim.org/mailman/listinfo/gem5-dev

IMPORTANT NOTICE: The contents of this email and any attachments are 
confidential and may also be privileged. If you are not the intended recipient, 
please notify the sender immediately and do not disclose the contents to any 
other person, use it for any purpose, or store or copy the information in any 
medium. Thank you.
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to