Ich habe mir die gleichen Fragen gestellt, als wir Subversion hier implementierten - ungefähr 20 Entwickler, verteilt auf 4 - 6 Projekte. Ich habe keine gute Quelle mit der Antwort gefunden. Hier sind einige Teile, wie sich unsere Antwort in den letzten 3 Jahren entwickelt hat:
- so oft wie nötig verpflichten; Unsere Faustregel lautet: Festschreiben, wenn Sie genügend Arbeit geleistet haben, sodass es ein Problem wäre, diese erneut ausführen zu müssen, wenn die Änderungen verloren gehen. manchmal verpflichte ich mich alle 15 Minuten oder so, manchmal kann es Tage sein (ja, manchmal brauche ich einen Tag, um 1 Codezeile zu schreiben)
- Wir verwenden Zweige, wie in einer Ihrer früheren Antworten vorgeschlagen, für verschiedene Entwicklungspfade. Derzeit haben wir für eines unserer Programme drei aktive Zweige: 1 für die Hauptentwicklung, 1 für den noch nicht abgeschlossenen Versuch, das Programm zu parallelisieren, und 1 für den Versuch, es für die Verwendung von XML-Eingabe- und Ausgabedateien zu überarbeiten;
- Wir verwenden kaum Tags, obwohl wir der Meinung sind, dass wir sie verwenden sollten, um Veröffentlichungen für die Produktion zu identifizieren.
Stellen Sie sich die Entwicklung auf einem einzigen Weg vor. Zu einem bestimmten Zeitpunkt oder in einem Entwicklungsstadium beschließt das Marketing, die erste Version des Produkts freizugeben, sodass Sie eine Markierung in den Pfad mit der Bezeichnung "1" (oder "1.0" oder was haben Sie) setzen. Zu einem anderen Zeitpunkt beschließt ein heller Funke, das Programm zu parallelisieren, entscheidet jedoch, dass dies Wochen dauern wird und dass die Leute in der Zwischenzeit den Hauptweg weitergehen wollen. Sie bauen also eine Weggabelung und verschiedene Leute wandern die verschiedenen Gabeln hinunter.
Die Flaggen auf der Straße werden als "Tags" bezeichnet, und an den Gabeln auf der Straße teilen sich die "Zweige". Gelegentlich kommen auch Zweige wieder zusammen.
- Wir stellen alles Material, das zum Erstellen einer ausführbaren Datei (oder eines Systems) erforderlich ist, in das Repository. Das bedeutet mindestens Quellcode und Make-Datei (oder Projektdateien für Visual Studio). Aber wenn wir Symbole und Konfigurationsdateien und all das andere Zeug haben, geht das in das Repository. Einige Dokumentationen finden ihren Weg in das Repo; Sicherlich ist jede Dokumentation wie Hilfedateien, die möglicherweise in das Programm integriert sind, vorhanden, und es ist ein nützlicher Ort, um Entwicklerdokumentation zu platzieren.
Wir haben sogar ausführbare Windows-Dateien für unsere Produktionsversionen dort abgelegt, um Menschen, die nach Software suchen, einen einzigen Speicherort zu bieten. Unsere Linux-Versionen werden auf einen Server übertragen und müssen nicht gespeichert werden.
- Wir verlangen nicht, dass das Repository jederzeit in der Lage ist, eine neueste Version bereitzustellen, die erstellt und ausgeführt wird. Einige Projekte funktionieren so, andere nicht. Die Entscheidung liegt beim Projektmanager und hängt von vielen Faktoren ab, aber ich denke, sie bricht zusammen, wenn größere Änderungen an einem Programm vorgenommen werden.