2013-06-05 109 views
2

我們使用Mercurial並建立了一個repo服務器,所有本地/開發人員更改都被推送到該服務器。我從假期回來後發現我們的一個回購券已被取代。顯然,開發人員在推動提交的過程中遇到了問題,並認爲唯一的解決方案是在我們的服務器上刪除回購,並以新名稱從他的計算機中推出新回購。不知道如何,但在這樣做的過程中,我們在項目被吹走之前丟失了項目的所有變更歷史。Mercurial - 重命名/合併存儲庫

到目前爲止,我的本地計算機上仍然有完整的回購歷史記錄,並希望將新回購與舊回購合併,並保留完整的更改歷史記錄。如果我失去了歷史記錄,我很猶豫是否要對我的機器進行更新/更新。

我也想更新服務器上repo目錄的名稱,因爲現在我們的一些工具已經損壞了repo的路徑,並希望恢復到更新我們所有工具引用的初始目錄名稱。

我想我可以用hg rename來做我想要的重命名,但是如何將兩個repos合併爲一個?

回答

0

我找到了一種方法通過以下(有點)合併在這裏說明:https://www.mercurial-scm.org/wiki/MergingUnrelatedRepositories

  • 首先,我做了我的本地回購的副本,以防事情進展橫盤
  • 我克隆服務器上的回購這個名字我想這是和它匹配我的本地回購
  • 我沒有在服務器上回購拉我的地方之一,而不是做一個更新,做了合併
  • 解決合併比較和本地提交
  • 到新的服務器回購的推動變化,證實富於變化的歷史已經到位
  • 刪除舊的服務器回購
+0

你形容一個很奇怪的一組事務;因爲如果您回訪時找到的服務器上真正缺少回購的歷史記錄,則應該是無關的回購,並且您無法從它合併。所以目前還不清楚你在那裏處理的是什麼問題。 – alexis