2009-08-05 18 views
1

Ich arbeite am Aufbau einer Website mit Magento eCommerce. Ich habe ein Subversion-Repo auf dem Server für die Website eingerichtet, einschließlich aller Magento PHP-Dateien, und eine Kopie mit svn/webdav auf mein lokales System ausgecheckt. Ich habe Magento dem Repo hinzugefügt und zugesagt. Nun, jede Svn-Operation, auch eine svn status oder svn commit, Erstellen der Liste der Dateien, so dass ich eine Commit-Nachricht eingeben kann, dauert für immer. Ich meine über 10 Minuten, auch wenn ich nur eine Datei geändert habe. Irgendwelche Ideen, was könnte falsch sein/wie zu beheben/wie zu beheben/Vorschläge? Vielen Dank!svn Repo für Magento ist sehr langsam!

+1

Doppelte http://stackoverflow.com/questions/949492/svn-tortoise-painfully-slow – Dan

+0

Dank Dan! Ich habe gesucht, aber aus irgendeinem Grund konnte ich das nicht finden. Erklärt mein Problem perfekt. – Josh

Antwort

6

Ich habe selbst mit Magento + SVN (nicht WebDAV) gearbeitet und hatte diese Art von Problemen bisher nicht. Es dauert lange (wie in 2 min), Änderungen am Repository vorzunehmen, aber keinesfalls mehr als 5 min.

Ich kenne nicht wirklich die Ursache Ihres Problems, ich wollte mehr oder weniger sagen, dass es normalerweise nicht so ist (oder dass es WebDAVs Schuld ist).

Problemumgehung 1:

Unter der Annahme, dass Sie keine Änderungen an den Kern von Magento werden machen, haben Sie nur die Teile Ihrer Magento Installation Versionierung berücksichtigt, die von Ihnen geändert werden? d. h. der App/Code/lokale Ordner, in dem sich Ihre Module befinden, und möglicherweise Ihr Vorlagenordner. Dies würde die Gesamtzahl der versionierten Dateien/Ordner drastisch reduzieren und dadurch die Synchronisierungsgeschwindigkeit erheblich erhöhen.

Abhilfemaßnahme 2:

begehen immer nur die unterste Ordner, der die Updates alle enthält.

cd app/code 
svn commit -m ".." local 

Abhilfe 3:

ähnlich Nummer 1: Versuchen Sie, alles hinzuzufügen, die nicht in dem Repo auf die Ignore-Liste gespeichert werden muss. Dinge wie der Ordner var/ müssen nicht versioniert werden und enthalten viele Dateien, so dass es eine gute Idee wäre, sie nicht in Ihr Repository aufzunehmen.

Abhilfe 4:

Verwenden git statt SVN wenn das eine Option für Sie.

eZ-Komponenten hatten die gleichen Probleme mit SVN + WebDAV und jemand verglichen die Checkout-Zeiten zwischen SVN + DAV mit Git. Die Ergebnisse sind zu sehen here.

Nachdem ich diese Zahlen gesehen habe, denke ich, dass Switching auf lange Sicht die beste verfügbare Option ist.

+0

@Andre, danke! Das ist hilfreich. Hast du die ganze Magento-Installation unter svn oder nur dem app/code/local folder? Ich bin nicht sicher, welche Teile des Kerns ich noch ändern werde ... – Josh

+0

Ich habe alles versioniert. Ich würde empfehlen, nichts im Kern zu ändern, da es das Aktualisieren sehr schwierig macht. Dann kommen Sie wieder in Situationen, in denen kein Magento-Event Ihnen helfen kann und Sie müssen einen neuen Event in den Magento-Core einführen und es gibt keinen anderen Weg, dies zu tun, als es manuell zu tun. –

+0

Ich habe versucht, den Kern nicht zu ändern, da ich Kopfschmerzen vermeiden möchte. Aber ich habe es versioniert, damit svn, wenn ich den Kern verändere, mir helfen werde, meine Änderungen in die nächste Version zusammenzuführen. – Josh

1

Alle Magento-Arbeit kann getan werden, ohne eine einzelne Kerndatei zu berühren, wie Sie es tun sollten (außer vielleicht für die Gebietsschema-Dateien, da diese einfach zu verschmelzen sind).

Ich habe ein Skript geschrieben, mit dem Sie Ihre Projektdateien über den gesamten Installationsstamm von Magento streuen können, ohne die Verwaltung Ihres Quellcodes zu erschweren (und ohne eine einzige Magento-Kerndatei einchecken zu müssen). Wie funktioniert es? Weiche Links. Sie könnten das gleiche auch ohne mein Skript erreichen, indem Sie Soft-Links von Hand erstellen, aber das macht es einfach einfacher (die Bereitstellung/Aktualisierung auf einen Live-Server ist immer ein Befehl).

Ich bin mir nicht sicher über Windows-Unterstützung, es könnte innerhalb von Cygwin arbeiten, aber ich habe nicht getestet. Ich entwickle unter Windows eine virtuelle Maschine (VirtualBox) mit meinem LAMP-Stack und teile die Dateien über Samba mit dem Windows, damit ich das Skript über die Befehlszeile auf dem Linux-Gast ausführen und meine Dateien mit Netbeans über die Samba-Freigabe bearbeiten kann (und ich kann Änderungen über das Subversion-Modul von Netbeans vornehmen.

meine Blog-Post für weitere Informationen siehe: Module Manager
an die Quelle Geradeaus: Module Manager (via gist)