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.
Feature Flow
* "git cl upload" will now find the tracked remote ref of your branch and will upload it to Rietveld.
* 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