Hi all!
On 20/05/14 09:35, Daniel-Constantin Mierla wrote:
Some time ago it was proposed to use a code review
tool to analyze
patches, ... gerrit was proposed before by Victor Seva....
Besides the above one, perhaps github has an integrated review tool. I
can be considered as an alternative as well....
I have experience with Atlassian Crucible, GitHub and Gerrit.
Each of them do the job well, sure each has pros&cons.
====================================================
Atlassian FishEye+Crucible:
Pros:
- recommended tool if you use Jira as bugtracker (nice integration
with FishEye/Crusible/Bamboo/..)
- commercial, but free license for opensource products is available.
- Atlassian provides all the software you need for middle/big company
(users/repositories/projects management, wiki,
WebGit/corereview/bugtracking/...)
- Nice interface with a lot of functionality for code review
- A lot of metrics for management
Cons:
- Java
- Not the easiest/best integration with Jenkins
- Atlassian focused in big companies, it requires hardware/human
resources to setup/support the product(s)
- Requires really good hardware for good performance, anyway
performance is not the best one as WEB pages are heavy
====================================================
GitHub:
Pros:
- Community likes GitHub
- Perfect choice if you are startup (ho hardware/maintenance fee)
- Nice/useful review/bugtracking functionality (quick, minimalistic
design)
- Perfect for projects which need no or minimum code support
Cons:
- Not the best users management, also not very flexible access rights
for teams
- Using review on GitHub is nice if GitHub is the main storage for
code, otherwise you have to deal manually with pull requests.
- Jenkins continues integration before merging pull request to master
is not easy task
- No control on server/service
====================================================
Gerrit:
Pros:
- Perfect speed of WEB pages, full control of your server/service, the
best control for projects/people/roles/branches/tags/...
- Good/clear and flexible workflow for supporting small/medium/big
projects, samples:
-
https://wiki.openstack.org/wiki/Gerrit_Workflow
-
http://source.android.com/source/life-of-a-patch.html
- Perfect integration with Jenkins and Git (google "gerrit git-review")
- Mouse is not required to review the code (you have keyboard
shortcuts and API for everything)
- Transparent tests of code before merging the code to master. Even if
project has no person to review it, the new code can be tested
automatically on Jenkins and merged to master automatically if pass all
the tests, otherwise inform the author that he failed the test with
quick ability to upload fixed code (new "Patch set").
Cons:
- Java (but it requires less resources the Atlassian FishEye+Crucible)
- Difficult initial configuration
- Not the best integration with bugs tracking systems (history of
development is split between Gerrit and bugtracker)
- 1 + 1 != 2 (Gerrit flags +2/+1/0/-1/-2 are not clear for newbies,
but really the question of 10 minutes of education)
- High availability out of the box is not available, but still possible.
- Perfect tool for commits review, but not for "feature review", as
reviewing big functionality requires a lot of small commits review.
====================================================
IMHO, Gerrit is the best choice here, because Kamailio already has own
Git/Jenkins/GitWeb infrastructure. Gerrit will be easily integrated here
(it will stay between Git and Developers).
I can help Victor install and configure it just to try.
--
Alexander Lutay
Head of Quality Assurance
Sipwise GmbH, Campus 21/Europaring F15
AT-2345 Brunn am Gebirge
Office: +43(0)13012036
Email: alutay(a)sipwise.com
Website:
http://www.sipwise.com