Suffering from CVS mindset

Sune Foldager cryo at cyanite.org
Wed Apr 14 05:26:07 CDT 2010


On 13-04-2010 17:56, Haszlakiewicz, Eric wrote:
> One thing that might be confusing you is that mercurial has a (IMO, very
> annoying) default of "whole repository" for various commands, rather
> than the more intuitive "current directory".  That means that if you're
> working in some directory and you only want to commit the stuff from
> there you need to run:
>    hg commit .
> with the current directory explicitly specified.  Things like "hg log"
> do the same thing, as does "hg diff" (except there it's even more of a
> pain, b/c hg creates "fake" paths in the diff output), etc....

Sounds like you're not ready for a distributed VCS? ;-). The 
'repository-wide' operations of Mercurial is one of its biggest 
strengths in my opinion.

> The default log output sucks.

The default output tells you what changes were made, in form of the 
commit summary. These summaries are supposed to sum up the changes. If 
your summaries read "made some changes" etc., I'd say you're not doing 
it right. That said, I always prefer glog (or log -G) over log.

 > The built-in "verbose" log output isn't
> much better (e.g. it lists files, but w/o any indication of what
> happened to each, and all on one line so it's impossible to parse
> individual file names).

?? If lists the files (but not what happened to the files) so it's 
..impossible to parse the file names?

> Theoretically, there's a way to tweak it to do
> things like list the changed files in a way that subversion might
> (which, IMO, is much more useful and readable), but I was never able to
> get it to work quite right.

If I want to see the recent changes to the repository, I'd much rather 
see 10 small entries, each with a good summary, than countless lines of 
diffs I might not even be interested in. There are tools for all those 
situations (hg status -c <rev> and hg diff -c <rev>), though.

/Sune


More information about the Mercurial mailing list