Существует несколько проблем веб-разработки, для которых svn является хорошим универсальным решением:
1: управление версиями: svn поддерживает прошлые версии в качестве наборов сохранения, то есть каждый коммит получает свой собственный ссылочный идентификатор, который охватывает все файлы, обновленные в этом коммите. При тщательном использовании это позволяет вам отслеживать все файлы, которые были затронуты исправлением ошибки, например, что-то, что потерял cvs.
2: простое ветвление: это позволяет вам работать над новой функцией наряду с текущей работой по сопровождению, не нарушая систему доставки, а затем объединить новый материал обратно в основной ствол после полной проверки. Даже для магазина с одним программистом это стоит вложений в настройку SVN. Во-первых, вы не теряете ранее работающую систему, во-вторых, переходить от нее к новой разработке почти тривиально легко по сравнению с архивированием полных деревьев продуктов, в-третьих, ваш опыт работы с клиентами не нарушается итерациями разработки, и в-четвертых, это можно использовать для одновременной работы с песочницей. работа нескольких программистов.
3: не путайте управление версиями в svn с архивированием. Это очень разные вещи. Включите ваш svn-репозиторий в стандартную схему архивирования / резервного копирования.
4: svn знает, как хранить дельты для бинарных файлов, в отличие от более старых систем, таких как cvs, поэтому стоит сохранить все в вашем проекте под svn. Оставьте дерево svn таким же, как у вашего продукта, тогда развертывание - это просто вопрос ssh на сервере сайта и запуск обновления svn в папках html и cgi-bin (убедитесь, что Apache настроен так, чтобы запретить все для папок управления .svn ).
5: базы данных немного менее интегрированы, но сохраняют часть вашего дерева для экспортных архивов БД.
6: теперь, когда по какой-либо причине вам необходимо воссоздать прошлое состояние, все необходимые инструменты и другие файлы должны помочь в этом. Обратите внимание, что svn по сути не решает проблему фрагментированного хранилища полностью: состояния html /, cgi-bin- / и db не пересекаются и нуждаются в ручной корреляции, если вы не храните их вместе в папке зонтика.
7: вам понадобятся apache2 и openSSL и действительный сертификат для использования svn на вашем сервере svn. Вероятно, у вас уже есть та версия, которую вы уже установили.
Если бы у вас был хотя бы один плохой опыт клиента, когда файлы в процессе работы выходили на работающий сайт, то хороший режим SVN заплатил бы за себя, предотвратив именно это. Большинство IDE и редакторов также включают инструменты управления SVN, поэтому вам не обязательно выходить в командную строку. Существуют также плагины для OS X Finder и Windows Explorer из http://www.tigris.org/ (среди многих других замечательных инструментов).