2015-11-24 64 views
1

我們目前正在嘗試將我們的水銀(在這種情況下是一種古老版本的窯)遷移到BitBucket,並且我們立即在尺寸上遇到問題(如果您不知道,BitBucket強加了一個相當慷慨的2gb回購限制 - 我們碰巧碰到了)。水銀回購規模的縮小(具體體現在)

不管怎麼說,我已經清理了過去的罪:

  • 使用與filemaps(去除二進制文件/靜態文件應該從來沒有在回購)
  • 創建其他的東西單獨的回購協議轉換這不應該是在主回購
  • 嘗試使用generaldelta減小尺寸(按 https://www.mercurial-scm.org/wiki/ScaleMercurial
  • 使用branchmaps設法鞏固老枝和其相關的變更

即使有這些措施,我仍然有一個非常大的清單文件,儘管「數據」存儲爲回購萎縮下降到「管理」大小(〜600MB),我的清單文件是近700MB 。

一些額外的信息:在一般情況下,我們的做法分支每個功能,並有兩個分支跟蹤出來的環境:

  • 發佈分支(部署到分期再到PROD)
  • 默認分支(最初關閉發佈,所有功能首先在這裏合併,然後釋放,這個分支死亡並且每兩週重生)

這個工作流程的一個區別是,默認本身永遠不會合併到釋放la gitflow/hgflow)。這是單向流動到默認導致問題嗎?

我們「只」有120個開放分支頭,所以它似乎是可管理的?

我很明顯錯過了這裏的一些步驟(或者回購只是完全淹沒)。

+0

它可能到位桶可能不「工作」爲我們的回購,但我發現很難相信。我還擔心,如果我們不修復/更改_something_,我們的回購將繼續氣氛活躍。 – ddango

+0

這在SO上很難回答(即沒有關於存儲庫細節的更多詳細的前後討論)。您是否考慮在Mercurial郵件列表中提問(也有幾位經驗豐富的管理Mercurial大型倉庫以及至少有一位Atlassian工作人員閱讀過)的問題? –

+0

我同意你 - 我會試試看。 – ddango

回答

0

僅供將來參考,我遵循了Tim的上述建議。我的完整劇本,最後變成這樣:

hg --config format.generaldelta=1 clone --pull oldrepo oldrepo-generaldelta 
hg --config format.generaldelta=1 clone --pull oldrepo-generaldata oldrepo-generaldelta2 
hg convert --filemap filemap.txt oldrepo-generaldelta2 newrepo 

蒂姆在他的鏈接答覆中提到 - 我們的艙單約700MB下降約與第二克隆40MB。

Can I optimize a Mercurial clone?

+0

爲了獲得最大的影響,您需要BitBucket存儲庫也使用generaldelta。我做了一些搜索,但一直沒有找到任何信息,這是否可能。 –