Frage

Wir haben eine ziemlich große SVN-Repository. Doing SVN-Updates dauert länger und länger, je mehr wir Code hinzufügen. Wir haben svn:externals auf Ordner, die in einigen Projekten wie der FCKeditors auf verschiedenen Websites. Dies trug dazu bei, aber nicht so viel.

Was ist der beste Weg, Aktualisierungszeit und steigern SVN Geschwindigkeit zu reduzieren?

War es hilfreich?

Lösung

Wenn es eine ältere SVN-Repository ist (oder sogar ganz neu, war aber nicht Setup optimal), es mit vielleicht dem älteren BDB Stil der Repository-Datenbank. http://svn.apache.org/repos/asf/subversion/trunk / note / fsfs Hinweise auf dem neuen hat. Um von einem zum anderen isn zu ändern; t zu hart - die gesamte Geschichte werfen, neu initialisieren es mit dem neuen SVN-Format des Dateisystems und Re-Import. Es kann auch zugleich nützlich sein, das Repo-Dump zu filtern gesamte checkins von nutzlosen Informationen zu entfernen (ich zum Beispiel hat 20MB + Tarball-Dateien entfernt, dass jemand eingecheckt hatte).

Was die allgemeine Geschwindigkeit geht - a. Qualität (schnelle) Festplatte und zusätzliche Speicher für OS-basierten Caching schwer in Bezug zu bemängeln wären, die Geschwindigkeit zu erhöhen, wie SVN funktioniert

Auf der Client-Seite, wenn Sie das Setup durch PuttyAgent für SSH-Zugriff auf eine externe Repository Maschine tortoisesvn haben, können Sie auch SSH-Komprimierung aktivieren, die auch helfen kann.

Edit: SVN v1.5 hat auch die

Andere Tipps

Deaktivieren Virenprüfung auf Ordner, die Kopie Code enthalten arbeiten. Dies führte meinen Updates doppelt so schnell werden.

Klingt wie Sie mehrere Projekte in einem Repository haben. Die Aufteilung sie gegebenenfalls gibt Ihnen einen großen Schub.

Angeblich soll Git ist viel schneller als Subversion aufgrund der Art und Weise speichert / verarbeitet Veränderungen, aber ich habe keine Erfahrungen aus erster Hand mit.

Stellen Sie sicher, dass die Verbindung zum Server ist ein schneller, wie sein kann (Gigabit-Ethernet). Stellen Sie sicher, dass der Server schnell Laufwerke in einem Array hat. Und natürlich, nur prüfen, was Sie brauchen.

Es gibt einige allgemeine Performance-Verbesserungen. SVN ist sehr I / O schwer, so dass schnellere Festplatten sind eine Option (auf beiden Seiten). Fügen Sie mehr Speicher auf dem Server. Stellen Sie sicher, dass Ihre Kunden haben eine defragmentiert Festplatte (für Windows).

Welche Zugriffsmethode Sie verwenden auch ankommt. Repositorys auf Remote-Dateisystemen gespeichert (mit file: /// Zugang) werden als entweder mit mod_svn svnserve oder Apache viel langsamer sein. Erwägen Sie die Verwendung eines dieser, wenn Sie das Repository auf einem einfachen Dateifreigabe haben.

TotoiseSVN standardmäßig betrachtet Dateiänderungen im Hintergrund und ich habe, dass meine Maschine verlangsamen gesehen. Ich habe die Config alles ausschließen und dann sind nur die Verzeichnisse, in denen ich den Kassen haben. Sie können auch die Hintergrundüberprüfungen deaktivieren. Beide Einstellungen sind in der Icon-Overlays Einstellungen Knoten.

Manchmal langsam svn Betrieb, vor allem mit vielen Äußerlichkeiten, ist DNS bezogen. Es sieht aus wie SVN-DNS-Lookup pro jedem svn führt: extern, auch für relative Werte. Hinzufügen von SVN-Server Host-Namen in / etc / hosts oder Befestigungs resolv.conf kann nützlich sein.

Ich habe in meiner eigenen Erfahrung gefunden (dh nicht durch irgendwelche sind Tests), dass, vor allem, wenn der SVN-Repo-Server entfernt ist, scheint Äußerlichkeiten mit Dingen zu verlangsamen. Wenn Sie duplizierten Code haben (wie Editor FCK) an mehreren Stellen, würde ich da halten diese Dateien synchronisiert mit Äußerlichkeiten bleiben neigen und überschaubar ist wichtiger als Update Geschwindigkeiten - obwohl, könnte man sich mit symbolischen Links aussehen zu bringen in duplizierten Code statt. (Wenn Sie Windows XP verwenden, können Sie Abzweigungen verwenden ).

Wir haben unsere Codebasis in mehr Geschwistern Module aufgeteilt und schrieben die Ant-Skripte, so dass ein Entwickler auf einem Modul zu einer Zeit, ohne sie zu viel über arbeiten kann, was in den anderen Modulen passiert.

  • ein Top-Level-Build-Skript löst alle Module Build-Skripte
  • externe Bibliotheken sind nicht in Subversion gespeichert, sondern zog sich von einem Netzlaufwerk mit Apache Ivy. (Denken Sie daran, wie ein hauseigenes Maven-Repository).
  • Abhängigkeiten zwischen den Modulen werden auch Ivy verwaltet werden.

Normalerweise Entwickler müssen ihre gesamten Baum ein paar Mal in der Woche aktualisieren, aber es kann leicht, bevor sie zum Mittagessen / Kaffeepause erfolgen.

Mit Lese-Zugriffsrechte (das heißt zu beschränken Lesezugriff auf bestimmte Personen / Gruppen) wird das Repository viel verlangsamen. Vor allem, wenn die Authentifizierung in besonderer Weise erfolgen, z.B. gegen eine Windows-Domäne. Das gleiche gilt für Schreibrechte wahr, natürlich, aber das Schreiben ist weniger häufig dann zu lesen. Und Schreibzugriff zu beschränken kann wichtiger sein als Lesezugriff zu beschränken

Wenn Sie das Repository viele Ordner im Stammverzeichnis des Repository und die lokale Kopie reflektiert haben, dann versuchen monolithische lokale Kopie in viele getrennt herunterladbare Ordner schlitzen und diese Ordner separat zu aktualisieren, wird es wirklich schneller sein als ein großer Ordner.

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