2014-06-23 7 views
7

In unserem C# MVC-Projekt speichern wir unsere lokalisierbaren Zeichenfolgen in RESX-Dateien. Jedes Mal, wenn wir eine neue Zeichenfolge hinzufügen, legt Visual Studio sie am Ende der Datei ab. Wenn also zwei Zeichenfolgen in verschiedenen Zweigen hinzugefügt werden, erhalten wir einen Zusammenführungskonflikt, weil zwei verschiedene Code-Blöcke hinzugefügt werden Ort.Vermeiden von Zusammenführungskonflikten in RESX-Dateien

Wie können wir unsere Zusammenführungskonflikte reduzieren? Das alphabetische Sortieren der Strings könnte helfen, aber ich kann nicht sehen, wie das geht. Oder könnten wir git sagen, dass jedes <data>...</data>-Tag als ein unabhängiger Block behandelt wird?

Wir verwenden derzeit Git, hatten aber das gleiche Problem mit TFS/TFVC.

+2

Sollte nicht so schwierig sein, ein Skript zu schreiben, das die resx sortiert und vor jedem Commit aufgerufen wird. – Adrian

+1

Das hilft wahrscheinlich: http://stackoverflow.com/questions/22976757/tortoisegit-winforms-resolving-resource-resx-when-merging – ALOToverflow

Antwort

2

Wir haben die ResXManager Visual Studio-Erweiterung gefunden, die ResX-Dateien beim Speichern sortieren kann.

Wählen Sie in Visual Studio Extras> Erweiterungen und Updates. Klicken Sie im linken Bereich auf Online und suchen Sie in der Box oben rechts nach "ResXManager" und installieren Sie es.

ResXManager install dialog

Einmal installiert, wählen Sie Extras> ResXManager, am unteren Rand der Registerkarte Konfiguration gehen und aktivieren Sie die „Wenn eine RESX-Datei zu speichern, um die XML-Datenknoten durch den Schlüssel sortieren“.

Es gibt auch eine Schaltfläche "Alle Dateien jetzt sortieren". Das Sortieren der Dateien führt zu vielen Konflikten. Wählen Sie daher einen Zeitpunkt in Ihrem Veröffentlichungszyklus aus, um diese Konflikte zu minimieren. Für alle Entwickler muss ResXManager installiert sein, aber die Einstellung wird auf die Lösung angewendet, sodass sie nicht selbst geändert werden muss.

ResXManager configuration screen

Wir haben beginnen gerade diese verwenden. Ich werde diese Antwort aktualisieren, wenn wir ein bisschen Erfahrung damit haben.