从文件系统删除跟踪文件vs hg删除
问题描述:
我想知道从文件系统(例如通过Windows资源管理器)删除跟踪文件时是否有任何后果与使用hg remove删除从文件中删除时相比系统并且解开它。从文件系统删除跟踪文件vs hg删除
在这两种情况下,我都会承诺,只是在第一种情况下龟HG将文件标记为缺少感叹号,第二个标记为干净并准备删除。
除此之外,还有什么区别吗?
答
如果你的文件系统路径,不作任何其他更改跟踪文件,汞会给你一个错误,当您尝试提交:
nothing changed (1 missing files, see 'hg status')
(这是一个特例nothing changed
。)
如果您更改了其他内容,hg不会在此时发生抱怨,但该文件的状态将继续显示为缺少hg status
。这会给你的(精神)工作空间带来负面影响,并且很难一目了然地知道你的工作目录的当前状态。此外,该文件将保留在存储库中,并且将会被hg update
恢复为仍然被跟踪的任何修订!
hg remove
如果文件已经从文件系统中删除,将返回一个错误;在这种情况下,您应该使用hg forget
来通知Mercurial停止跟踪文件。
如果您喜欢使用外部实用程序(如Windows资源管理器)做出重大更改,则可以使用自动检测添加和删除的漂亮hg addremove
。 (缺点是,你可能会删除和不记录被意外删除的文件。)
如果你使用'hg remove',该文件也会保留在版本库中(对于早期版本)。只有更高版本受到影响。 – alexis 2013-05-16 11:23:45
@alexis:是的,当然,该文件会保留在历史记录中,并且会在所有仍在追踪它的变更集中“重新出现”。 “hg remove”只能继续前进;它不会改变历史。 – Livius 2013-05-16 11:30:11