Code review: pull requests versus independent review
Mads Kiilerich
mads at kiilerich.com
Wed Jan 28 10:45:16 EST 2015
On 01/28/2015 02:06 PM, Thomas De Schampheleire wrote:
> Hi,
>
> Currently, reviewing a set of commits in Kallithea is based on the
> concept of a pull request.
Let me share some general thoughts related to this:
"Pull request" is a very bad name.
The contributed code might in some cases be linear on top of the target
repo so it just can be pulled. That is however a special case. In the
general case it will not be linear, so what you really want is a merge
(with the special case being a "fast forward" merge). It should thus be
"Merge request".
Some projects prefer a linear history that shows how the project evolved
upstream instead of what happened 'downstream' to get there. What they
really want is "Rebase request".
Some people might want to have support for cherry picking changes
without having to rebase them just for the PR. They want "Graft requests".
Some people might want to put something out there for review and
feedback, without really intending/expecting it to get accepted upstream
yet. They want "Review request".
Also: the Compare and Show Changesets views are very similar to how you
would create "merge requests" or "cherry pick requests", and some kind
of naming of them would be close to an actual PR.
I guess I would like to rename "Pull Request" and merge it with compare.
I am not sure what to name it. Something that doesn't suggest a wrong
intent. It is not necessarily a "request" and especially not for "pull".
It is just a bunch of changesets that you want someone to do something
with. "Change collection"?
> A code author can create a pull request for
> a set of (descendant) commits so that people can review it.
> When Kallithea is not used for actually performing the pull/push to
> the main repo, the pull request concept is actually not the best fit.
>
> One particular case where it fails is when not all commits you want
> reviewed are descendants of one another. Maybe there is a commit in
> the middle that is irrelevant, or relevant but you do not expect
> reviewed by that set of people.
>
> In this case, being able to cherry-pick the commits part of the review
> is more useful. Given the Kallithea way of handling reviews (which is
> mostly coupled to individual changesets without them being coupled to
> the corresponding pull request), it wouldn't be that hard to add an
> extra concept in Kallithea: that of 'Review request'.
> Such review request could contain an arbitrary number and combination
> of commits, without mandatory parent-child relation, but is otherwise
> very similar to the current pull request concept.
>
> What do you think of this idea?
Initially, RhodeCode Pull requests were pretty much like that. It did
however not work well for us, especially because we were merging messy
history and not really wanted to review per changeset. The data model do
however still store the list of changesets (in a string field!). I guess
it would be quite easy to add/restore "cherry pick per changeset review"
by using the "show changeset" view instead of "compare".
/Mads
More information about the kallithea-general
mailing list