Wie verwende ich Git in einer Sneakernet-Umgebung?
Lesezeit: 2 Minuten
Philipp Oakley
Mein Projekt hat eine Reihe von Test-PCs, die zu 100 % netzunabhängig sind. Wir verwenden ein USB-Laufwerk, um Dateien zu und von diesen PCs zu übertragen. Einige Entwicklungen finden während der Tests auf diesen PCs statt. Wir übertragen ZIP-Dateien der aktualisierten Dateien, wobei die „Versionsinformationen“ im Namen der ZIP-Datei codiert sind.
Meine Frage ist, wie Git am besten für die Verwaltung der Sneakernet-Übertragung von Dateien (oder Repos oder was?) zwischen den Büro-PCs des Projekts und den Test-PCs verwendet werden kann. Es ist nicht der normale „Anwendungsfall“, der oft für Laptop-Benutzer präsentiert wird, die „off-net“ sind und in einem Eckcafé entwickeln und später wieder ans Netz gehen.
Hat jemand Erfahrungen mit solchen Szenarien?
Siehe auch die git bundle create <file> --all antworten, um ein komplettes Repo zu übertragen
Die Verwendung von Git mit nicht verbundenen Computern ist einfach mit git bundle.
Sie können auch einen Klon des Repositorys auf einem USB-Laufwerk aufbewahren. „Push“ vom Off-Net-PC auf das USB-Laufwerk, dann „Push“ vom USB-Laufwerk auf das zentrale Repository.
Es könnte besser sein, das USB-Laufwerks-Repository mit einem eigenen Arbeitsverzeichnis (auch auf dem USB-Laufwerk) zu haben. Ziehen Sie dann vom Off-Net-PC auf das USB-Laufwerk und drücken Sie vom USB-Laufwerk auf das zentrale Repository. Wenn dieser Push erfolgt, können Sie bei Bedarf auf dem USB-Laufwerk zusammenführen.
Sie brauchen nicht wirklich ein “zentrales” Repository, wenn Sie Git verwenden, aber ja, das Pushen und Ziehen von Repositories auf USB-Laufwerken würde funktionieren.
– Chris Friedrich
10. Juni 2011 um 0:55 Uhr
Meine Sorge, ein vollständiges Repository auf dem Laufwerk zu haben, war die Größe und die Möglichkeit der Beschädigung, außerdem hat jeder Entwickler sein eigenes Laufwerk, sodass die Synchronisierung „verloren“ gehen könnte. Ich bin sicher, dass es für einige Workflows funktionieren wird.
– Philipp Oakley
10. Juni 2011 um 7:04 Uhr
Philipp Oakley
Leser, die hierher kommen, sind wahrscheinlich auch daran interessiert, den Code „git-on-usb-stick-for-travelling-code“ zu verwenden, der viele Ähnlichkeiten aufweist. Es wird wahrscheinlich nicht für meine Umgebung funktionieren, in der zwei Benutzer die Sneakernet-Verwendungs-/Bearbeitungsbewegungen ausführen (dh zwei separate USB-Laufwerke), aber es ist eine Möglichkeit.
Es hängt alles davon ab, wie sehr Sie dem Übertragungslaufwerk vertrauen und ob die Tools funktionieren können, wenn Sie es nicht angeschlossen haben ….
chrisinmtown
Ich fand dieses Tutorial noch hilfreicher als die Manpage, weil es ein Beispiel dafür gibt, wie Git prüft, ob das eingehende Bundle und das Ziel-Repository einen gemeinsamen Vorfahren-Commit haben: