How to submit large series of loosely related changesets in Heptapod

Raphaël Gomès raphael.gomes at octobus.net
Tue Jun 7 12:01:56 UTC 2022


Sorry, the mailing daemon broke because Phabricator used up all disk 
space while fighting for its life. I made sure this wouldn't happen 
again, but only just restarted the daemon, so the email got delayed by a 
few days.

On 6/3/22 20:23, Manuel Jacob wrote:
> I have a branch with Python 3 cleanups 
> (https://foss.heptapod.net/mercurial/mercurial-devel/-/compare/default...py3-cleanups). 
> It consists of more than 30 changesets already and will grow larger.
>
Thanks a lot for this first of all.
> Phabricator has a strong focus on single patches. There, I would 
> submit each patch shortly after creating them. Each can be reviewed 
> and approved individually.
>
> On Heptapod, the focus is more on whole merge request. The Wiki page 
> says that review should be done on single changesets, but it seems 
> like only the whole merge request can be approved and merged (in the UI).
>
Review should always happen at the changeset level (though having the 
full diff can be useful to get a global view of all related changes in 
any given MR, something that IMO was lacking in phab's review UI).

While Heptapod's review tool is not the best at "commit-centric" review, 
the review itself is still very much doable.

> If I create a single merge request when the series is finished (which 
> is whenever I don’t feel to continue), it will be very large and hard 
> to review in one pass. Also, it would mean that I would get feedback 
> on the first changesets later, increasing the chance of getting merge 
> conflicts when changing later changesets (in this case, it hopefully 
> wouldn’t be an issue, because the changes are not very complex).
>
Sure, that's one possibility. As a reviewer I prefer not to get 100 
patches dumped all at once, especially if we can do otherwise.
> If I create a single merge request and continue to add changesets to 
> it, feedback on the first changesets will possibly be earlier, but CI 
> can temporarily break for newer changesets while I keep working on it.
This is something that can be worked around by the reviewer who can take 
an arbitrary subset (most likely always a linear range from the oldest 
changeset), create a separate topic to submit for CI + merging. I think 
I touched about this in the transition email and it was basically "this 
doesn't happen a ton and we may create tooling to help this in the future".
>
> If I create a merge request for each changeset, it will be many and 
> each merge request will contain the unmerged ancestors. Also, I think 
> it would require that each changeset is in its own topic, which 
> complicates matters when working with them locally.
>
This would be quite expensive in terms of churn (and CI), I would advise 
against it.
> I could split them in smaller batches, but it’s not clear how large 
> they should be, and it would combine disadvantages of the two other 
> approaches (although less pronounced).
I think this is the easiest way of doing this. Just send a series, maybe 
no more than 20 patches, and then the next one, etc.
>
> Thoughts?
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at mercurial-scm.org
> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel



More information about the Mercurial-devel mailing list