We use phabricator. It has some really nice features.
* Easily automatic updating.
* Really nice code reviews.
* Many features built in.
It also has some very terrible downsides:
* It expects you to use its work flow (though you can work around it) for merging code back into master.
* It requires manual config per git repository.
* arcanist is a pain to install (and php)
* Its expectations don't seem to quite match up with gits. It seems to often have trouble figuring out what I'm trying to send for code review. I've given up on it being smart and now just always run: `arc diff master` or `arc diff master --update D<ID>`.
1. `arc land` is optional, and always has been. If you don't want to use it, you can just use normal `git` commands. All `arc land` gives you is a few checks against human error.
2. `.arcconfig` is no longer required, although if you want to use integrations like lint, you'll still need to configure them.
3. Anything we can improve on?
4. You should be able to use `arc which` to understand what `arc diff` will do. You can change what `arc diff` will do by specifying a different set of "base" rules, according to this document:
* Easily automatic updating.
* Really nice code reviews.
* Many features built in.
It also has some very terrible downsides:
* It expects you to use its work flow (though you can work around it) for merging code back into master.
* It requires manual config per git repository.
* arcanist is a pain to install (and php)
* Its expectations don't seem to quite match up with gits. It seems to often have trouble figuring out what I'm trying to send for code review. I've given up on it being smart and now just always run: `arc diff master` or `arc diff master --update D<ID>`.