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