Wir verwenden Subversion als unser Quellcodeverwaltungssystem und speichern die VisualStudio-Projektdateien (vcproj) im Quellcodeverwaltungssystem, wie es normalerweise der Fall ist. Mit Subversion verwenden wir keine Form der Dateisperrung. Wenn also zwei Entwickler gleichzeitig an demselben Projekt arbeiten und beide Dateien dem Projekt hinzufügen oder Einstellungen ändern, muss der zweite die Änderungen zusammenführen.
Wie fügen Sie diese Änderungen zusammen?
Die vcproj-Dateien sind nur Textdateien, so dass es möglich ist, sie von Hand zu bearbeiten, aber sie sind nicht besonders leicht zu bearbeiten, besonders von Junior-Entwicklern.
Die Möglichkeiten, die ich mir vorstellen kann, sind
Momentan verwenden wir die erste Option, alle Änderungen manuell hinzuzufügen, aber das ist zeitaufwendig und ich frage mich, ob es einen besseren Weg gibt.
Bei Quelldateien funktioniert die automatische Zusammenführungsfunktion die meiste Zeit und wir bekommen nicht viele Konflikte.
Ich habe festgestellt, dass Option 2 (Bearbeitung der Dateien von Hand) im Allgemeinen ziemlich gut funktioniert, solange Sie ein gutes Diff-Tool verwenden (ich verwende WinMerge ). Das Hauptproblem, auf das ich gestoßen bin, ist, dass Visual Studio manchmal die Datei neu anordnet. Wenn Sie jedoch ein gutes Werkzeug zum Vergleichen / Zusammenführen haben, sollte es in der Lage sein, zwischen geändertem und verschobenem Inhalt zu unterscheiden. Das kann sehr helfen.
Das ist ein schwieriges Problem und ich denke eine Schwäche in der Visual Studio Architektur. Die Art und Weise, wie wir es gefunden haben, war, die proj-Dateien überhaupt nicht in der Quellcodeverwaltung zu haben und ein Build-Skript zu haben, das die Konfigurationseinstellungen gehandhabt hat.
Die Alternative war sehr unordentlich und wir konnten keine konsistenten Builds oder Umgebungen zwischen Entwicklern garantieren. Dies führte zu einer großen Anzahl von Downstream-Integrationsproblemen und schließlich haben wir den drakonischen Schritt unternommen, die Projektdateien aus der Quellcodeverwaltung zu entfernen.
Die Entwicklerumgebungen könnten immer noch fehlausgerichtet werden, aber es zeigte sich, wenn sie versuchten, Dinge selbst zu erstellen.
Hier TFS verwenden, aber ich glaube nicht, dass es einen Unterschied macht.
Wir sperren auch nicht und müssen manchmal mit dem Zusammenführen von Projektdateien umgehen. Ich habe es nie als so komplex oder sehr problematisch empfunden. Selten treten Probleme auf, die nicht automatisch zusammengeführt werden können, und der manuelle Zusammenführungsprozess ist ziemlich trivial.
Es gibt nur eine Einschränkung: Check-in oft! Wenn Sie größere Änderungen an der Projektstruktur vornehmen und diese nicht sofort einchecken, können diese Änderungen die Komplexität späterer Zusammenführungen erhöhen. Wenn ich die Struktur eines Projekts grundlegend ändere, gebe ich normalerweise jedem den Kopf. Ich werde sie alle bitten, ihre aktuelle Arbeit einzuchecken, und dann selbst für die Zusammenführung sorgen.
Die Optionen 1 und 2 schließen sich nicht gegenseitig aus. Wenn der Entwickler Junior-Level ist, sollten Sie Option 1 verwenden (holen Sie die Projektdatei erneut und wiederholen Sie die Änderungen), wenn das für sie angenehmer ist. Für ältere Entwickler ist Option 2 (Merge mit einem Merge-Tool) völlig in Ordnung.
Ich denke, das ist eine Situation, die momentan keine magische Kugel hat - manchmal ist das Verschmelzen ein Schmerz.
Wir verwenden ein Diff-Tool ( WinMerge ), um Änderungen zusammenzuführen. Die Projektdateien sind (in den meisten Fällen) wirklich unkomplizierte XML. Der Schlüssel hier ist jedoch, dass es beim Zusammenführen niemals Überraschungen geben sollte, denn gute Kommunikation ist Teil des Fundaments effektiver Quellensteuerung.
Simultane Änderungen an das Projekt sind vollkommen in Ordnung, solange Menschen miteinander kommunizieren.
Tags und Links merge visual-studio svn