[GHC DevOps Group] The future of Phabricator

Simon Marlow marlowsd at gmail.com
Sat Nov 3 10:59:15 UTC 2018

On Fri, 2 Nov 2018 at 08:59, Herbert Valerio Riedel <hvriedel at gmail.com>

> On 2018-11-02 at 08:13:37 +0000, Simon Marlow wrote:
> > I suppose we can do a squash-merge when committing to keep the history
> > clean, but then contributors have a choice - either do GitHub-style
> > where you add commits to a PR to update it and we squash on merge, OR
> > Phabricator-style where you keep the same set of commits and rebase
> > the stack to update it.
> [..]
> Well, if MRs are to be squashed on merge anyway, I'm definitely not
> going to waste my time carefully grooming a stack of atomic individually
> validating commits via git-rebase-interactive...

Sorry I wasn't very clear. We would *only* squash if the author had been
using the workflow where they add commits to revise the MR. If the author
wants to use the stacked-diff-like workflow where they keep a groomed set
of commits in the MR, then we would rebase and fast-forward the MR.

My concern here is that we have two different workflows. People used to
GitHub would want to use one, and people used to Phabricator would want to
use the other. We have to check which workflow people are using so that we
can decide whether to squash on merge or not.

Ben said:

> This shouldn't be a problem. One can easily configure a project such
that users are *only* allowed to fast-forward/rebase, disallowing the
creation of merge commits.

but that doesn't fully address the problem, because the series of commits
that would get rebased onto master would include all the commits added to
the MR to update it during the review process. Actually what we wanted to
do in this case was squash, not rebase+fast-forward.

If there was a nice way to guide people into using the Phabricator-style
workflow, I think that would help a lot.


> > If you want to do dependent commits then you have to use Phabricator
> > style. Choices between workflows make things more complicated for
> > contributors, and that worries me.
> ...submitting a stacked set of commits as invidual overlapping MRs
> (i.e. where the first MR has only the first commit, the 2nd has the
> first two commits from the stack, and so on) -- if that's what you're
> referring to as "Phabricator-style" -- sounds like an awkward workflow
> to me.
> > Does GitLab keep the history of a PR after it has been updated, like in
> > Phabricator? So we can see what happened between versions of a PR?
> I wonder too how this is represented in GitLab... especially when a MR
> is comprised of multiple commits, and those individual commits evolve,
> might get reordered, commits added or removed fromt he stack, or when
> the whole MR gets rebased in the process...
> _______________________________________________
> ghc-devs mailing list
> ghc-devs at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-devs/attachments/20181103/71fcd803/attachment.html>

More information about the ghc-devs mailing list