Frage

Microsoft Visual Studio verwendet XML seine .vcproj Projektdateien zu speichern. So diffing XML-Projektdateien sollte leicht sein.

Leider, wenn Sie alle der Eigenschaften der Datei Projekt ändern, Visual Studio besteht auf dem Zufallsprinzip den XML-Knoten der Projektdatei schlurfend! Dies macht Text diffing und Zusammenführen von Projektdatei Änderungen im Grunde unmöglich. Ändern eine Compiler-Einstellung kann mein visuelles Diff-Tool machen glaube, ich habe 50% der Zeilen in der Datei geändert! Ich habe sogar einige XML diff Tools ausprobiert, aber sie zeigen nur eine strukturierte Sicht auf die gleiche Chaos.

Hat jemand irgendwelche Vorschläge für die Aufrechterhaltung .vcproj Dateien in der Quellcodeverwaltung? Oder eine Möglichkeit, Visual Studio auf zu überzeugen, nicht ordnen Sie den XML-Knoten in der .vcproj Datei?

(Ich habe auch Tools wie CMake untersucht mit .vcproj Dateien von einer diff freundlicher Textdatei zu generieren, aber CMake hat seine eigenen Probleme.)

War es hilfreich?

Lösung

Das scheint ab und zu kommen.

Vielleicht ist es ein Problem, reif für ein Plug-in oder einem anderen Normierungs Werkzeug.

Es wäre ein großes Neben Geschäft sein, bis MS es zu beheben entscheidet. Dann bist du kein Glück - es sei denn natürlich bieten sie Ihre IP kaufen

.

Jeder will ein Open-Source-Projekt, oder kommerzielles Produkt starten? Ich bin Spiel.

Ich habe einen gehen könnte bei einem Stand-alone-Normalisieren-Tool, dann sehen, ob ich es in ein Plugin verwandeln kann.

Andere Tipps

Wir sehen dies hier bei der Arbeit jetzt, mit Projektdateien, wo die Konfigurationen auf mehrere Volk Computer neu geordnet werden, und es ist sehr frustrierend ...

* Hinweis: Wir alle benutzen VS 2008 Pro, nicht Team

Zuerst sieht es aus wie sie zufällig neu geordnet werden, aber es ist in der Tat ein Muster , und es ist überhaupt nicht zufällig.

Für eine Gruppe der Konfigurationen von Platform bestellt werden, dann durch Config:

  • Debug | Win32
  • Debug | x 64
  • Release | Win32
  • Release | x 64
  • Debug DX11 | Win32
  • Debug DX11 | x64
  • Veröffentlichung DX11 | Win32
  • Freigabe DX11 | x64
  • ...

Für die andere Gruppe der Konfigurationen von Config bestellt werden, dann durch Plattform:

  • Debug | Win32
  • Release | Win32
  • Debug DX11 | Win32
  • Veröffentlichung DX11 | Win32
  • Debug | x 64
  • Release | x 64
  • Debug DX11 | x64
  • Freigabe DX11 | x64
  • ...

Beim Blick durch notgedrungen Geschichte, ist dies im Einklang mit mehreren Projekten durch die gleichen Gruppen von Menschen vorgelegt, und es gibt etwa 50/50 geteilt, so dass es nicht nur für eine Person geschieht.

Ist das die gleiche Frage, die Sie alle zu sehen sind? Wenn ja, ich hoffe, dieses Muster eine Lösung hilft finden, das keinen Makro / zusätzlichen diff Schritt beinhaltet nicht ...

Es hat eine Einstellung irgendwo sein, oder ein Nebeneffekt etwas zu klicken, da es zu 100% reproduzierbar pro jedem dieser Maschinen ist. Auch wenn es etwas albern wie, welche Option Sie für Ihre erste Umgebung Layout wählen (VC ++, VB, Allgemeine Entwicklung, ect ...)

Ich benutze WinMerge als mein Diff-Tool, und ich konnte die bewegte Blockerkennung. Es ist nicht ganz das Problem beheben, aber es macht die Unterschiede ein wenig erträglicher zu visualisieren.

Welche Version von Visual Studio sehen Sie dies in?

Ich habe eine Menge Arbeit mit VCPROJ Dateien (wir pflegen Versionen der Projektdateien für unsere Bibliotheken in mehreren Versionen von Visual Studio, und ich bin immer diffing und Zusammenführung der Dinge), aber ich habe noch nie dieses Verhalten gesehen.

Mein Team bei Adobe hat die gleiche Sache in VS2008 gesehen. Nur eine grundlegende Debug / Release, win32 / win64-Projekt gibt Ihnen 4 Konfigurationen und zufällige Schlurfen. Einige Leute haben, um herauszufinden versucht, wann und warum devstudio Nachbestellungen, aber die aktuellen Gedanke ist der Sortierschlüssel ein Schlüsselwort Hash ist - daher semistochastische. Wir haben aufgegeben und in Code-Reviews nur die „echten“ Änderungen zusammenfassen.

Ich glaube, ich habe den Grund für diese Shuffle gefunden. Zumindest in VS2008.

Wenn Sie die x64-Compiler installieren, werden VS bestellen Projekte wie:

Debug|Win32
Debug|x64
Release|Win32
Release|x64

Wenn Sie nicht es wird sich wie bestellen:

Debug|Win32
Release|Win32
Debug|x64
Release|x64

So stellen Sie sicher, dass alle Ihre Kollegen die gleichen Compiler Satz installiert haben, so dass es nicht mischen wird.

es getestet und dieses Verhalten scheint reproduzierbar zu sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top