8 Stimmen

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

Wir verwenden Subversion als unser Versionskontrollsystem und speichern die VisualStudio-Projektdateien (vcproj) im Versionskontrollsystem, wie es meiner Meinung nach üblich ist. Mit Subversion verwenden wir keine Form der Dateisperre. Wenn also zwei Entwickler gleichzeitig an demselben Projekt arbeiten und beide Dateien zum Projekt hinzufügen oder Einstellungen ändern, muss der zweite, der die Übergabe vornimmt, die Änderungen zusammenführen.

Wie führen Sie diese Änderungen zusammen?

Bei den vcproj-Dateien handelt es sich um reine Textdateien, die zwar von Hand bearbeitet werden können, aber vor allem von jüngeren Entwicklern nicht so einfach zu bearbeiten sind.

Folgende Möglichkeiten fallen mir ein

  • Holen Sie die neueste Version von svn und fügen Sie alle lokalen Änderungen manuell ein
  • Bearbeiten Sie die Datei von Hand, um etwaige Konflikte aus einer automatischen Zusammenführung zu lösen.
  • Implementierung einer Art von Sperrschema, um gleichzeitige Änderungen zu verhindern
  • Eine Vereinbarung zwischen den Entwicklern, damit sie keine gleichzeitigen Änderungen vornehmen

Derzeit verwenden wir die erste Möglichkeit, alle Änderungen manuell wieder einzufügen, aber das ist zeitaufwändig, und ich frage mich, ob es eine bessere Möglichkeit gibt.

Bei den Quelldateien funktioniert die automatische Zusammenführung meistens, und es gibt nicht viele Konflikte.

4voto

Herms Punkte 35605

Ich habe festgestellt, dass Option 2 (die Dateien von Hand bearbeiten) im Allgemeinen recht gut funktioniert, solange Sie ein gutes Diff-Tool verwenden (ich verwende WinMerge ). Das Hauptproblem, auf das ich gestoßen bin, ist, dass Visual Studio die Datei manchmal neu anordnet. Aber wenn Sie ein gutes diff/merge-Tool haben, sollte es in der Lage sein, zwischen geändertem und verschobenem Inhalt zu unterscheiden. Das kann eine große Hilfe sein.

3voto

sivabudh Punkte 30515

Sie finden vielleicht Projekt: Zusammenführen ou Werkzeuge für die SLN-Datei nützlich

1voto

Simon Punkte 74705

Dies ist ein schwieriges Problem und meiner Meinung nach eine Schwachstelle in der Visual Studio-Architektur. Der Weg, den wir gefunden haben, um es zu umgehen, war, die proj-Dateien überhaupt nicht in der Versionskontrolle zu haben und ein Build-Skript zu haben, das die Konfigurationseinstellungen behandelt.

Die Alternative war sehr unübersichtlich und wir konnten keine konsistenten Builds oder Umgebungen für die verschiedenen Entwickler garantieren. Dies führte zu einer großen Anzahl von nachgelagerten Integrationsproblemen, und schließlich gingen wir den drakonischen Schritt, die Projektdateien aus der Versionskontrolle zu entfernen.

Die Umgebungen der Entwickler konnten immer noch falsch ausgerichtet werden, aber das zeigte sich, als sie versuchten, selbst etwas zu bauen.

1voto

Ich verwende hier TFS, aber ich glaube nicht, dass es einen Unterschied macht.
Wir können auch nicht sperren und müssen uns manchmal mit der Zusammenführung von Projektdateien befassen. Ich habe noch nie festgestellt, dass das so komplex ist oder ein großes Problem darstellt. Wir haben nur selten Probleme, die nicht automatisch zusammengeführt werden können, und der manuelle Zusammenführungsprozess ist ziemlich trivial.

Es gibt nur einen einzigen Vorbehalt: Schauen Sie oft vorbei! 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 noch erhöhen. Wenn ich eine größere Änderung an der Struktur eines Projekts vornehme, warne ich normalerweise alle vor. Ich bitte sie alle, ihre aktuelle Arbeit einzuchecken, und kümmere mich dann selbst um die Zusammenführung.

1voto

Valerius Punkte 11

Dies habe ich kürzlich gefunden: http://www.codeproject.com/KB/macros/vcproj_formatter.aspx Wenn Sie dieses Tool auf eine vcproj-Datei und auf eine geänderte Version davon anwenden, können Sie die beiden Dateien mit Ihrem bevorzugten Textzusammenführungs-Tool leicht zusammenführen, und das Ergebnis ist eine kompaktere, hübsche vcproj-Datei.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X