IDE, SVN и подталкивание к сайтам!
Я подумываю об обновлении своей практики и ищу небольшую помощь и совет!
Я много работаю над сайтами, на которых работают joomla, oscommerce, drupal и т. Д., Поэтому я создал множество пользовательских компонентов / плагинов, хаков и т. Д. В настоящее время каждый сайт имеет свою собственную папку в моей настройке xampp. Что я хотел бы сделать, так это настроить по умолчанию (например) настройку Joomla, и когда я делаю изменения обновлений, я могу сделать что-то, что обновляет все остальные папки, содержащие joomla, почти как автоматическое обновление?
Я также с нетерпением жду возможности использовать Aptana IDE и сервис SVN, например, unuddle, чтобы поделиться своей работой с другими, но я раньше не использовал SVN и не уверен, возможно ли это сделать выше, используя SVN?
Было бы замечательно иметь возможность работать с основным / основным элементом и отправлять обновления как на локальные обновления, так и на реальные серверы без необходимости поддерживать множество различных отдельных сайтов.
Предложения?
4 ответа
Да, SVN был бы отличным инструментом для этой цели. Сохраните свой код (например, пользовательский компонент Joomla) в системе контроля версий. Везде, где вы хотите использовать этот компонент, просто сделайте checkout
или же export
этой конкретной папки на ваш живой сайт. Вот один способ, которым вы можете структурировать свой репозиторий:
unfuddle.com/myRepo/trunk/com_myComponent unfuddle.com/myRepo/trunk/com_anotherComponent
Войдите на ваш действующий сервер через SSH и выполните эту команду:
> CD путь / к / Joomla / компоненты > svn co http://unfuddle.com/myRepo/trunk/com_myComponent
Каждый раз, когда вы изменяете свой код, фиксируете изменения, а затем снова входите на сервер и запускаете:
> CD путь / к / Joomla / компоненты > svn up com_myComponent
Реальным преимуществом этого является то, что если вы делаете обновление и ломаете что-то, вы всегда можете откатить его до последней известной "хорошей" версии.
Что касается автоматизации этого процесса, вам может не повезти, если он находится на разных серверах. Для нескольких развертываний на одном сервере вы можете легко написать сценарий оболочки для запуска вышеуказанных команд для каждого сайта / компонента. Если вам нужно, чтобы это было полностью автоматизировано, вы могли бы даже создать задание cron для запуска этого скрипта каждый день в 2 часа ночи или около того - лично я бы придерживался ручного подхода, но это все же вариант.
Для локальной работы с вашими SVN-репозиториями я бы рекомендовал взглянуть на TortoiseSVN (если вы работаете в Windows): это самый простой и простой способ работы с SVN.
Для автоматизации вещей вы можете использовать для этого SVN-хуки. Существует ловушка пост-фиксации, поэтому каждый раз, когда вы делаете коммит, ваш скрипт-ловушка может сообщать другим машинам выполнить обновление SVN, чтобы получить последний код.
Для получения дополнительной информации см. Контроль версий с помощью Subversion - Реализация ловушек репозитория.
Посмотрите на Капистрано. Я использовал это пару раз, и как только вы это выясните, это довольно хорошо. Предназначен для rails, но должен работать для всего, где вам нужно получить код из репозитория и развернуть его на разных серверах.
У меня нет хорошего ответа для вашей ситуации, но я не думаю, что Subversion сам по себе является ответом.
В этом Вопросе рассматриваются некоторые проблемы, связанные с механизмами Subversion для обмена между "проектами".
Subversion, безусловно, может справиться с частью этой головоломки, связанной с управлением исходным кодом. Автоматическое распространение, ну, я бы использовал другой инструмент.