it-swarm.com.de

Wie löse ich einen Zusammenführungskonflikt mit SVN-Eigenschaften?

Das hat mich schon lange gestört - wie löse ich einen Zusammenführungskonflikt in den SVN-Eigenschaften eines Verzeichnisses richtig? Angenommen, es arbeiten zwei Entwickler an einem Projekt, in dem svn: ignore für ein bestimmtes Verzeichnis festgelegt ist. Wenn beide Entwickler bei der Aktualisierung der zweiten Eigenschaft Änderungen an dieser Eigenschaft vornehmen, wird ein Zusammenführungskonflikt festgestellt.

Im Gegensatz zu Konflikten beim Zusammenführen von Dateien wird im Verzeichnis "dir_conflicts.prej" eine einzelne Datei generiert, die der zweite Entwickler lesen und manuell korrigieren muss. Normalerweise mache ich am Ende alle meine Änderungen an der lokalen Kopie rückgängig und setze diese Eigenschaften dann manuell mit den Informationen in dir_conflicts.prej zurück. Dies ist jedoch recht umständlich, wenn Sie sich mit einer großen Liste von URLs in einer svn: externals-Eigenschaft befassen, wie sie viele unserer Projekte verwenden.

Es muss einen besseren Weg geben - weiß jemand wie?

40
Nik Reiman

Nur ein kurzes Update nach einigen zusätzlichen Recherchen - es ist nicht möglich, SVN-Eigenschaften einfach zusammenzuführen. Meine ursprünglich beschriebene Methode (Zurücksetzen, Zusammenführen von Daten aus .prej-Dateien, Propset, erneutes Festschreiben) scheint der beste Weg zu sein, um mit dieser Art von Problem umzugehen.

11
Nik Reiman

In der Zwischenzeit ist dies in Eclipse + Subclipse (Indigo) mit der Funktion möglich

Team-> Eigenschaftskonflikte bearbeiten

(habe gerade versucht mit widersprüchlichen SVN: Eigenschaften ignorieren)

Diese Funktion öffnet ein Dialogfeld, in dem beide Eigenschaftenversionen (lokal und Repository) angezeigt werden, in die Sie den Konflikt kopieren und einfügen können. Verwenden Sie dazu Team-> Mark Resolved.

3
Gregor

Ich hatte das gleiche Problem.

Ich habe versucht, Team-> Property Conflicts zu bearbeiten , aber mein STS wurde gehängt und reagierte nicht, daher zwang ich mich zum Schließen.

Es ist möglich mit TortoiseSVN zu lösen

So habe ich gelöst

  • wählen Sie den Ordner aus, in dem sich der dir_conflicts.prej befindet
  • rechtsklick TortoiseSVN -> Auflösen ...
  • Es wird dann aufgefordert, den Eigenschaftskonflikt zu lösen
  • Löse und speichere
3
Ashwani Kumar

Meinen Sie einen Zusammenführungskonflikt beim Zusammenführen/Aktualisieren oder Zusammenführen von Zweigen? 

Das SVN Book ist im Hinblick auf die Eigenschaft svn: ignore im Besonderen ziemlich klar:

Subversion geht nicht davon aus, dass jede Datei oder jedes Unterverzeichnis in einem Arbeitskopierverzeichnis Für das Steuerelement der Version Bestimmt ist. Ressourcen müssen explizit Mit den Befehlen svn add oder svn import In die Verwaltung von Subversion Gestellt werden.

...

Jeder Benutzer dieses Repositorys zu zwingen, seinen Laufzeitkonfigurationsbereichen Muster für diese Ressourcen hinzuzufügen, wäre nicht nur eine Belastung, sondern kann mit den Konfigurationsanforderungen anderer Arbeitskopien kollidieren, die der Benutzer ausgecheckt hat.

1
jtimberman

Ich wünschte, ich könnte eine hoffnungsvollere Lösung anbieten, aber aus meiner Erfahrung ist es derzeit nicht möglich, svn-Eigenschaften mit TortoiseSVN zusammenzuführen. Sehen  http://svn.haxx.se/tsvn/archive-2008-09/0212.shtml.

1
Noah Goodrich

Ich hatte einen ähnlichen Konflikt. Ich öffnete dir_conflicts.prej in einem Texteditor und sah, dass der svn ignore list geändert wurde. Glücklicherweise war der Inhalt der Liste derselbe, nur die Reihenfolge änderte sich. Also klicke ich in TortoiseSVN 1.9.3 mit der rechten Maustaste auf den Ordner und dann auf TortoiseSVN -> Resolve.... Und der Konflikt wurde behoben.

0
jpllosa

Nur um es klar zu sein: SVN scheint die Datei dir_conflicts.prej zu verwenden, um die Tatsache abzuleiten, dass das Verzeichnis einen Konflikt aufweist. Wenn Sie den Konflikt manuell angehen möchten, können Sie einfach die Datei dir_conflicts.prej löschen und die svn-Eigenschaften dann manuell festlegen, wenn Sie sie möchten. (Natürlich stellen Sie sicher, dass Sie die benötigten Dateien aus der .prej-Datei erhalten, bevor Sie sie löschen!)

0
BrianV