Manchmal wäre es schön, etwas sagen zu können wie:
(git|svn|hg|etc) diff Foo.c:main
(git|svn|hg|etc) log log Foo.c:main
um die Änderungen anzuzeigen, die an einer bestimmten Funktion in einer Quelldatei seit dem letzten Festschreiben vorgenommen wurden, oder den vollständigen Änderungsverlauf. Meine Frage ist zweifach:
- Gibt es etwas, das dies tut?
- Wäre ein solches Werkzeug praktisch? Es müsste bei jeder Revision ein einfaches Parsen des Codes durchgeführt werden, um verschiedene Versionen der Funktion zu vergleichen. Wäre der Overhead zu hoch, um effizient zu sein?
version-control
tools
jches
quelle
quelle
Antworten:
Noch wichtiger ist jedoch, dass Sie für jede Sprache, die Sie unterstützen möchten, dasselbe tun müssen. Ein VCS, dessen Verkaufsargument nur mit C-Code funktioniert, wird nicht viel Traktion bekommen. Selbst wenn Sie alle obskuren Sprachen ignorieren, wäre es ein gewaltiges Unterfangen, selbst die Top-10-Sprachen zu unterstützen.
Und wie Robert betonte, ist es kein großer Vorteil, sofort zu einer Methode springen zu können, wenn man manuell mit dem Diff-Tool zur Methode springen muss.
quelle
svn macht tatsächlich etwas in der Nähe von dem, was Sie wollen.
Sie können den folgenden Befehl verwenden:
Der
-x -p
Name der Funktion 'C' wird über dem Änderungssatz angezeigt. das sieht so aus.Es wird nicht gefiltert, aber Sie können grep / search, um Ihren Zweck genau zu erfüllen.
Ich denke, das ist nur für 'C' (oder C / C ++). Ich denke jedoch, wenn es eine Nachfrage gibt, würde svn es auch für andere Sprachen verfügbar machen.
Ich stimme dem Argument nicht zu, dass VCS das NICHT tun sollte. Schließlich möchten wir, dass alle IDEs oder Editoren (wie VIM, EMACS) Syntaxhervorhebungen durchführen, die für jede Sprache spezifisch sind und viele gleichzeitig unterstützen. Daher sollte VCS als Entwicklertool auch solche Funktionen unterstützen.
Natürlich dank deiner Frage, dass ich es entdeckt habe. Ich hatte es noch nie benutzt.
quelle
Ohne auf Einzelheiten einzugehen, ... können Sie sich jedoch die Website von Semantic Designs und deren Produktpalette ansehen. Sie bieten einige Werkzeuge , die sind empfindlich Sprache , so zu sagen, in Ermangelung eines besseren Wortes.
quelle
Monticello kann dies tun (z. B. http://wiresong.ca/monticello/v2/docs/changes-browser.html ), aber dies ist natürlich ein Betrug, da es nur für Smalltalk funktioniert.
quelle
So zeigen Sie an, welche Revision und welcher Autor die einzelnen Zeilen einer Datei zuletzt geändert haben:
quelle
ENVY und StORE machen das beide. Es ist interessant, dass, wie bei Monicello, das Logan Capaldo oben erwähnt hat, auch diese für Smalltalk sind.
quelle