Info Q article on DVCS - a request and some feedback
Ian Clatworthy
ian.clatworthy at canonical.com
Thu May 15 01:00:13 BST 2008
Matthieu Moy wrote:
>> So A=add & R=remove => hg 0.95 is tracking a dir rename as a series of
>> deletes and a series of adds.
>
> Reading "hg status --help" should help you understand your
> miss-understanding.
>
> I like the way bzr deals with renames, and I don't know why -C is not
> the default for "hg status", but really, people should read the doc
> before trying to compare tools.
Matthieu,
Thanks for the tip - adding -C certainly helps and I wasn't aware of it.
After renaming dir2 to dir3, I then get:
$hg st -C
A dir3/greeting
dir2/greeting
R dir2/greeting
which I don't find obvious but --help clarifies the output. FWIW, if I
then commit this change, I'm back to the old output (in 0.95 at least):
$hg ci -m "..."
$hg st -C --rev 1
A dir3/greeting
R dir2/greeting
I'm sure hg's handling of renames is good enough for many - I'm not
suggesting it's broken and it's an improvement on git. I am suggesting
though that it's well short of what Bazaar does in several ways:
1. Reporting via status. Bazaar shows the rename as such (not as a
copy+remove pair) and Bazaar shows directories as renamed (not
each file inside it as changed).
2. Merging after directory renames.
The latter issue is the bigger one I feel.
Ian C.
More information about the bazaar
mailing list