2008-09-11 7 views
8

ReSharper Code Cleanup-Funktion (mit "reorder members" und "reformat code" aktiviert) ist wirklich toll. Sie definieren eine Layoutvorlage mithilfe von XML. Anschließend organisiert eine einfache Tastenkombination die gesamte Quelldatei (oder Ordner/Projekt/Lösung) gemäß den Regeln, die Sie in der Vorlage festgelegt haben.ReSharper Code Cleanup/Neuformatierung Code-Funktion vs Versionsverwaltung

Wie auch immer, denken Sie, dass das ein Problem in Bezug auf VCS wie Subversion, CVS, Git usw. sein könnte? Gibt es eine Chance, dass es viele unerwünschte Konflikte verursacht?

Vielen Dank.

Antwort

16

Ja, es wird definitiv Probleme verursachen. Zusätzlich zum Erstellen von Konflikten, die manuell gelöst werden müssen, wird beim VCS beim Einchecken einer Datei, die neu formatiert wurde, fast jede Zeile als geändert betrachtet. Dies wird es Ihnen oder Ihrem Teamkollegen erschweren, auf die Geschichte zurückzuschauen und zu sehen, was sich wann geändert hat.

Das heißt, wenn alle ihren Code auf die gleiche Weise automatisch formatiert (dh Sie diese XML-Vorlage an das Team verteilen), dann könnte es gut funktionieren. Die Probleme kommen nur dann wirklich, wenn nicht alle dasselbe tun.

+10

Ich empfehle in diesen Situationen, Dinge in zwei Teilen zu tun. In einem Durchlauf bereinigen Sie den Code und in der zweiten nehmen Sie Ihre Änderungen vor. Zwei verschiedene Commit-Nachrichten. Auf diese Weise können Sie leicht rückgängig machen, was Sie getan haben * und * wissen, was Sie mit Ihren Korrekturen ändern müssen. Sich zu viel zu engagieren, ist meiner Meinung nach eine gute Praxis. Lässt andere wissen, was und warum * viel * einfacher ist. –

2

Es kann definitiv Konflikte verursachen, also würde ich sicherstellen, dass Sie nicht ganze Dateien neu formatieren, wenn es Leute gibt, die parallel daran arbeiten.

0

Es könnte definitiv zu Konflikten führen. Wenn Sie dies in einer Mehrbenutzerumgebung verwenden möchten, muss die Konfiguration von Resharper Ihren Code nach einer Reihe von Standards formatieren, die in Ihrer Organisation erzwungen werden, unabhängig davon, ob Benutzer Resharper verwenden oder nicht.

Auf diese Weise verwenden Sie das Tool, um sicherzustellen, dass Ihr eigener Code den Standards entspricht und nicht Ihre Anforderungen an die gesamte Codebasis anwendet.

0

Ich stimme den vorherigen Antworten zu, dass Konflikte möglich und sogar wahrscheinlich sind.

Wenn Sie Code neu formatieren möchten, dann stellen Sie zumindest sicher, dass Sie keine Reformat-Checkins mit denen mischen, die die Funktion des tatsächlichen Codes ändern. Auf diese Weise können die Benutzer frühere Check-ins überspringen, bei denen es sich um einfache Neuformatierungen handelt. Es ist auch eine gute Idee, sicherzustellen, dass jeder weiß, dass eine Neuformatierung bevorsteht, so dass sie etwas dagegen haben können, wenn sie in diesem Bereich fortlaufend arbeiten.

7

Ich warte auf eine IDE oder einen Editor, der immer Quellcode mit einigen grundlegenden Formatierungsregeln speichert, aber jedem einzelnen Entwickler ermöglicht, den Code in ihrem eigenen bevorzugten Format anzuzeigen und zu bearbeiten. Auf diese Weise kann ich meine offene geschweifte Klammer am Anfang der nächsten Zeile und nicht am Ende der aktuellen Zeile platzieren, wo alle Heiden glauben, dass es geht.

Ich schätze, ich werde lange warten.

2

Sie können StyleCop verwenden, um eine umfassende Reihe von Standards zu erzwingen, die ziemlich viele zwingt, die gleichen Layoutstile zu verwenden. Dann müssen Sie lediglich eine entsprechende ReSharper-Codestilspezifikation entwickeln und sie an das Team verteilen.

Ich warte immer noch auf someone else to do this, und für JetBrains, um alle Niggling-Details zu bereinigen, die nicht vollständig unterstützt werden, damit ReSharper grundsätzlich volle StyleCop-Compliance garantieren kann.

7
  • umformatieren einfach die gesamte Lösung einmal
  • und stellen Sie sicher, dass jeder Entwickler verwendet ReSharper
  • und stellen Sie sicher, dass die Formatierung Optionen gemeinsam genutzt werden und versioniert (Code-Stil-Sharing-Optionen)
0

Wir arbeiten an etwas, um mit Refactors auf Quellcodeebene zu arbeiten. Wir nennen es Xmerge und es ist jetzt Teil von Plastic. Es ist nur ein erster Ansatz, da wir an fortgeschritteneren Lösungen arbeiten. Überprüfen Sie es here.

0

Es könnte eine gute Idee sein, ein Skript zu schreiben, um jede Version in Ihrer Quellcodeverwaltung auszuchecken, die Codebereinigung anzuwenden und dann in ein neues Repository zu checken. Dann nutze dieses Repository für all deine zukünftigen Arbeiten.

Verwandte Themen