This is something of an opinionated issue among members of the core team. It's something that's been discussed quite a bit on IRC, and formally on the mailing list at https://groups.google.com/forum/#!searchin/mozilla.dev.servo/squash/mozilla.dev.servo/tFCK8dPnPGo/1ZE9QJA_CAAJ ..

On 2016-04-26 2:20 PM, Gregory Szorc wrote:
Servo developers,

I noticed that Servo and a number of other Servo related Git repos have
tons of merge commits. This is the Git[Hub] way after all: create a merge
commit for every pull request.

The thing is, I'm not a huge fan of merge commits in version control,
especially for large projects. I like having simple, linear history where
any commit you land on is "good," can be built, and bisected on. This is
more or less what we do in mozilla-central (ignore the merge commits for
the integration repos - those were a necessary evil to deal with scaling
issues 4+ years ago and are going away). There are other reasons to avoid
merge commits too. See the giant wall of text I wrote in bug 1266863 on the
subject.

Thinking forward to a day when we start vendoring more Rust/Servo
components into mozilla-central and the VCS "syncing" complications that
arise from it, I would much rather be dealing with Servo repos with linear
history because well, linear is simpler than the DAG spiderweb that merge
commits produce (run `gitk` on the Servo repo to see what I'm talking
about).

May I propose Servo change its landing bot to rebase commits instead of
merging them so that the repo history be linear so all the complexities
around merge commits can go away?

FWIW, other VCS hosting and landing services (like Gitlab and MozReview)
have a button that rebases instead of merges for landings. Furthermore,
Facebook rebases on many of their GitHub projects (they don't use the
buttons/APIs on GitHub). So there is definitely precedence for rebasing
instead of merging.

Obviously you can't force every random Rust project on GitHub to adopt a
linear commit model. All I'm asking is that Servo and its immediately
related projects consider changing their ways. Who knows, perhaps by doing
so you'll help convince GitHub that there are valid use cases for linear
repos and they'll support rebasing in their web UI. At the rate they are
copying good ideas from Gitlab and other hosting providers, I wouldn't be
surprised if they were already considering it :)


_______________________________________________
dev-servo mailing list
dev-servo@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-servo

Reply via email to