[RFC] usability of mercurial

Jordan Breeding jordan.breeding at mac.com
Tue Aug 30 14:50:57 CDT 2005

On Tuesday, August 30, 2005, at 02:24PM, Bryan O'Sullivan <bos at serpentine.com> wrote:

>On Tue, 2005-08-30 at 14:07 -0500, Jordan Breeding wrote:
>>  - Based on the above taking place at some point I think that it would
>> be nive if `hg log -v` could list "Added Files:", "Removed Files:",
>> "Renamed Files:", and "Modified Files:" whenever each type of
>> operation is present in that changeset.
>That information is not recorded, so it's somewhat expensive to figure
>out, particularly for deleted files (they just disappear from the

Would it be possible to record this information in the future?

>>  - It would also be nice in my opinion if mercurial had support for
>> directories.
>That's not going to happen.  The only case it is required for is empty
>directories, which are not very interesting.  For other cases, it's far
>more trouble than it is worth.
>	<b

While I agree that empty directories are not very interesting on their own I was hoping that having versioned directories would allow `hg add`, `hg copy`, `hg remove` and `hg rename` to not only operate on directories but either by default or have a flag to allow operation on everything underneath that directory.  So for a directory structure:


I would ideally like to be able to do `hg add foo` in the working dir and have it all added and versioned.  After that it would be nice to have similar tranparency on the command line with other commands: `hg rename foo/foo foo/foo_bar`.

Is the trade off in simplicity of only tracking files in mercurial worth not having features that some people would consider useful?  I only used svn for a short time while evaluating other, distributed options, but I found that having directories be versioned was quite nice.  I guess I just got spoiled (even in a short period of time) by being able to do:

svn add foo;svn commit -m "First commit";
svn mv foo/foo foo/foo_bar;svn commit -m "Two";

and then get this for a log (svn log -v):

r2 | jbb | 2005-08-30 14:43:53 -0500 (Tue, 30 Aug 2005) | 1 line
Changed paths:
   D /foo/foo
   A /foo/foo_bar (from /foo/foo:1)

r1 | jbb | 2005-08-30 14:42:30 -0500 (Tue, 30 Aug 2005) | 1 line
Changed paths:
   A /foo
   A /foo/bar
   A /foo/bar/bar
   A /foo/bar/foo
   A /foo/foo
   A /foo/foo/bar
   A /foo/foo/foo

First commit

I personally think that it would be great if mercurial supported things like the above, but if it absolutely won't happen I will just have to deal with it not being there, afterall those features are not required, they are just quite nice to have.


More information about the Mercurial mailing list