Wie verwalten Sie .vcproj-Dateien in der Quellcodeverwaltung, die von mehreren Entwicklern geändert wurden?

8

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

  • Holen Sie sich die neueste Version von svn und fügen Sie alle lokalen Änderungen manuell hinzu
  • Bearbeiten Sie die Datei von Hand, um Konflikte aus einer automatischen Zusammenführung zu lösen
  • Implementieren Sie eine Art von Sperrschema, um gleichzeitige Änderungen zu verhindern
  • Haben Sie eine Vereinbarung zwischen den Entwicklern, damit sie nicht gleichzeitig Änderungen vornehmen

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.

    
David Dibben 03.10.2008, 13:18
quelle

7 Antworten

4

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.

    
Herms 03.10.2008, 13:22
quelle
3

Sie finden Project: Merge oder Tools für SLN-Datei nützlich

    
sivabudh 23.10.2010 05:41
quelle
1

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.

    
Simon 03.10.2008 13:26
quelle
1

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.

    
Will 03.10.2008 13:43
quelle
1

Ich habe das kürzlich gefunden: Ссылка Wenn Sie dieses Tool in einer vcproj-Datei und in einer modifizierten Version ausführen, können Sie sie einfach mit Ihrem bevorzugten Text-Merge-Tool zusammenführen. Darüber hinaus ist das Ergebnis eine kompakte vcproj-Datei.

    
Valerius 05.12.2010 22:12
quelle
0

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.

    
Michael Burr 04.10.2008 00:02
quelle
-1

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.

    
Bob King 03.10.2008 13:23
quelle

Tags und Links