[tools-discuss] Distributed source code management selection, draft
Stephen Hahn
sch at eng.sun.com
Fri Apr 7 15:08:22 PDT 2006
Commentary is encouraged. We can start to look at specific
SCM-dependent tools next week, unless we are more distant from
consensus that I believe...
Enjoy the weekend; my thanks to all.
- Stephen
---
OpenSolaris
DISTRIBUTED SOURCE CODE MANAGEMENT SELECTION [DRAFT]
Bonnie Corwin, Stephen Hahn, Mike Kupfer, and Frank van der Linden
1. Summary
Based on the requirements, evaluations and experience gained with
various distributed source code management (DSCM) tools, we are
recommending the adoption of Mercurial for OpenSolaris projects that
intend to use a DSCM solution.
2. Discussion
Over the last two months, we have been evaluating a number of
distributed source code management (DSCM) solutions to find one to
use for OpenSolaris repositories.
The basis for our evaluation was the requirements document:
http://www.opensolaris.org/os/community/tools/scm/dscmreqdoc/
and the evaluation itself is described in
http://opensolaris.org/os/community/tools/scm/
After evaluating the final candidates (Git [1], Mercurial [2], and
Bazaar-NG [3]), we have come to the following conclusions.
* Bazaar fulfills many of the requirements, amongst them the
important "rename with history" requirement. However, it has
serious performance problems. For example, cloning and committing
the OpenSolaris source tree was a lot slower than on other
candidates.
* Git and Mercurial are close in many aspects. Both are lightweight,
and fast. Both, unfortunately, do not currently have a rename
operation that preserves history. Both have active communities
supporting them.
The DSCM to be used for OpenSolaris projects (like the large ON
consolidation) has to work with the infrastructure for code review
and release engineering that OpenSolaris has and will have. Also,
making it the DSCM for a large source code base like ON will result
in a stream of additions and modifications coming from the
OpenSolaris community. We believe that the source code base of
Mercurial is the most suited one amongst the candidates for these
circumstances. It has also been important that its developers have
been very responsive, both during the evaluation and with projects
using Mercurial for their own source code management. (SCM
developer participation from the other candidate SCMs was also noted
with appreciation.)
Therefore, we have decided to select Mercurial as the DSCM for
OpenSolaris. In the coming time, we hope to work with the Mercurial
community to address any issues we may find while integrating
Mercurial into the OpenSolaris repository framework and converting
existing source bases to use it.
3. Acknowledgments
Useful feedback on the evaluation came from many community members,
with Al Hopper, Paul Jakma, Patrick Mauritz, and Cyril Plisko being
particularly active. Gentle hectoring proved once again to be
highly effective.
We also are very appreciative of the DSCM developers' direct
participation in the evaluation: James Blackwell (Bazaar-NG),
Nikolay Molchanov (Open TeamWare), Bryan O'Sullivan (Mercurial), and
Nathaniel Smith (Monotone) all ably represented their respective
efforts.
4. References
1. F. van der Linden, Git DSCM requirements evaluation,
http://www.opensolaris.org/os/community/tools/scm/git-eval.txt,
2006.
2. M. Kupfer, Mercurial DSCM requirements evaluation,
http://www.opensolaris.org/os/community/tools/scm/dcm_evaluation_mercurial/,
2006.
3. S. C. Hahn, Bazaar-NG DSCM requirements evaluation,
http://www.opensolaris.org/os/community/tools/scm/bzr-eval,
2006.
--
Stephen Hahn, PhD Solaris Kernel Development, Sun Microsystems
stephen.hahn at sun.com http://blogs.sun.com/sch/
----- End forwarded message -----
--
Stephen Hahn, PhD Solaris Kernel Development, Sun Microsystems
stephen.hahn at sun.com http://blogs.sun.com/sch/
More information about the tools-discuss
mailing list