2013-06-13 18 views
1

我有一個mercurial回購沒有未提交的更改。我當時就修訂846,並決定我最後的2所人提交的垃圾,想繼續,就好像從版本844.所以,我打算鍵入:取消恢復在mercurial(不是重複的查詢)

hg revert -r 844 --all 

不幸的是我輸錯,並寫道:

hg revert -r 44 --all 

因此,我的整個存儲庫發生了巨大變化,包括目錄結構。我沒有看到任何.orig這樣的文件,所以我不認爲答案:

How to undo a revert in mercurial

幫助我。

hg log仍然有我所有的提交到修訂版846 - 你認爲我可以恢復到修訂版846嗎?

諮詢非常歡迎

回答

1

hg revert只是設置你的工作拷貝到您指定的,所以如果你沒有做,然後還原你的資料庫並沒有改變後提交的修訂。要修復它,您可以只執行hg update -C,然後刪除所有.orig文件。

之後,您可以執行正確的恢復語句來刪除最後兩個修訂版。

如果您確實執行了提交,那麼您想要執行的命令(hg revert -r 844 --all)仍然可以通過撤消還原提交以及您最初想要撤消的兩個提交來達到您想要的目的。

+0

非常感謝!我沒有提交,幸好當我點擊時,我注意到了這個問題。我可以問,爲什麼「-C」更新?我正在挖掘mercurial的手冊/書籍/網站,並且無法找到它的用途。如果我做了「hg update」,那會讓我看到目前的頭像,這是我想要的846版本。我可以找到用於命名分支的-C的引用,這似乎不相關? – user1213546

+0

我使用hg更新提示 - 完美工作。再次感謝 – user1213546

+0

'hg update -C'放棄了未提交的更改,我不會認爲它沒有它會起作用。它在我的測試中肯定不起作用。 –