<div dir="ltr"><div class="gmail_default" style="font-family:tahoma,sans-serif;margin-left:40px">
One downside of this approach is that it requires destructive changes<br>
to work-in-progres branches: I might think the MR is ready, squash the<br>
commit sequence into a single commit, but then more work is ready. Now<br>
it’s hard to revert individual patches, or collaborate with others,<br>
because the git history was disrupted.</div><div class="gmail_default" style="font-family:tahoma,sans-serif;margin-left:40px"><br>
Another is that the commit message itself isn’t very easily visible to<br>
reviewers. <br></div><div class="gmail_default" style="font-family:tahoma,sans-serif;margin-left:40px"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif">I couldn't parse this. What does "but then more work is ready" mean? Why is it hard to collaborate with others? Which commit message "itself isn’t very easily visible to reviewers."?</div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif">I regard squashing as a positive bonus. I take a long series of commits with messages like "bugfix" and "fix comments" and put them into one or more logical commits, each doing (so far as poss) as single thing, each with a comprehensible commit message. That makes it *easier* to collaborate, and easier to review subsequently.</div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif">(Agreed, there is a moment when I need to hold the token, but that's seldom a problem.)</div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif">TL;DR: I don't yet understand the problem you are trying to solve, still less the solution.</div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif">Simon<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, 2 Apr 2022 at 12:30, Joachim Breitner <<a href="mailto:mail@joachim-breitner.de">mail@joachim-breitner.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi,<br>
<br>
as far as I understand, the expected workflow for MRs is that when they<br>
are ready, the developer manually squashes the chronological commit<br>
history of the MR into a logical one with polished commit messages,<br>
typically consisting of a single commit, but could be multiple ones,<br>
and then assigns the MR to margebot, which will rebase that sequence of<br>
commits onto the staging branch and eventually merges that into master.<br>
<br>
One downside of this approach is that it requires destructive changes<br>
to work-in-progres branches: I might think the MR is ready, squash the<br>
commit sequence into a single commit, but then more work is ready. Now<br>
it’s hard to revert individual patches, or collaborate with others,<br>
because the git history was disrupted.<br>
<br>
Another is that the commit message itself isn’t very easily visible to<br>
reviewers.<br>
<br>
In other similarly sized projects (e.g. mathlib) I often see a mode<br>
where the actual commits of the MR are ignored (so they can represent<br>
the true git history of the branch, including merges and all that grit,<br>
which is good for collaboration and for reviewers to understand what<br>
has happened, without requiring developers to spend cosmetics effort on<br>
them), and upon merging by margebot/bors/mergify/whatever, the MR is<br>
merged as a single commit with the description taken from the MR<br>
description (which encourages developers to keep the MR description up<br>
to date as the MR develops, reviewers can easily see that).<br>
<br>
A downside of this that you’ll always get one commit on master per MR.<br>
If you like to submit a curated list of logical commits within one MR,<br>
then this would not work, and you’d have to use multiple MRs.<br>
<br>
<br>
Has this been considered?<br>
<br>
(I don’t want to cause unnecessary disruption with a presumptious call<br>
for action here; take it as a comment to weigh in in if and when this<br>
part of our infrastructure is about to change anyways, or maybe a<br>
careful probe if my sentiment may be shared widely.)<br>
<br>
Cheers,<br>
Joachim<br>
<br>
<br>
-- <br>
Joachim Breitner<br>
<a href="mailto:mail@joachim-breitner.de" target="_blank">mail@joachim-breitner.de</a><br>
<a href="http://www.joachim-breitner.de/" rel="noreferrer" target="_blank">http://www.joachim-breitner.de/</a><br>
<br>
_______________________________________________<br>
ghc-devs mailing list<br>
<a href="mailto:ghc-devs@haskell.org" target="_blank">ghc-devs@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs</a><br>
</blockquote></div>