2012-07-17 77 views
2

[注:「Perfarce」是水銀延伸與整合Perforce公司名稱:https://www.mercurial-scm.org/wiki/PerfarceExtension]推薦Perfarce(?或其他)的使用,以評估水銀流程

我們開始評估水銀的當前存儲在Perforce中的項目。我們並不是放棄P4倉庫並對汞進行所有改變,而是希望主要從事汞工作,並定期將變更推向P4。在評估過程中,有些開發人員可能會繼續在Perforce工作,但除此之外,我們希望評估DVCS可能實現的工作流程,例如從一個開發人員的回購協議拖到另一個開發人員的回購協議。

我已經嘗試過Perfarce擴展,它看起來像一個偉大的方式來使用汞作爲一個先進的P4客戶端與更詳細的本地歷史。但是,當我使用Perfarce檢出兩臺不同機器上的同一棵樹時,我得到兩個具有不同變更集ID的Mercurial歷史記錄。看起來像這樣分享更改的唯一方法就是通過P4倉庫。

是否有其他選項可以讓開發人員的知識庫與P4同步,而不會使其在Mercurial級別上不兼容?

回答

4

老實說 - 這聽起來像是一個可能導致噩夢的原因。下面是我會怎麼處理它,儘量減少一些風險和痛苦的:

  • 設置Perforce的工作區「allwrite」這樣的Perforce不會干擾汞之多。
  • 使用一個P4工作區將來自倉庫的變更同步到mercurial倉庫(並從hg返回倉庫),然後從中執行mercurial push/pull工作。對待它有點像GitHub或Bitbucket上的主存儲庫。
  • 通過使用P4V的「協調離線工作」功能並確保仔細查看更改列表(您不想提交.hg目錄),使用一個真實工作區同步將更改回Perforce。

有些學科你應該能夠避免一些陷阱,儘管它肯定不是一個理想的路徑。我不認爲有一個單一的子彈可以讓你無縫地保持你的改變在所有不同的倉庫中被正確地反映出來,並且讓每個人都能像平常一樣工作。