我想知道从文件系统中删除跟踪文件时是否有任何后果(例如通过Windows资源管理器),与使用hg remove从文件系统中删除它并解开它相比。
在这两种情况下,我都会事后提交,只是在第一种情况下,龟HG将文件标记为带有感叹号的文件,第二种情况下它标记为干净并准备好删除。
除此之外还有什么不同之处吗?
答案 0 :(得分:2)
如果您转到文件系统路径并且不对跟踪的文件进行任何其他更改,那么当您尝试提交时,hg会给您一个错误:
nothing changed (1 missing files, see 'hg status')
(这只是nothing changed
的一个特例。)
如果您更改了其他内容,则hg不会在此时投诉,但文件的状态将继续显示为hg status
缺失。这会产生负面影响,使您的(心理)工作空间变得混乱,并且难以一目了然地了解您的工作目录的当前状态。此外,该文件仍保留在存储库中,并且将由hg update
恢复,以用于仍在跟踪的任何修订版本!
hg remove
将返回错误;在这种情况下,您应该使用hg forget
告诉Mercurial停止跟踪该文件。
如果您更喜欢使用外部实用程序(如Windows资源管理器)进行重大更改,则可以使用可自动检测添加和删除的漂亮hg addremove
。 (缺点是您可能会删除并删除意外删除的文件。)