Adding Git to Better SCM Initiative : Comparison
- From
Jakub Narebski <jnareb@gmail.com>
- Date
- Nov 28, 2007, 22:39 UTC
- Message-ID
- <200711282339.59938.jnareb@gmail.com>
I'd like to add Git to comparison table of SCMs at Better SCM Initiative site: http://better-scm.berlios.de
To do that, I need to fill in infomration about Git. Most of questions / items didn't give much problem, but there are a few on which I would like your input.
(Yes, I know that such SCM comparisons are usually biased towards the idea of what are most important features of a version control system. Nevertheless...)
1. Ease of Deployment
How easy it is to deploy the software? What are the depenedencies and how can they be satisfied?
There are binary packages for Linux (RPM, deb) and for MS Windows (msysGit). Git requires POSIX shell, Perl, and POSIX utilities (BTW. INSTALL file lacks full specification of dependences); although there is ongoing effort towards making all commands builtin, in C. Makefile contains ready configuration for many OS, and there is autoconf script to generate Makefile configuration.
I'm not sure if the problems with compiling documentation to HTML and manpage forms, which require AsciiDoc and xmlto toolchains should be also mentioned here. Well, that and the fact that there exist pre-build documentation in html and man forms.
2. Command Set
What is the command set? How compatible it is with the commands of CVS (the current open-source defacto standard)?
Should it be: "Tries to follow CVS conventions, but deviates where there is a different design.", as for Mercurial and Monotone? If I remember correctly command set is patterned somewhat after BitKeeper.
"Large command set divided into plumbing (low lewel, to be used in scripts) and porcelain (high level commands)."
3. Portability
How portable is the version-control system to various operating systems, computer architectures, and other types of systems?
"Good. Portable across all POSIX systems. There exists Win32 binary using MinGW."
>From the results of Git User's Surveys there are many OS on which Git
is used; but it doesn't tell us how hard was to deply Git on those exotic operatings systems.
4. Repository Permissions
Is it possible to define permissions on access to different parts of a remote repository? Or is access open for all?
"Partial (?). It is possible to lock down repository (access to branches and tags) using hooks."
I don't know if it is possible to do finer level ACLs, i.e. if it is possible to lock subdirectories or files in Git. Although for distributed SCMs ACL doesn't matter much: check diffstat and merge or not from trusted people. We have "network of trust" (BTW. Karl Fogel in OSSBook recommends 'soft' control of access control to repository, on social rather than on technical level).
P.S. How do "svn diff" looks like?
-- Jakub Narebski Poland