2010-04-23 56 views
3

我提交了一些第三方工具,我決定以後不再使用,並將它們從hg中移除。Mercurial permament刪除?

件事,我不喜歡 - 他們仍然保留在歷史記錄。通常這當然是一件好事,但對於這種特殊情況 - 這只是浪費空間。

什麼是選擇,有意與汞庫的歷史和雜草出來管閒事?

+0

根據到目前爲止的答案,它看起來像你的情況不足以保證*任何*行動。也就是說,治療看起來比疾病更糟......除非你將*巨大*文件推入回購站... – 2010-04-24 03:53:26

+0

@邁克爾,我同意你的看法。治癒看起來相當可怕。期待完成一些合併,並初始化新的回購。 – 2010-04-24 09:19:57

回答

4

如果你不介意切換到新的倉庫,你最好的選擇將是使用轉換擴展。

您可以通過排除要排除任何文件filemap,它會創建一個新的存儲庫爲你,沒有你的文件的任何引用。當然,這意味着必須克隆一個新的工作副本。

這意味着工作副本的存儲庫,所以如果有大量的工作副本,準備做大量的工作。

+1

使用filemap進行轉換恰好是正確的答案,但我想圍繞「如果您不介意切換到新的存儲庫」繪製一個大紅色框。 mercurial中的變更集的內容(除其他外)會產生散列,並更改這些內容會更改散列。因此,如果您編輯歷史記錄,您擁有的每個克隆都將失效,並且還需要切換到回購才能推/拉,而不會加倍所有內容。 Lennaert明白這一點,但我想確保你做到這一點,因爲編輯歷史不是輕易完成的 - 它必須在任何地方完成。 – 2010-04-23 14:38:14

+0

@ Ry4an:好點!增加了一個警告,謝謝:) – Lennaert 2010-04-23 20:38:34

+0

http://board.koffer.ee/files/what_has_been_seen_cannot_be_unseen_695.jpg看到了什麼,不能被看不見......無論如何 - 謝謝。 – 2010-04-24 09:18:45

3

激活善變隊列延伸,並使用「汞條」改寫歷史。如果你有任何克隆,推送他們的變化並銷燬它們,做「hg strip」並再次克隆。

如果有克隆在那裏,你無法控制,所有的賭注都關閉。我將使用「convert」擴展來重建存儲庫,執行「hg strip」並替換舊的存儲庫。當試圖推/拉時,舊的克隆會出錯,因爲新的存儲庫具有不同的UUID,因此用戶將知道他們必須再次銷燬+克隆。