Репозиторий svn для Magento очень медленный!

Я работаю над созданием веб-сайта с использованием Magento eCommerce. Я установил репозиторий Subversion на сервере для веб-сайта, включая все PHP-файлы Magento, и проверил копию в своей локальной системе с помощью svn / webdav. Я добавил magento в репо и совершил транзакцию. Теперь любая операция svn, даже svn status или svn commit, создание списка файлов, чтобы я мог ввести сообщение фиксации, занимает вечность. Я имею в виду более 10 минут, даже если я изменил только один файл. Любые идеи о том, что может быть не так / как устранить неполадки / как исправить / предложения? Спасибо!


person Josh    schedule 05.08.2009    source источник
comment
Повторяющийся stackoverflow.com/questions/949492/svn-tortoise-painfully-slow   -  person Dan    schedule 10.08.2009
comment
Спасибо, Дэн! Я искал, но по какой-то причине не нашел. Прекрасно объясняет мою проблему.   -  person Josh    schedule 10.08.2009


Ответы (2)


Я сам работал с Magento + SVN (но не с WebDAV), и пока у меня не было таких проблем. На фиксацию изменений в репозитории уходит много времени (примерно 2 минуты), но не более 5 минут.

Я действительно не знаю причину вашей проблемы, я просто более или менее хотел сказать, что обычно это не так (или что это может быть ошибка WebDAV).

Временное решение 1:

Предполагая, что вы не будете вносить изменения в ядро ​​Magento, рассматривали ли вы возможность создания версий только тех частей вашей установки Magento, которые будут изменены вами? то есть папка app / code / local, в которой будут находиться ваши модули, и, возможно, папка с шаблоном. Это резко уменьшит общее количество файлов / папок с версией и, таким образом, значительно увеличит скорость синхронизации.

Временное решение 2:

Всегда фиксируйте только самую нижнюю папку, содержащую все обновления.

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

Временное решение 3:

Аналогично пункту 1: попробуйте добавить все, что не нужно хранить в репо, в список игнорирования. Такие вещи, как папка var /, не нуждаются в управлении версиями и содержат много файлов, поэтому было бы неплохо не включать их в свой репозиторий.

Временное решение 4:

Используйте git вместо SVN, если вам это подходит.

У компонентов eZ были те же проблемы с SVN + WebDAV, и кто-то сравнил время проверки между SVN + DAV с git. Результаты можно увидеть здесь.

Увидев эти цифры, я думаю, что переключение - ваш лучший доступный вариант в долгосрочной перспективе.

person André Hoffmann    schedule 05.08.2009
comment
@ Андрей, спасибо! Это полезно. У вас установлен весь Magento под svn или только из папки app / code / local? Я еще не уверен, какие части ядра я буду менять ... - person Josh; 06.08.2009
comment
У меня все версионировано. Я бы рекомендовал ничего не менять в ядре, так как это очень затрудняет обновление. С другой стороны, вы иногда будете попадать в ситуации, когда никакое событие Magento не может вам помочь, и вам нужно ввести новое событие в ядро ​​Magento, и нет другого способа сделать это, кроме как сделать это вручную. - person André Hoffmann; 06.08.2009
comment
Я старался не модифицировать ядро, так как хочу избежать головной боли с обновлением. Но у меня есть версия, поэтому, если я изменю ядро, svn поможет мне объединить мои изменения в следующую версию. - person Josh; 06.08.2009
comment
Я никогда не пробовал, но нельзя ли также выполнить команду svn commit в подпапке, чтобы она проходила не через все репо, а только через подпапки, в которых вы сейчас находитесь? Примерно так: cd app / code && svn commit -m ... local Таким образом, вы все еще можете вносить изменения в ядро. - person André Hoffmann; 06.08.2009
comment
+1, вы правы, и это действительно помогает, когда я могу это сделать. К сожалению, у меня есть около 5 каталогов на корневом уровне, и часто мне нужно коммитить все сразу. (Или не нужно, но хочется :-) - person Josh; 06.08.2009
comment
Не могли бы вы подробнее рассказать, что это за каталоги? Потому что лично я вношу изменения только в папку приложения. А также: Вы пробовали без WebDAV? Вам нужен WebDAV? - person André Hoffmann; 06.08.2009
comment
Каталоги предназначены для пользовательских частей разрабатываемого мной приложения. каталог ajax /, каталог inc /, каталог tools / и каталог data /. Я также добавил пользовательские файлы JS и CSS в app /. Я не пробовал без webdav, но считаю, что мне нужен webdav - репо размещается удаленно, и мы с моей командой сотрудничаем. (Моя команда удалена) - person Josh; 06.08.2009
comment
Как насчет использования git? Его также можно использовать с WebDAV: kaeso.wordpress.com/2008/02/02/ - person André Hoffmann; 06.08.2009
comment
Я только что пробовал использовать для этого git, и он по существу удваивает размер установочной папки. Хотя из-за большого размера файла он работает медленнее, чем другие проекты, начальные фиксации заняли около 30 секунд, а начальное нажатие - около минуты. - person jimiyash; 10.08.2009

Вся работа с Magento может быть выполнена, не касаясь одного файла ядра, как вы и должны это делать (за исключением, возможно, файлов локали, поскольку их легко объединить).

Я написал сценарий, который позволяет вам разбросать файлы вашего проекта по всему корню установки Magento, не увеличивая сложность управления исходным кодом (и без проверки единого файла ядра Magento). Как это работает? Мягкие ссылки. Фактически вы могли бы сделать то же самое без моего скрипта, создав программные ссылки вручную, но это просто упрощает задачу (развертывание / обновление на активном сервере всегда выполняется одной командой).

Я не уверен в поддержке Windows, он может работать в cygwin, но я не тестировал. Я занимаюсь разработкой в ​​Windows, но запускаю виртуальную машину (VirtualBox) со своим стеком LAMP на ней, разделяя файлы с Windows через Samba, поэтому я запускаю сценарий через командную строку в гостевой системе Linux и редактирую свои файлы с помощью Netbeans через общий ресурс Samba ( и я могу зафиксировать изменения через модуль подрывной деятельности Netbeans).

Дополнительную информацию см. В моем сообщении в блоге: Диспетчер модулей
Перейдите прямо к источнику: Диспетчер модулей (через gist)

person ColinM    schedule 17.10.2009