hg remove implicit for whole tree commits?

Robin Farine robin.farine at terminus.org
Sat Aug 6 19:55:14 CDT 2005


On Sunday 07 August 2005 01.15, Matt Mackall wrote:

> That behavior seems to have snuck in quietly. We probably don't
> want to be automatically deleting files without the -A flag.

Do you mean that a commit should fail in presence of deleted but not 
hg removed files? Or should the commit succeed but not register the 
files as removed in the repository? The former looks like the 
safest to me, given that hg status displays 'R' in both cases. 
Perhaps hg status could display a 'D' for deleted but not removed 
files?

Also, In the case of new but not hg added files, a whole tree commit 
currently (0.6b) succeeds but ignores these files. But since hg 
status displays a '?' for new but not added files, at least we are 
warned.

Chris Mason recently added a '--force' option to commit to allow 
commits without actual changes in the working directory. This new 
option could be used so that:

  - commit without -A or --force fails in presence of files
    'hg status' flags with 'D' (as per above) or '?'

  - commit -A fails when there are no changes on the working
    directory but otherwise handles 'D' or '?' files appropriately

  - commit --force accepts empty changesets and succeeds in presence
    of 'D' or '?' files but ignores them

  - commit -A --force accepts empty changesets and takes care of
    'D' or '?' files

What do you think?

I am asking all these questions because I am currently trying to 
write the source part of a tailor backend for tla to track tla- 
maintained projects with Mercurial, tla and Mercurial sharing the 
same working directory for each project. And it proved not as 
trivial as I first thought.

Thanks for your patience,

Robin


More information about the Mercurial mailing list