2010-08-01 5 views
3

У меня есть особая проблема с конфигурационными файлами и развертыванием. Когда я развертываю свой проект, он в конечном итоге переходит к двум различным разделам: постановка и производство (с использованием SVN здесь)файлы конфигурации в управлении версиями при развертывании

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

Имеет ли смысл удалять конфигурационные файлы из SVN полностью, так как он установлен в камне? Или есть ли другой способ сделать это?

ответ

2

Что я обычно делаю, это поддерживать несколько файлов конфигурации в репозитории, но не под фактическим именем (например, в выделенной папке, которая исключается из развертывания). Затем мои сценарии развертывания копируют соответствующий файл конфигурации в конечное местоположение. Поэтому моя процедура развертывания идет:

  • контроль
  • компилировать
  • запустить сценарий развертывания
+0

"сценарии развертывания, а затем скопируйте соответствующий файл конфигурации в конечное местоположение", можете ли вы подробно остановиться на этом? – tipu

+0

Я использую скрипты для копирования приложения из автономной папки в нужное место. Эти сценарии создают структуры папок и копируют файлы, но они также могут выполнять другие задачи. Для этой конкретной задачи я помещаю несколько различных файлов конфигурации в выделенную папку, а сценарий развертывания копирует соответствующий файл в живое место, где приложение ожидает файл конфигурации. – tdammers

1

Вы не хотите, чтобы удалить файлы из SVN - так, что заставит его удалить их из сервер при развертывании.

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

Существует два способа использования ignore из командной строки.

A: Отредактируйте свойства игнорирования для каталога.

  • Используйте cd trunk/blah, чтобы перейти в каталог, содержащий файлы, которые вы хотите игнорировать.
  • Используйте svn propedit svn:ignore . для редактирования свойств игнорирования для этого каталога. Это откроет текстовый редактор.
  • В открывшемся файле добавьте или измените строки, которые будут представлять файлы (ы), которые вы хотите игнорировать. Например, добавление строки из *.txt приведет к тому, что SVN будет игнорировать все файлы, заканчивающиеся на .txt. Добавление строки из config.php приведет к тому, что SVN проигнорирует файл config.php.
  • Сохраните и выйдите из файла.
  • Завершить смену недвижимости. svn commit -m "New Ignores"

B: Используйте одну команду для установки свойства игнорирования SVN в каталоге.

  • Используйте cd trunk/blah, чтобы перейти в каталог, содержащий файлы, которые вы хотите игнорировать.
  • Используйте svn propset svn:ignore config.php ., чтобы установить свойство игнорирования SVN, чтобы игнорировать файл config.php.
    • Завершить смену недвижимости.svn commit -m "New Ignores"

Good introductory article on svn:ignore. "Official SVN documentation."

Смежные вопросы