2017-08-29 133 views
0

我正在開發Android源代碼,並使用鏡像來讓同步時間更快。不同分支的Git鏡像

$ mkdir mirror 
$ cd mirror 
$ repo init branchA --mirror 
$ repo sync 

然後,我可以使用這個鏡像,當我需要每次同步branchA時。

$ repo init branchA --reference=/.../mirror 
$ repo sync 

但是現在,我有一個問題,我有其他分支是與branchA相關的。例如,branchB基於branchA,而banchC基於branchB。在這種情況下,我應該需要三個不同的鏡子嗎?

如果我只同步branchC的鏡像,我可以用這個鏡像來同步branchA和branchB嗎?

如果我只同步branchA的鏡像,我可以用這個鏡像來同步branchB和branchC嗎?

回答

1

您只需要一面鏡子。

Repo的鏡像存儲庫已完全克隆。它們包含從所有分支,標籤和其他引用可到達的每個git對象。 repo sync的選項-c僅下載當前的ref及其對象,在鏡像存儲庫中不起作用。

即使鏡像只有一個分支的數據,您仍然可以使用它作爲參考下載其他裁判。將從遠程服務器下載在鏡像中找不到的缺失參考和對象。你不會錯過工作倉庫中的任何東西。

+0

謝謝,但我有關於鏡子的大小的另一個問題。如果鏡像只有一個分支的數據,它也可以用來同步其他分支的權利?它的大小呢?鏡子的大小將取決於分支的數量? –

+1

@KuanlinChen鏡像提供了儘可能多的數據。鏡像的大小取決於它擁有多少個git對象(提交,樹,斑點和註釋標記)。像分支或輕量級標籤本身需要一些空間,但非常小。主要部分是從這些文獻可到達的物體。如果100個分支指向相同的提交,那麼鏡像的大小几乎與只有一個分支指向同一提交的鏡像大小相同。如果這100家分行非常分散,那麼規模就要大得多。 – ElpieKay

+0

清楚的解釋。 –