У меня довольно сложная установка WordPress + bbPress, и я хотел бы обработать контроль версий для всего пользовательского кода в Subversion.Далее следует подход, на котором я остановился, и я был бы признателен за вклад / критику.Есть ли лучший способ сделать это?
Несмотря на то, что моя ситуация связана с WordPress, я описываю вещи в общих чертах, и проблема относится к любому числу других фреймворков, в которых вы получаете большое количество пользовательского кода, разбросанного вокругболее крупная система.
Иерархия развернутого сайта (ниже html-корня) выглядит следующим образом (несколько упрощенно для иллюстрации):
CUSTOM-directory
wp-admin
wp-content
- <other directories>
- themes
- <CUSTOM theme directories>
- <other theme directories>
- plugins
- <CUSTOM plugin files & directories>
- <other plugin files & directories>
wp-includes
<other files>
Я хочу разместить все каталоги, содержащие "CUSTOM""под контролем версий.Поэтому я настроил иерархию следующим образом и импортировал ее в новый репозиторий.
website
- trunk
- CUSTOM-directory
- themes
- plugins
- branches
- tags
Поскольку «темы» и «плагины» в развернутой иерархии содержат файлы и папки в дополнение к моему пользовательскому коду, я добавилэтот другой материал, относящийся к свойству ignore этих двух каталогов.
Я делаю изменения в трех местах: на компьютере разработчика (где происходит большая часть действия), на сервере промежуточного хранения / тестирования, который почти идентичен моемупроизводственная среда и производственный сервер (только незначительные изменения).Первоначальная настройка в этих трех местах занимает немного времени, потому что я должен проверить каждый каталог под транком в правильном месте в иерархии.Но это единовременная проблема.
Я написал несколько простых сценариев оболочки для автоматизации задач SVN после того, как все это настроено.Например: svn-commit.sh
(который запускается из корня установки Wordpress)
#!/bin/sh
svn commit CUSTOM-directory "$@"
svn commit wp-content/plugins "$@"
svn commit wp-content/themes "$@"
Я также извлек отдельную рабочую копию на моем компьютере разработчика, которая является исключительно моим пользовательским кодом, чтобы я могПеретаскивайте репо с помощью Версии.
Итак, что вы думаете?Есть ли более простой способ?Я также подумал:
Поставить весь беспорядок под контроль версий.Я думал, что это создаст слишком много накладных расходов администратора репо, поскольку я имел дело с другими людьми, которые занимаются рефакторингом их кода.
Передача всей иерархии под контроль версий и установка игнорирования для всего, кроме моего кода.Опять же, это может потребовать слишком больших затрат времени администратора на поддержание свойств игнорирования.
Наконец, есть ли проблемы с безопасностью, связанные с наличием папок .svn на моем рабочем сайте?