Mozilla: hg as a collaboration tool

Dustin Sallings dustin at spy.net
Thu Feb 7 02:01:58 CST 2008


On Feb 6, 2008, at 23:26, Dirkjan Ochtman wrote:

> I haven't used CVS, but I've used SVN a lot, and while I find
> Mercurial much more satisfying to work with than SVN, I can see where
> some people might get confused. For example, someone was asking about
> doing the equivalent of svn update -r23425 file.txt. In Mercurial,
> update only refers to repo-wide operations, and you have to use revert
> instead.

	That's a familiarity issue.  It seems more intuitive to me to use  
revert to revert a file than update to revert a file.  I think a lot  
of the complaints some new mercurial users have amount to ``this tool  
doesn't work like the tool I'm replacing with it.''

> Similarly, I think CVS/SVN don't have a concept similar to
> Mercurial's dirstate. I still don't exactly have a grasp of what it
> entails, but it seems that in some cases, it helps to be aware that it
> exists and that it might influence your operations.

	cvs only manages files.  svn has a dirstate concept...kind of.  You  
check out a revision, so there *is* such a base, it just doesn't  
matter as much.

> One other thing is
> hg status showing files that don't show up in hg diff (because just
> their x bit changed, for example). In these cases, it either helps to
> understand the underlying model or there are simple fixes ([diff] git
> = true or some such), but it may still confuse people who haven't
> spent some time with hg to figure it out.

	That seems minor.  I'd consider it more of a UI bug than anything else.

> FWIW, I'm thinking a document on "Mercurial for Subversion users"
> might help some people. Does something like that exist yet? I think
> developers who have used CVS or SVN before may not be as interested in
> larger-scale user guides, but could use a simple translation of common
> commands with some comments about how and why they are different.

	Google returns several results for such a thing.

	I've found a lot of introductions like that make things sound harder  
than they really are.  A typical low-end user could probably go for a  
good while with just ``clone,'' ``status,'' ``addremove'' and  
``fetch.''  Maybe ``push'' depending on the setup.

	There is all kinds of additional exciting functionality (exciting to  
some, anyway), but I try to explain these things when people actually  
need to know them.

-- 
Dustin Sallings


More information about the Mercurial mailing list