Suggestions from a newbie

Kevin Smith yarcs at qualitycode.com
Tue May 31 18:07:07 CDT 2005


Greetings all. I have watched mercurial from afar since its inception, 
and have just joined the list. I'll share my thoughts, which you can use 
for what they're worth.

1. I haven't actually tried mercurial yet, but it looks very promising. 
Actually, I tried an early version but it didn't work on my system and 
project. I am very familiar with darcs (and CVS and VSS), somewhat 
familiar with monotone and ArX, and have played around with git/cogito, 
codeville, and arch.

2. old-http support is critical for me. I don't think I will adopt any 
SCM that requires code on the server to host a repository. I want anyone 
in the world to be able to host a branch of my project, which means it 
needs to work on really cheap web hosts that don't allow CGI.

3. hgweb should probably default to the "manifest" view instead of the 
"changelog" view. It's more "normal", and it's easier to figure out how 
to get to the changelog than it is to get to the manifest (because the 
name "manifest" isn't as obvious).

4. MS Windows compatibility (without cygwin) will, sadly, be pretty 
important in the long run. Many projects these days are cross-platform, 
so the development tools must be as well. I haven't noticed in the list 
archives any discussions about how easy or difficult a port to native MS 
Windows will be. Hopefully, no design decisions will make it difficult.

5. Will it be possible for mercurial to have the same kind of heuristic 
rename/copy detection that's being built into git? It's too early to 
tell whether it will really work well, but it seems very cool.

6. Marketing. For a young project in a competitive space, a lot of your 
"success" will depend on how well you do in marketing. If you are ok 
being a very small niche player, then you don't have to worry about it 
(and you can ignore the rest of this message). However, if you want 
mercurial to be "the", or "one of the" major SCM tools, it's worth some 
effort. It's not enough for the code itself to be great. The new web 
site is a great step in the right direction.

Git is the 800 pound gorilla in this space right now. For mercurial to 
become widely used, you'll need to find a way around git. Either you'll 
need to convince Linus to switch (which would be a big challenge at this 
point, given his time and emotional investment), or mercurial will have 
to have enough appeal to offset both the draw of Linus himself, and the 
headstart that git has.

My recommendation would be to try to "win over" folks like me who really 
want a free lightweight distributed SCM and are about to choose between 
(for example) mercurial, cogito, and codeville. That means mercurial has 
to have some features that are compelling advantages. In these early 
stages, you'll also need to decide whether to focus on winning big 
projects (Linux, gcc, X) or small ones (the other 99%).

So far, it seems like the two "big features" of mercurial have been 
delta storage, and speed. As I'm sure you're aware, git has embryonic 
support for optimizing its store with deltas. This will deflate one of 
the most-often mentioned advantages of mercurial. Speed is important to 
some folks, but not to others, and it's not clear that either git or 
mercurial is substantially faster than the other.

So what are the other big advantages of mercurial? Probably the biggest 
would be if it "just works" out of the box. There is still a lot of 
confusion between git and cogito, and it feels like cogito is a bit 
behind in terms of stability and features. I think mercurial is a bit 
easier to use from the command line. Availability of RPMs, DEBs and 
ebuilds will be important.

The clean code base of mercurial is definitely an advantage. A strong 
set of add-on tools will also be important. What else?

Cheers,

Kevin

P.S. My background: Decades in software development. Favorite language: 
Ruby. Paid to code in: Java, C++, and Ruby. Most interested in agile 
processes, free software, small projects, and decentralization of power 
and control.


More information about the Mercurial mailing list