2009-08-05 4 views
1

Je travaille sur la construction d'un site web en utilisant Magento eCommerce. J'ai mis en place un repo de subversion sur le serveur pour le site Web, y compris tous les fichiers PHP Magento et j'en ai extrait une copie sur mon système local en utilisant svn/webdav. J'ai ajouté Magento au dépôt et commis. Maintenant, toute svn opearation, même un svn status ou svn commit, la construction de la liste des fichiers afin que je puisse entrer un message de validation, prend pour toujours. Je veux dire plus de 10 minutes, même si je n'ai changé qu'un seul fichier. Des idées sur ce qui pourrait être faux/comment dépanner/comment réparer/suggestions? Merci!svn repo pour Magento est très lent!

+1

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

+0

Merci Dan! J'ai cherché mais pour une raison quelconque je n'ai pas pu trouver ça. Explique parfaitement mon problème. – Josh

Répondre

6

J'ai travaillé avec Magento + SVN (pas WebDAV cependant) moi-même et je n'avais pas ce genre de problèmes jusqu'à maintenant. Il faut beaucoup de temps (comme en 2 minutes) pour valider les changements dans le dépôt, mais pas plus de 5 minutes. Je ne connais pas vraiment la cause de votre problème, je voulais juste dire que ce n'est généralement pas comme ça (ou que ça pourrait être la faute de WebDAV).

Solution 1:

En supposant que vous ne serez pas apporter des modifications au cœur de Magento, avez-vous pensé que versioning les parties de votre installation de Magento qui sera changé en vous? c'est-à-dire l'app/code/dossier local où résideront vos modules et peut-être votre dossier de modèle. Cela réduirait considérablement le nombre total de fichiers/dossiers versionnés et augmenterait ainsi considérablement la vitesse de synchonisation.

Solution 2:

commit toujours que le dossier qui contient toutes les basse possible les mises à jour.

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

Solution 3:

similaires au numéro 1: Essayez d'ajouter tout ce qui n'a pas besoin d'être stockés dans le dépôt de la liste des ignorés. Des choses comme le dossier var/ n'ont pas besoin d'être versionnées et contiennent beaucoup de fichiers, donc ce serait peut-être une bonne idée de ne pas les inclure dans votre dépôt.

Solution 4:

Utilisez git au lieu de SVN si c'est une option pour vous.

eZ Components avait les mêmes problèmes avec SVN + WebDAV et quelqu'un a comparé les temps d'extraction entre SVN + DAV avec git. Les résultats peuvent être vus here. Après avoir vu ces chiffres, je pense que la commutation est votre meilleure option disponible à long terme.

+0

@Andre, merci! C'est utile. Avez-vous toute l'installation de magento sous svn ou juste le dossier app/code/local? Je ne suis pas sûr quelles parties du noyau je vais encore changer ... – Josh

+0

J'ai tout versionné. Je recommande de ne rien changer dans le noyau car cela rend la mise à jour très difficile. Ensuite, vous arriverez parfois dans des situations où aucun événement Magento ne peut vous aider et vous devez introduire un nouvel événement dans le noyau de Magento et il n'y a pas d'autre moyen de le faire que de le faire manuellement. –

+0

J'ai essayé de ne pas modifier le noyau car je veux éviter de mettre à jour les maux de tête. Mais je l'ai versionné de sorte que si je modifie le noyau, svn m'aidera à fusionner mes changements dans la prochaine version. – Josh

1

Tout le travail de Magento peut être fait sans toucher à un seul fichier de base comme vous devriez le faire (sauf peut-être pour les fichiers de locale car ils sont faciles à fusionner).

J'ai écrit un script qui vous permet de disperser vos fichiers de projet partout sur la racine d'installation de Magento sans augmenter la difficulté de gérer votre code source (et sans vérifier dans un seul fichier de base Magento). Comment ça marche? Liens souples Vous pouvez réellement accomplir la même chose sans mon script en créant des liens souples à la main, mais cela le rend simplement plus facile (le déploiement/la mise à jour vers un serveur en direct est toujours une commande).

Je ne suis pas sûr de la prise en charge de Windows, cela pourrait fonctionner avec cygwin mais je n'ai pas testé. Je fais du développement sur Windows mais exécute une machine virale (VirtualBox) avec ma pile LAMP dessus partageant les fichiers avec Windows via Samba donc je lance le script via la ligne de commande sur l'invité Linux et édite mes fichiers avec Netbeans via le partage Samba (et je peux commettre des changements via le module subversion de Netbeans).

Voir mon blog pour plus d'infos: Module Manager
Aller directement à la source: Module Manager (via gist)

Questions connexes