Es gibt ein bekanntes Problem mit SVN-Repositorys und dem Windows-Indexdienst, bei dem es um SVN-Metadatendateien geht. Hier finden Sie weitere Details.
Wie können wir es einrichten, damit es automatisch keine Probleme gibt, wenn Subversion-Repositorys von Windows indiziert werden (Vista / Win7)? (Wir möchten nicht jedes Mal, wenn wir ein Repo-Verzeichnis hinzufügen, etwas manuell tun müssen.)
Eine Idee ist, Windows so einzurichten, dass Ordner mit dem Namen ".svn" nicht automatisch indiziert werden. Ich kann jedoch keine Möglichkeit finden, dies zu tun.
Ich weiß, dass Sie bestimmte Erweiterungen deaktivieren können, aber das scheint nicht zu funktionieren, da sich die SVN-Metadatendateien in einem Ordner befinden.
Beachten Sie das
windows-7
svn
windows-search
tortoise-svn
James Van Boxtel
quelle
quelle
Antworten:
Ich hatte das gleiche Problem und fand eine Lösung. Mein gesamter Code wird in einem einzigen Ordner gespeichert:
F: \ projects \
In diesem Ordner befinden sich Codebäume und zugehörige Projektdateien mit einer Gesamtgröße von über 2 GB. Ich muss ständig in diesem Baum suchen, und Windows-Indizierung war ein äußerst nützliches Tool für schnelle Suchvorgänge. Daher war das Deaktivieren nicht möglich. Ich möchte die SVN-Ordner ausschließen, weil sie meine Suchergebnisse überladen, (2) mein System unnötig in Mitleidenschaft ziehen, (3) SVN, Win7 und MS Security Essentials scheinen bei umfangreichen SVN-Vorgängen nicht ordnungsgemäß zu funktionieren.
Reproduzieren Sie das Problem, bevor Sie die Lösung versuchen:
Lösung:
csmcmd.exe /add_rule file:///F:\projects\*\.svn\* /USER /EXCLUDE
Das habe ich herausgefunden, indem ich zuerst den Befehl: ausgeführt habe
csmcmd.exe /enumerate_rules
, um alle vorhandenen aufzulisten. Es gab bereits einige Regeln für die Verwendung von Asterix (*) - Platzhaltern durch Windows, sodass bewiesen wurde, dass dies möglich war.Wiederholen Sie nun die Schritte, um das Problem zu reproduzieren. In den Suchergebnissen sollte kein SVN-Durcheinander mehr zu sehen sein. Warten Sie, bis der Computer die Indizes aktualisiert hat. Auf meinem System dauerte dies weniger als 5 Minuten. Manchmal kann es hilfreich sein, den Suchdienst neu zu starten, einen Neuaufbau / Neuindex zu starten oder einen Neustart durchzuführen.
Update : Einige meiner SVN-Projekte verwenden ".svn" und andere "_svn". Deshalb habe ich jedem Laufwerk die folgenden zwei Regeln hinzugefügt:
csmcmd.exe /add_rule file:///F:\*\.svn\* /DEFAULT /EXCLUDE
csmcmd.exe /add_rule file:///F:\*\_svn\* /DEFAULT /EXCLUDE
quelle
AFAIK, Windows-Indexdienst unter Windows 7 sieht standardmäßig nur im Ordner Benutzer aus (korrigieren Sie mich, wenn ich mich irre). Wenn Sie Ihre SVN-Repositorys in Ihrem persönlichen Ordner haben, können Sie:
a) Platzieren Sie Ihre SVN-Repositorys an einem anderen Ort
b) Indem Sie diese Ordner aus dem Index ausschließen. Hier erfahren Sie, wie Sie einen Ordner ausschließen.
quelle
Die offensichtliche Lösung wäre, Subversion so zu ändern, dass dieses Flag "Nicht indizieren" gesetzt wird, wenn ein .svn-Verzeichnis erstellt wird. Das Problem ist, dass diese Funktion bei der Einführung nicht mehr benötigt wird.
Das bekannte Problem wird höchstwahrscheinlich in den derzeit entwickelten Subversion-Versionen (Version 1.7) behoben. Es gibt weitaus weniger Dateivorgänge im .svn-Verzeichnis und nur 1 .svn-Verzeichnis pro Arbeitskopie.
Dies verringert die Wahrscheinlichkeit, dass das Problem auftritt, und erleichtert das Deaktivieren der Indizierung erheblich, da nur ein einziger .svn-Ordner vorhanden ist.
quelle
Brute-Force-Methode
Die WDS-Gruppenrichtlinie verfügt über eine Option für
Prevent Indexing Certain Paths
, ist jedoch für Windows Vista gemäß der Funktionsübersicht nicht verfügbar.quelle
Wenn die Antwort von Darren Halls der Ansatz "Brute Force" ist, muss meine Antwort der Ansatz "Brute Force and Ignorance" sein. :)
Das hat mich kürzlich geärgert, da wir SVN für das Dokumenten- und Projektmanagement verwenden. Dies kann bedeuten, dass der Windows-Indexer sehr nützlich ist, wenn es darum geht, nach undurchsichtigen Dokumenten zu suchen, aber das Abfangen aller SVN-Speicherdateien ist einfach nutzlos.
Dies ist meine (ziemlich hässliche) Lösung in einer Windows-Batchdatei:
Die erste und letzte Zeile gibt es, weil ATTRIB sich weigert, den + I-Schalter auf einen versteckten Ordner anzuwenden, zumindest für mich. Sie müssen dies in eine Datei wie "svnNoIndex.bat" kopieren und in Ihrem SVN-Checkout-Verzeichnis ausführen. Bei einem großen Repository kann es einige Zeit dauern ...
Ich teste dies derzeit unter Vista mit dem neuesten Service Pack. Ich erwarte, dass es unter Windows 7 funktioniert. Ich weiß nicht, ob der Index neu erstellt werden muss, um die Dateien zu berücksichtigen, die jetzt als nicht indiziert von markiert sind Das mache ich, aber ich muss meins trotzdem neu bauen, also mache ich das, weil es nur ein paar Tage sind, während der Index neu aufgebaut wird.
Um dies "automatisch" zu machen, können Sie die Batch-Datei als Post-Update-Hook hinzufügen, der nach einem Update ausgeführt wird ... vorausgesetzt, es ist chaotisch, aber es funktioniert möglicherweise.
quelle
Sie können Windows Search im Wesentlichen anweisen, SVN-Ordner zu ignorieren, indem Sie die Registrierung optimieren.
Die URL stimmt mit Ordnern mit dem Namen ".svn" überall in Ihrem Dateisystem überein. (Die Nummer nach den Standardregeln sollte eindeutig sein. Wenn Sie also bereits eine Standardregel 11 haben, wählen Sie eine andere Nummer.)
quelle