Ответ 1
В самом деле, если бы по умолчанию нельзя было использовать каталоги .svn
/.hg
, это не проблема. Как бы то ни было, кто-то (newbee/new develop/experience on at bad day) делает небольшое изменение, которое разрушает эти настройки, и поскольку "ничего не выходит из строя" не замечает, что защита ушла. Voilà, ваш исходный код открыт для всего мира, возможно, даже с сохраненными паролями и секретами. Это не то, что что-то пойдет не так с правильными настройками, это с незначительным, легко замаскированным над изменением, они могут пойти не так, так почему бы не безопасно играть?
В тесном контролируемом процессе освобождения я обнаруживаю, что export
определенные ветки/теги для определенных папок, а переход на новый ветвь branche/tag, который пережил тестирование, - это просто изменить корень документа от /path/project/release-123
до /path/project/release-124
(сделать так же легко, может быть, даже быстрее, чтобы вернуться к release-123
, возможно, там будет). Если у вас есть процесс выпуска с большим количеством небольших изменений и исправлений, работа с экспортом действительно может быть болью, но добавленная безопасность стоит того, на мой взгляд.
На серверах разработки все уже фильтруется (VPN-) IP-адресами или сертификатами, поэтому я использую проверку с "последней и самой лучшей" версией trunk с серверами управления версиями без каких-либо проблем.
изменить:
Как Mercurial, так и Subversion в настоящее время хранят данные в одном .hg/.svn каталоге на верхнем уровне. Как обычно, вы можете проверить, где большинство файлов находятся за пределами корня документа (а корневой каталог документа, скорее всего, подкаталог дальше), это нормально. Просто убедитесь, что ваши каталоги контроля версий не находятся в доступной папке для веб-сервера внутри корня документа, и вы можете хранить проверки, а не экспортировать там без особых проблем.