git-p4 和巨大的檔案大小

git-p4 和巨大的檔案大小

我正在嘗試將 Perforce(p4) 儲存庫轉換為 git(最好是 Helix4Git,perforce 的 git 伺服器實作)。

我將問題簡化為一個簡單的用例,以便找到更大問題的解決方案。

在 P4 中我有一個文件//倉庫/foo.txt即 10MB。我使用 P4 的合併命令“克隆”了它,因此我的存儲庫中有兩個相同的文件,稱為//倉庫/bar.txt

//depot
    .. foo.txt (10MB) [internal-id==> 4509b9a8.txt]
    .. bar.txt (10MB, clone of foo.txt) [internal-id==> 4509b9a8.txt]

P4伺服器儲存文件一次透過在內部使用兩個連結來減少使用的磁碟空間,因此僅使用了 10MB。在本機磁碟上,我會有兩個實體副本(10+10=20MB)。現在問題來了:

我用git-p4將我的 P4 儲存庫轉換為 git。首先,我將其克隆到本地計算機,然後設置 git-remote 並提交所有內容,最終將其放在我的 git 伺服器上。

如前所述,我的本機磁碟上有 20MB,當我將其提交到我的 git 伺服器時,他也使用了 20MB。

1)如果我在git中克隆一個文件,它是否也在伺服器上物理克隆?

2)git-p4或git伺服器是否有可能偵測到這個「克隆」-它是同一個檔案-並且也在內部使用連結? git 伺服器本身或使用檔案系統功能(軟連結或硬連結等)。

額外問題)git 伺服器的 macOS APFS 在這裡有什麼幫助嗎?

多謝!

答案1

當您將克隆的檔案移至 Git 時,它們將被儲存分別地。 Git只儲存檔案內容和檔案權限。不追蹤元資料和索引節點 ID。

您最好的選擇是將克隆添加到gitignore.git/info/exclude

參考:在此輸入連結描述

相關內容