Page MenuHomePhabricator

No history rewriting
ClosedPublic

Authored by CLOVIS on Oct 13 2018, 9:52 PM.

Details

Summary
  • Setup Arcanist to not modify the Git history
Test Plan

Nothing

Diff Detail

Repository
rLIBWFJVA WildFyre Java Libary
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

Already included in D196

This revision now requires changes to proceed.Oct 13 2018, 10:11 PM
In D197#4682, @WyldBot wrote:

Already included in D196

Nope, D196 is Android, this is Java

Please review https://secure.phabricator.com/phame/post/view/766/write_review_merge_publish_phabricator_review_workflow/ to understand why Phabricator defaults to mutate the history (and why it might not be a good idea to change that).

Please review https://secure.phabricator.com/phame/post/view/766/write_review_merge_publish_phabricator_review_workflow/ to understand why Phabricator defaults to mutate the history (and why it might not be a good idea to change that).

I've already read that, but this is not exactly the problem. I'm not against pre-commit review and I understand the benefits, the problem is that Arcanists messes with my commits. The goal of a commit is to represent an idea, a modification. Currently Arcanist squashes every commit as one, effectively breaking this. Cherry-picking becomes impossible, and it's a pain to create a new revision that branches from an already existing one, because the first that is merged will be squashed, which will cause a big merge later when trying to squash the other one.

Now, this doesnt change anything about arc diff and all : you can still arc diff to create a differential, etc. What it changes is that the Git stays pure and untouched.

I'm not requesting a change in the workflow... Now, I also understand that squashing makes the history more readable, and that something of the size of Facebook might be interested by it. This is not our case, and we do not gain anything from deleting "checkpoint" commits, which we mostly don't have anyway. Commits are what they are, I don't think it's a good idea to try to redefine it.

As you seem understand the reasoning behind the squashing. Go for it.

This revision is now accepted and ready to land.Oct 18 2018, 8:56 PM

Oh and bonus point : I mark every release with a Git tag (that's how I generate the release number), so if you really want a simple linear history, just look at the tags.

This revision was automatically updated to reflect the committed changes.