Advice for the creators of Distributed Version Control Software September 2, 2007
Some advice from the trenches for the creators of distributed version control
software:
Just some small pieces of advice that I think would really help based on
observations using
Darcs,
Mercurial
(hg), and Git.
-
Get together and decide on a common term for this stuff. I don’t care what
you call it just pick something! I
keep hearing / seeing:
- distributed version control system
-
distributed revision control system
-
distributed source control system
-
distributed source control management system
-
If you’re not working on Darcs go check out how it interacts with people.
I’m not a huge fan of it’s speed or the way it thinks about things but I
keep wanting to use it because it’s so damn easy (for most things). -
Sharing a repo via a web site should require zero steps beyond uploading it.
In Darcs if you upload it to a public site, it’s shared. The end. In
Mercurial you have to install and configure a cgi. In Git you have to clone
the repo, then upload the clone, then on the server call “git –bare
update-server-info” from within the clone directory. I have no clue what
this does, why it’s required, or if it can be done before uploading because
the docs suck. -
The ability to download a repo from a web site should be build it. Darcs and
Mercurial have this, although Mercurial requires that cgi to be running on
the server. Git requires you to compile git with “curl support” but nowhere
do they tell you HOW to compile git with curl support and when you end up
compiling without it it doesn’t let you know you’ll never be able to use it
for http:// or ftp:// repos. -
Do not assume that because a file is missing I want it removed from the
repository. Destructive behavior should NEVER be the default. Mercurial gets
this right. -
Make it easy to roll back the changes in a single file. Darcs is the only
one that gets this wrong and it’s because Darcs doesn’t think in terms of
files. It thinks in terms of patches which gives it uses in great ways, but
its still a pain in the ass to just get back a file I deleted or roll back
changes in just that file. It’s doable, but a pain.
- Follow Git’s example (I think Mercurial does this too) and give me a cryptographic guarantee that what i expect to be in the repository is what’s in the repository and that nothing has become corrupted or maliciously altered
Popularity: 2% [?]
Leave a Reply