我想恢復在某個提交中已被刪除的文件,並以不同的名稱恢復它,以便共享歷史記錄。在顛覆,我會做Mercurial:恢復文件
svn cp [email protected] dest
即使用掛釘修訂。 Mercurial中的等效物是什麼?
我想恢復在某個提交中已被刪除的文件,並以不同的名稱恢復它,以便共享歷史記錄。在顛覆,我會做Mercurial:恢復文件
svn cp [email protected] dest
即使用掛釘修訂。 Mercurial中的等效物是什麼?
我不認爲Mercurial有一個內置的方法來做到這一點。但我認爲你可以通過獲得同樣的效果:
hg up -C REV # Update to revision containing a copy of the file
<modify the file in question>
hg commit # Create second head based on old revision
hg merge # Merge two heads into one
# Note: make sure to choose to have the file exist
hg commit
hg mv MYFILE MYNEWNAME
這將文件保存其所有古老的歷史,最好的水銀可以跟蹤它。
在合併之前,我在新的未命名分支中完成了'mv',但最終結果是相同的。 – 2010-07-27 16:44:31
這對我來說工作得很好,Ry4an的建議是將程序建議的文件移動到「<修改有問題的文件>」。 – 2010-07-28 14:31:18
將不僅僅(如果REV + 1你 「hg remove
」 d SRC):
hg revert -rREV src
hg status
A src
hg rename src dest
hg commit -m"restored src and renamed it to dest"
工作?
編輯:我剛測試它,它似乎沒問題。其實沒有「hg add
」是src所必需的,因爲恢復正在照顧這一點。但是,如果你只是一個承諾,而不是兩個(如上面的代碼),HG將給出警告:
SRC尚未提交,因此沒有 拷貝數據將被保存到dest。
希望它能幫上忙。
這將工作來恢復文件;它不允許同時重命名(因爲添加的文件不被視爲有歷史記錄)。但是,通過兩次提交,這也會起作用。 – 2010-07-28 14:36:32
我不認爲hg可以直接跟蹤重命名文件的歷史記錄。有趣的問題,但。 – 2010-07-27 16:20:01