Вопрос

Я подумываю обновить свои практики и ищу небольшую помощь и совет!

Я много работаю над сайтами, которые запускают joomla, oscommerce, drupal и т.д., И поэтому я создал множество пользовательских компонентов / плагинов, взломов и т.д.В настоящее время каждый сайт имеет свою собственную папку в моей настройке xampp.Что я хотел бы сделать, так это установить по умолчанию (например) настройку Joomla, и когда я вношу изменения, я могу сделать что-то, что обновляет все остальные папки, содержащие joomla, почти как автоматическое обновление?

Я также рассматриваю возможность большего использования Aptana IDE и SVN-сервиса, такого как размешать поделиться своей работой с другими, но я раньше не использовал SVN и не уверен, возможно ли сделать вышеописанное с помощью SVN?

Было бы здорово иметь возможность работать с основным элементом и отправлять обновления как в локальные обновления, так и на реальные серверы, без необходимости поддерживать множество разных отдельных сайтов.

Предложения?

Это было полезно?

Решение

Да, SVN был бы отличным инструментом для этой цели.Храните свой код (например:пользовательский компонент Joomla) в системе управления версиями.Где бы вы ни хотели использовать этот компонент, просто выполните checkout или export из этой конкретной папки на ваш живой сайт.Вот один из способов, которым вы могли бы структурировать свой репозиторий:

unfuddle.com/myRepo/trunk/com_myComponent
unfuddle.com/myRepo/trunk/com_anotherComponent

Войдите на свой живой сервер через SSH и выполните эту команду:

> cd path/to/joomla/components
> svn co http://unfuddle.com/myRepo/trunk/com_myComponent

Каждый раз, когда вы меняете свой код, фиксируйте изменения, а затем снова войдите на сервер и запустите:

> cd path/to/joomla/components
> svn up com_myComponent

Реальное преимущество этого заключается в том, что если вы сделаете обновление и что-то сломаете, вы всегда можете откатить его до последней известной "хорошей" версии.

Что касается автоматизации этого процесса, вам может не повезти, если он находится на разных серверах.Для нескольких развертываний на одном сервере вы могли бы довольно легко написать сценарий командной оболочки для выполнения вышеуказанных команд для каждого сайта / компонента.Если вам нужно, чтобы это было полностью автоматизировано, вы могли бы даже настроить задание cron для запуска этого скрипта каждый день в 2 часа ночи или что-то в этом роде - лично я бы придерживался ручного подхода, но это все еще вариант.

Для локальной работы с вашими репозиториями SVN я бы рекомендовал посмотреть на TortoiseSVN Черепаха (если вы используете Windows):это самый простой способ работы с SVN.

Другие советы

Для автоматизации вы могли бы использовать для этого SVN-хуки.Существует перехват после фиксации, поэтому каждый раз, когда вы выполняете фиксацию, ваш скрипт перехвата может указывать другим машинам выполнить обновление SVN, чтобы получить последний код.

Для получения дополнительной информации смотрите Управление версиями с помощью Subversion - Реализация перехватов репозитория.

У меня нет хорошего ответа для вашей ситуации, но я не думаю, что Subversion сама по себе является ответом.

Этот Вопрос устраняет некоторые опасения по поводу механизмов Subversion для совместного использования между "проектами".

Subversion, безусловно, может справиться с частью этой головоломки, связанной с управлением исходным кодом.Автоматическое распространение, ну, я бы использовал другой инструмент.

Загляни в Капистрано.Я использовал его пару раз, и как только вы в нем разберетесь, он станет довольно хорошим.Нацелен на rails, но должен работать для всего, где вам нужно получить код из репозитория и развернуть его на разных серверах.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top