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