Wenn Sie git fetch
verwenden, um Refs von einem (sehr großen) Repository zu einem anderen auf dem lokalen Computer zu holen, benötigt die Erstellung von Pack-Dateien sehr lange git upload-pack
. Im lokalen Fall ist es nicht so notwendig, die Menge der transportierten Daten zu minimieren, und es ist mir egal, wie viel Speicherplatz durch den Verlust der Deltakompression verloren geht. Daher würde ich idealerweise lieber die fehlenden Objekte als die gepackten Objekte kopieren importiert. Gibt es eine Möglichkeit zu sagen git fetch
, um nur die fehlenden Objekte zu kopieren, wenn Sie den lokalen Transport verwenden?Kann "git fetch" angewiesen werden, "git upload-pack" nicht für lokale Repositories zu verwenden?
Oder allgemeiner, gibt es eine Möglichkeit, die Generierung von Pack-Dateien global zu unterdrücken? Eigentlich möchte ich Git nur als versioniertes Dateisystem verwenden, das keinen zusätzlichen Platz für identische Dateien benötigt - das Packen und Umpacken scheint der zeitaufwendige Schritt zu sein, der das peinlich macht.
Übrigens, ich habe einige Zeit damit verbracht, die Konfigurationsoptionen zu optimieren, so dass das Repackieren nicht so lange dauert (noch zu beginnen), also glaube ich nicht, dass die Antwort "diese Konfigurationsoptionen verwenden und das Packen viel passieren wird schneller“- aber vielleicht muss ich das alles falsch, so dass nur klar zu sein, die Konfigurations-Optionen, die ich in der Regel mit bin (auf einer Bearbeitungs mit 2 GiB RAM) sind:
core.deltacachesize=1
core.packedgitwindowsize=16m
core.packedgitlimit=128m
pack.packsizelimit=512m
pack.windowmemory=200m
pack.deltacachesize=200m
pack.window=4
pack.compression=3
pack.threads=0
gc.auto=0
gc.pruneexpire=never
receive.autogc=false
afaik, Git verwendet Hardlinks beim lokalen Klonen eines Repositorys. Ich weiß nicht über das Holen obwohl – knittl