PSA: The CQ can now commit into different Git remote refs

66 views
Skip to first unread message

Ravi

unread,
Dec 17, 2014, 2:02:25 PM12/17/14
to chromi...@chromium.org, infra-dev

Over the past several weeks I have been working on adding the ability to commit into different remote refs to the CQ.

Prior to this feature the CQ could only commit into whichever remote branch was specified by a project in the CQ. Eg: Chromium CLs would be submitted into refs/pending/heads/master and Skia CLs into refs/heads/master.


Motivation

A developer needed to make an important fix to Skia’s m39 branch: https://codereview.chromium.org/712163003. The developer got LGTM on the uploaded CL but could not use the CQ (because it only committed into the master branch) and could not git push (was not a Skia committer). The developer had to ping Skia committers and ask one of them to patch in the CL manually and push.

Having a way to push to a specific branch via the CQ would:
* Solve the above problem.
* Make collaborating on branches easier.
* Currently any change to any branch other than master needs to be manually pushed. Adding this feature would make things more consistent with the recommended workflow of always using the CQ.


Implementation

This feature has required changes in depot_tools, Rietveld and the CQ. All changes are now live.
Design doc is here. Tracking bug is chromium:435702.


Feature Flow

* "git cl upload" will now find the tracked remote ref of your branch and will upload it to Rietveld.
* Rietveld CLs now display their target ref. Eg: https://codereview.chromium.org/791623004/ below 'Base URL'.
* When the CL is sent to the CQ, the CQ will fetch, commit and push into the target ref.


Note:

* Trybots are not currently compatible with custom refs. Due to this limitation the feature abandons the CL if its target ref is different from master and "NOTRY=true" is not explicitly specified. The infra team is currently discussing how to support trybots for arbitrary refs.
* Depot tools will need to be synced past r293356 to use this feature.


If you notice any bugs then please file a crbug to me (or email me directly).

Thanks!
Ravi

Mike Wittman

unread,
Dec 18, 2014, 4:28:59 PM12/18/14
to rmi...@chromium.org, chromium-dev, infra-dev
This change appears to have broken CQ and try jobs on chromium branches with remote refs of origin/lkgr (and presumably also origin/lkcr). Additionally, Rietveld doesn't update the recorded branch on patch upload after rebasing onto origin/master, so those of us with reviews of code against either of these remote refs currently seem to be stuck with untryable and uncommittable reviews. For example: https://codereview.chromium.org/807053005

Can we re-enable the previous behavior of treating branches against these remote refs as changes on top of origin/master?

-Mike

--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev

To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev...@chromium.org.

Ravi

unread,
Dec 18, 2014, 4:34:09 PM12/18/14
to chromi...@chromium.org, rmi...@chromium.org, infr...@chromium.org


On Thursday, December 18, 2014 4:28:59 PM UTC-5, Mike Wittman wrote:
This change appears to have broken CQ and try jobs on chromium branches with remote refs of origin/lkgr (and presumably also origin/lkcr). Additionally, Rietveld doesn't update the recorded branch on patch upload after rebasing onto origin/master, so those of us with reviews of code against either of these remote refs currently seem to be stuck with untryable and uncommittable reviews. For example: https://codereview.chromium.org/807053005

Can we re-enable the previous behavior of treating branches against these remote refs as changes on top of origin/master?

I was chatting with siggi@ and erikwright@ about this. I have a Rietveld change uploaded https://codereview.chromium.org/806373005/ which will update the target ref after you run "git reparent-branch origin/master" and "git cl upload" again. Will update this thread when it is in.
 

-Mike

To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev+unsubscribe@chromium.org.

Ravi

unread,
Dec 18, 2014, 5:17:57 PM12/18/14
to chromi...@chromium.org, rmi...@chromium.org, infr...@chromium.org


On Thursday, December 18, 2014 4:34:09 PM UTC-5, Ravi wrote:


On Thursday, December 18, 2014 4:28:59 PM UTC-5, Mike Wittman wrote:
This change appears to have broken CQ and try jobs on chromium branches with remote refs of origin/lkgr (and presumably also origin/lkcr). Additionally, Rietveld doesn't update the recorded branch on patch upload after rebasing onto origin/master, so those of us with reviews of code against either of these remote refs currently seem to be stuck with untryable and uncommittable reviews. For example: https://codereview.chromium.org/807053005

Can we re-enable the previous behavior of treating branches against these remote refs as changes on top of origin/master?

I was chatting with siggi@ and erikwright@ about this. I have a Rietveld change uploaded https://codereview.chromium.org/806373005/ which will update the target ref after you run "git reparent-branch origin/master" and "git cl upload" again. Will update this thread when it is in.

The change is now live. We are also currently discussing to see if we can figure out a way for developers to track lkcr / lkgr without having to reparent-branch or --set-upstream-to, will post updates here.
Reply all
Reply to author
Forward
0 new messages