2012-07-09 107 views
3

我在窯爐中創建了一個分支,並一直使用它在名爲contactsmanager的文件夾中進行工作。TortoiseHG - 重命名文件夾 - >新建文件夾

現在雖然計劃發生了變化,但是我沒有將我的更改合併回主幹,我想要的是將重命名爲 contactsmanager文件夾以便聯繫。

我想龜對待老contactsmanager文件夾如刪除或重命名,只是,平淡,缺少

我想從幹線拉下來,並獲得舊的聯繫人管理器,並與新(重命名)的聯繫人文件夾並排放置,當它看起來正確時,將此結構推送到幹線(contactsmanager和contacts並排)

問題是,TortoiseHG似乎確定舊的contactsmanager文件夾被刪除,如屏幕截圖所示。我試着突出顯示所有舊的聯繫人管理器,右鍵單擊並選擇「忘記」,但無濟於事。

有沒有辦法在烏龜中實現這一點?解決方法非常明確:在trunk上覆制舊的contactsmanager文件夾,推送我的更改,在trunk上重命名,手動恢復舊的聯繫人管理器,並且很好。

雖然我希望有一個直接的方法。

enter image description here

回答

2

讓我看看我是否能澄清對不同的文件狀態之間的轉換的幾件事情在水銀:

  • 清潔→刪除:hg removehg rename,或hg forget

  • 刪除→清潔:hg revert

那麼重命名,刪除,忘記一個文件都會導致同樣的事情:將文件定於去除在接下來的提交。當然,不同的命令將在工作副本有不同的影響:

  • hg remove:文件從你的工作副本

  • hg rename刪除:文件被刪除,但現在可以用另一個名稱

    發現
  • hg forget:文件仍然在那裏工作副本

hg forget命令在任何情況下都不會生成文件,這就是hg revert的用途。

所以,如果我已經正確理解了你,那麼你想要hg revert整個contactsmanager文件夾將文件恢復到一個乾淨的狀態(這可能是你的意思是「我想從幹線拉下來,並得到舊的聯繫人管理員「)。 contacts文件夾中的文件對於Mercurial而言將保持未知 - 您可以照常添加它們。

如果您這樣做,那麼contactsmanagercontacts中的文件之間不會有任何「鏈接」,並且文件夾將按照您的要求並排存放。缺失的鏈接意味着你不會被要求將一個文件夾中所做的更改合併到另一個文件夾中。如果你確實想要這個,那麼你可以將hg copycontactsmanager文件夾改爲contents。副本將使Mercurial將contactsmanager中所做的更改合併到contacts中。有關更多信息,請參閱my answer about hg copy

+0

非常感謝你寫這篇文章。到現在爲止,我已經提到了俗套的解決方法(複製/粘貼/備份中繼的聯繫人管理器推送到中繼,在中繼上重命名,創建新的聯繫人管理器並粘貼回去)。不漂亮,但它的工作。我會保留這個方便閱讀幾次。好東西。 – 2012-07-10 15:54:08