
Perforce(p4) リポジトリを git (できれば Perforce による git サーバー実装である Helix4Git) に変換しようとしています。
より大きな問題の解決策を見つけるために、問題を単純なユースケースに縮小します。
P4には1つのファイルがあります//デポ/foo.txtこれは10MBです。P4のマージコマンドを使用して「クローン」したので、リポジトリに同じファイルが2つあります。//デポ/バー.txt。
//depot
.. foo.txt (10MB) [internal-id==> 4509b9a8.txt]
.. bar.txt (10MB, clone of foo.txt) [internal-id==> 4509b9a8.txt]
P4サーバーはファイルを保存する一度内部的に 2 つのリンクを使用することで、ディスクの使用容量が削減され、使用されるのは 10 MB だけになります。ただし、ローカル ディスクには 2 つの物理コピー (10 + 10 = 20 MB) があります。ここで問題があります。
私が使うgit-p4P4 リポジトリを git に変換します。まずローカル コンピューターにクローンし、git-remote を設定してすべてを送信し、最終的に git サーバーに配置します。
前述のように、ローカル ディスクには 20 MB あり、それを Git サーバーに送信すると、サーバーも 20 MB を使用します。
1) Git でファイルをクローンすると、サーバー上にも物理的にクローンされますか?
2) git-p4 または git サーバーがこの「クローン」 (同じファイル) を検出し、内部的にもリンクを使用する可能性はありますか? git サーバー自体、またはファイル システム機能 (ソフト リンクまたはハード リンクなど) を使用することによります。
追加質問) Git サーバー用の macOS APFS はここで役立ちますか?
どうもありがとう!
答え1
クローンしたファイルをGitに移動すると、それらは保存されます別々にGit はファイルの内容とファイルの権限のみを保存します。メタデータと inode ID は追跡されません。
クローンを追加するgitignore
か、.git/info/exclude