我想知道從文件系統(例如通過Windows資源管理器)刪除跟蹤文件時是否有任何後果與使用hg remove刪除從文件中刪除時相比系統並且解開它。從文件系統刪除跟蹤文件vs hg刪除
在這兩種情況下,我都會承諾,只是在第一種情況下龜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