Remix.run Logo
ninkendo 2 hours ago

Thanks for indulging me so far, by the way, I really appreciate this discussion, it's very stimulating.

After thinking about the whole thing I think I can summarize my opinion a lot better now:

Stacked diffs are a category error. Units of discussion, and units of integration, should not be conflated.

A branch is my unit of intended integration: merge all of it or none of it. The fact that reviewers need smaller slices to discuss does not imply those slices should become independently landable history objects. That’s a UX concern for the review tool, not something I should have to encode into Git history.

The ideal system would let me seed discussion however I want (by commit, by path, by subsystem, by semantic region of the diff, etc) without forcing me to pretend those are separate merge units.

Github nails the "merge unit" (CI runs against the whole branch, the branch either merges or doesn't, etc), but absolutely fumbles in the discussion part. I hate that I'd have to change the merge unit just to fix their discussion UX.