git-p4 und riesige Dateigrößen

git-p4 und riesige Dateigrößen

Ich versuche, ein Perforce(p4)-Repository in Git zu konvertieren (vorzugsweise in Helix4Git, eine Git-Serverimplementierung von Perforce).

Ich reduziere mein Problem auf einen einfachen Anwendungsfall, um die Lösung für mein größeres Problem zu finden.

In P4 habe ich eine Datei//depot/foo.txtDas sind 10 MB. Ich habe es mit dem Merge-Befehl von P4 "geklont", sodass ich die gleiche Datei zweimal in meinem Repository habe, genannt//depot/bar.txt.

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

Der P4-Server speichert die Dateieinmaldurch die interne Verwendung von zwei Links wird der belegte Speicherplatz reduziert, sodass nur 10 MB belegt werden. Auf einer lokalen Festplatte hätte ich jedoch zwei physische Kopien (10+10=20 MB). Jetzt gibt es ein Problem:

ich benutzegit-p4um mein P4-Repository in Git zu konvertieren. Zuerst klone ich es auf meinen lokalen Computer, richte dann ein Git-Remote ein und sende alles ab, um es schließlich auf meinem Git-Server zu haben.

Wie bereits erwähnt, habe ich 20 MB auf meiner lokalen Festplatte und wenn ich es an meinen Git-Server übermittle, verwendet er ebenfalls 20 MB.

1) Wenn ich eine Datei in Git klone, wird sie dann auch physisch auf dem Server geklont?

2) Besteht die Möglichkeit, dass git-p4 oder der Git-Server diesen „Klon“ erkennt – also dass es sich um dieselbe Datei handelt – und auch intern Links verwendet? Entweder der Git-Server selbst oder durch Verwendung einer Dateisystemfunktion (Softlink oder Hardlink usw.).

Zusatzfrage) Wäre macOS APFS für den Git-Server hier hilfreich?

Vielen Dank!

Antwort1

Wenn Sie die geklonten Dateien in Git verschoben haben, werden sie gespeichertseparat. Git speichert nur den Dateiinhalt und die Dateiberechtigungen. Metadaten und Inode-ID werden nicht verfolgt.

Am besten fügen Sie den Klon hinzu gitignoreoder.git/info/exclude

Referenz:Linkbeschreibung hier eingeben

verwandte Informationen