New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 750924 link

Starred by 2 users

Issue metadata

Status: Duplicate
Merged: issue 751901
Owner: ----
Closed: Mar 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: ----
Type: ----


Previous locations:
gerrit:6879


Sign in to add a comment

Depending on other people's patchsets is become folly

Project Member Reported by calamity@chromium.org, Jul 28 2017

Issue description

This is a broken workflow report, more than a solid bug.

If a colleague and I are both working on something, and my_branch requires code that is in their_branch, then in Rietveld, I would:

```
git checkout -b local_their_branch # from master

git cl patch XXXXXXX

git checkout -b my_branch

# DO WORK

git cl upload
```

This workflow doesn't apply in gerrit. I can use git cl patch --force, but that will take my tree to some wild place, and if they're 5000 commits behind, then I'll be forced to do a full recompile every time I switch to and from my_branch from any other working branches based off master.

This comes up very often as reviews can take some time, and it's nice to be able to parallelize reviews, even when one is dependent on the other.


A similar issue happens for local quickfixes (failing DCHECK, force disable a feature, etc) which several working branches may depend on.

```
git checkout -b local_quickfix # from master

# DO FIX

git checkout -b work_to_upload

# DO WORK

git cl upload
```

This won't work either.


Is it possible to upload a 'ghost' commit to gerrit that embodies the state of the upstream of my current branch, and gets used as the diff base? The CQ would have to actually cherry-pick the commits for the dependent CL tree, rather than just checking out the patchset ref, but it would allow for more developer flexibility.

From an interaction model standpoint, each of my branches represents a change relative to the upstream, and that's what I want to be reflected by gerrit. The current insistence by the system of needing upstream commits to be uploaded is at odds with my approach to collaboration and hackability.

If there's some way around this at the moment, please let me know.

Thanks.
 

Comment 1 by mgiuca@chromium.org, Jul 28 2017

It's ugly, but you can upload a "ghost" commit manually as you suggest:

```
git checkout -b local_their_branch # from master

git cl patch XXXXXXX

git cl upload -t "Ghost commit based on XXXXXX; DO NOT SUBMIT"

git checkout -b my_branch

# DO WORK

git cl upload
```

You won't be able to land it until the upstream lands. When the upstream does land, you would rebase your my_branch on master and then git cl upload, then you can land it.

Not nice but doable.

Comment 2 by logan@google.com, Jul 31 2017

Labels: -Hotlist-Chromium -Type-Bug -Priority-3 Proj-Gerrit-Migration
Components: Infra>Codereview>Gerrit

Comment 4 by aga...@chromium.org, Mar 27 2018

Mergedinto: 751901
Status: Duplicate (was: New)

Sign in to add a comment