Wann immer jemand fragt, was mit Code zu tun ist, der nicht mehr benötigt wird, lautet die Antwort normalerweise " lösche es, stelle es aus der Quellcodeverwaltung wieder her, wenn du es brauchst ".
Wie finde ich nun den Quellcode im Repository? Beschränken wir den Anwendungsbereich zur Vereinfachung auf SVN - ich vermute, dass die Verwendung eines anderen Quellcodeverwaltungssystems in diesem Aspekt keinen großen Unterschied macht (korrigieren Sie mich, wenn ich falsch liege).
Wenn ich diesen Code lösche und die Änderungen festschreibe, wird er nicht mehr in der neuesten Version sein. Wie finde ich es, ohne jede Revision zu exportieren und gründlich zu suchen (was fast unmöglich ist)?
Die richtigste Antwort lautet: Sie können nicht. Es gibt Methoden, die Ihnen bei dieser Aufgabe helfen, aber es ist unmöglich, das automatisch zu tun, weil:
Ein Computer kann unsere Gedanken nicht lesen. Das heißt, es gibt natürlich andere Tools, die Ihnen helfen, wie die erwähnten, oder grafische Frontends wie trac (was ich mag) sehr zu diesem Zweck).
Sie müssen ein Differenz-Tool verwenden, die meisten Svn-Repositories haben sie. Klicken Sie mit der rechten Maustaste auf die Datei, die Sie zurücksetzen möchten, und wählen Sie "diff" oder "difference" oder ähnliches (Ausgaben für die Implementierung). Anschließend wird die aktuelle Version mit einer früheren Version verglichen - sofern Sie das ungefähre Datum der früheren Version kennen dann wählen Sie diese Version (die Datums- / Zeitstempel sind normalerweise offensichtlich) und Sie werden die zwei Versionen nebeneinander sehen. Sie können dann auswählen, welche Bits unterschiedlich sind (normalerweise rot gefärbt), mit der rechten Maustaste auf sie klicken und sie integrieren.
Das Client-Tool, das Sie für SVN verwenden, bestimmt die Details.
Eine andere Möglichkeit besteht darin, die Log-Nachrichten zu durchsuchen. Sie haben vermutlich einen Kommentar hinterlassen, der etwa folgendermaßen aussieht:
Entfernte XYZ-Funktionalität
wenn Sie die Änderung vorgenommen haben.
So wie ich es mache, denke ich an ein Datum, an dem ich wusste, dass der fehlende Code aktiv war, und hole den gesamten Quellbaum so, wie er an diesem Datum war. Wenn das Datum falsch ist, gehe ich x Tag / Wochen / Monate auf beiden Seiten, bis ich auf Null gehe.
%Vor%Vermutlich haben die Code-Kommentare oder Revisionskommentare Schlüsselwörter, die auf das gesuchte Code-Fragment abzielen:
SVN-Abfrage - Ссылка
"SvnQuery ist eine schnelle Volltext-Suchmaschine für Subversion-Repositories. Es wird jede Datei in jeder Revision durchsucht. Nicht nur der Inhalt einer Datei ist indiziert, sondern auch Die vollständigen Metadaten wie Pfad, Autor, Kommentare und Eigenschaften.Ein einfaches, Google-ähnliches Web-Frontend wird bereitgestellt, aber es wird erwartet, dass die Abfragebibliothek und der Indexierungsmechanismus sein können in anderen Frontends wiederverwendet werden, zB ein Web-Service oder ein Visual Studio Plug-In.
SvnQuery ist in C # 3.0 implementiert und ASP.NET wird für das Web-Frontend verwendet. Die Volltextsuche wird von Lucene.Net durchgeführt, die eine erstaunliche Leistung liefert. ... "
Die Abfragesprache wird hier beschrieben:
Ссылка
Ich vermute, dass die Verwendung eines anderen Quellcodeverwaltungssystems in diesem Aspekt keinen großen Unterschied macht (korrigiere mich, wenn ich falsch liege).
Das ist falsch. Verteilte Versionskontrolle (z. B. Git oder Hg) kann dies relativ effizient tun.
Um zum Beispiel eine gelöschte Funktion namens foo zu finden, könnten Sie git log -S foo
verwenden, was alle Commits anzeigt, die Zeilen hinzufügen oder entfernen, die "foo" enthalten.
Wenn Sie aus irgendeinem Grund an der willkürlichen SVN-Beschränkung festhalten möchten, klonen Sie das SVN-Repository zuerst mit git-svn.
Tags und Links svn version-control