Wir sind eine Softwareberatung mit einer Vielzahl von Projekten für verschiedene Kunden. Wir verwenden traditionell Subversion, erwägen jedoch derzeit den Umstieg auf Git.
Ein erheblicher Teil der von uns erstellten Dokumente wird an unsere Kunden weitergegeben (Anforderungen, globale Designs, Testspezifikationen usw.), und wir verwenden MS Office, um diese zu erstellen. In Subversion könnten wir die Funktion "Sperren" verwenden, um sicherzustellen, dass niemand dasselbe Dokument zur gleichen Zeit bearbeitet. In Git ist dies nicht möglich, da git aufgrund seiner Verteilung keine Sperren hat.
Schlösser sind eigentlich kaum mehr als ein Kommunikationsmechanismus, aber sie sind sehr effektiv.
Derzeit befinden sich unser Code und kundenbezogene Dokumente in der Regel in verschiedenen Unterordnern eines anderen SVN-Repositorys. Was würden Sie empfehlen, wenn Sie zu git wechseln? Ich sehe eine Reihe von Optionen:
Wir verschieben die SVN-Repositorys 1-zu-1 nach Git. Anstatt Sperren für die Office-Dateien zu verwenden, tun wir, was die Git-Leute vorschlagen, und versuchen irgendwie, unseren Workflow zu ändern, um dies zu beheben. Dies könnte in einer Verzweigung bei jeder Dokumentbearbeitung funktionieren und diese über die Überprüfung zusammenführen. Dieser Ansatz bricht z. B. Excel-Tabellen ab, die Projektverwaltungsinformationen enthalten. Sie können von Teammitgliedern problemlos bearbeitet werden (und wir empfehlen dies zu tun), unterliegen jedoch keinem formellen Überprüfungsprozess
Wir verwenden git für Code und svn für Dokumente und Projektmanagement. Dies hat den Nachteil, dass bestimmte mehr gestalterische Dokumente nicht in der Nähe des angegebenen Codes sind, was die Wahrscheinlichkeit erhöht, dass Benutzer vergessen, sie zu aktualisieren. Darüber hinaus muss jeder zwei Werkzeugsätze verwenden und verstehen. Das heißt, vielleicht ist dies eine großartige Gelegenheit, auf textbasierte Dokumententools (Latex, Markdown, HTML usw.) für nicht kundenorientierte Designdokumente umzusteigen.
Wie 1, aber wir hacken einen
git lock
Befehl, der das tut, was svn lock für uns tut (schalten Sie das Nur-Lese-Flag entsprechend um und synchronisieren Sie mit einem Server auf irgendeine Weise).
Ich kaufe nicht das Argument, dass Sperren in einem DVCS nicht funktionieren, weil das System sogar funktionieren sollte, wenn Sie vollständig offline sind. Svn-Sperren können ebenfalls überschrieben werden. Sie sind ein Kommunikationsmechanismus . Ohne irgendeine Art von Netzwerkverbindung wird Ihr Computer nicht viel kommunizieren.
Wir können nicht der einzige Shop sein, der sehr zufrieden damit ist, wie es svn lock
in unseren Workflow passt, oder?
Irgendwelche Ideen oder Tipps?
Ich habe /programming/119444/locking-binary-files-using-git-version-control-system gefunden, aber die Diskussion ist eher technisch. Ich suche nach Möglichkeiten, um das praktische Problem zu lösen oder zu vermeiden, dass zwei Teammitglieder gleichzeitig dieselbe Binärdatei bearbeiten.