Действительно, если бы можно было полагаться на то, что по умолчанию каталоги .svn
/ .hg
не обслуживаются, это не будет проблемой.На самом деле, кто-то (новичок / новичок / опытный в плохой день) вносит небольшое изменение, которое разрушает эти настройки, и, поскольку «все идет не так, как надо», не замечает, что защита исчезла.Вуаля, ваш исходный код открыт для всего мира, возможно, даже с сохраненными паролями и секретами.Дело не в том, что что-то пойдет не так с правильными настройками, а в том, что с незначительными, легко приукрашенными изменениями они могут пойти не так, так почему бы не проигнорировать это?проще export
определенных веток / тегов в определенных папках, и переключение на более новую ветку / тег, который пережил тестирование, просто меняет корень документа с /path/project/release-123
на /path/project/release-124
(что делает его таким же простым, может дажебыстрее, чтобы переключиться обратно на release-123
, может быть необходимость там).Если у вас есть процесс выпуска с большим количеством мелких изменений и исправлений, работа с экспортом действительно может быть трудной, но, на мой взгляд, дополнительная безопасность того стоит.
На серверах разработки все уже отфильтрованона (VPN-) IP-адресах или сертификатах, поэтому там я использую извлечение «последней и самой лучшей» версии соединительных линий с каталогами управления версиями без проблем.
edit:
И В настоящее время Mercurial и Subversion хранят там данные в одной директории .hg / .svn на верхнем уровне.Как обычно делается проверка, когда большинство файлов находятся за пределами корня документа (а корень документа, вероятно, находится в подкаталоге ниже), это отлично .Просто убедитесь, что ваши каталоги контроля версий , а не в доступной папке для веб-сервера внутри корня документа, и вы можете хранить извлечения, а не экспортировать туда без особых проблем.