Kurzfassung
Sie müssen jeden Morgen die nächtlichen Builds an mehr als 70 Personen verteilen und würden gerne git Ich möchte die Übertragung ausbalancieren und wüsste gerne, ob es Tipps, Fallstricke oder Fehler bei dieser Idee gibt, bevor ich mit der Entwicklung des Systems beginne.
Lange Fassung
Jeden Morgen müssen wir unseren nächtlichen Build an das Studio mit mehr als 70 Mitarbeitern (Künstler, Tester, Programmierer, Produzenten usw.) verteilen. Bis jetzt haben wir den Build auf einen Server kopiert und ein . Programm, das es abruft (mit Robocopy darunter); selbst bei der Einrichtung von Spiegeln ist die Übertragungsgeschwindigkeit inakzeptabel langsam, da die Synchronisierung zu Spitzenzeiten bis zu einer Stunde oder länger dauert (außerhalb der Spitzenzeiten sind es etwa 15 Minuten), was auf einen Hardware-E/A-Engpass hindeutet.
Eine brillante (wenn auch definitiv nicht originelle) Idee, die ich hatte, war, die Last im ganzen Studio zu verteilen. Nachdem ich untersucht hatte, einen Client zu schreiben, der das berüchtigte Bit-Torrent-Protokoll verwendet, kam mir ein weiterer Gedanke: Ich könnte einfach das git da es uns die Verteilung des Build- und Revisionsmanagements ermöglicht, mit dem zusätzlichen Vorteil, dass es weniger Server benötigt.
Fragen
-
Wie fängt man an, Git zu benutzen? Ich habe Erfahrung mit zentral gelegenen Versionskontrollsystemen wie Perforce et SVN . Nach der Lektüre der Dokumentation scheint es, dass Sie nur Folgendes ausführen müssen
git init path\\to\folder
und führen Sie dann auf einem anderen Rechnergit clone url
? -
Woher bekomme ich die
url
für die oben genanntengit clone
Befehl? Kann ich das definieren? Ich finde das Konzept einer Url seltsam, da Git keinen zentralen Server hat - oder doch? z.B. ähnlich wie bei einem Bit-Torrent-Tracker? -
Was wäre die bessere Option zur Identifizierung von Builds, die Verwendung von Änderungslistennummern oder Labels?
-
Ist es möglich, die Anzahl der gespeicherten Revisionen zu begrenzen? Dies wäre nützlich, da wir zusätzlich zu den nächtlichen Builds auch mehrere CI-Builds über den Tag verteilt haben, die wir verteilen wollen. Es macht jedoch keinen Sinn, eine unendliche Anzahl von Revisionen herumliegen zu haben. Unter Perforce können Sie die Überarbeitungen durch die Festlegung einer Eigenschaft einschränken.