Игнорировние файлов, уже находящихся под версионным контролем?

Допустим, у нас есть database_config.php со всеми комментариями и описанием всех строчек, уже находящийся под версионным контролем. (Например, мы только что импортировали пустой, не настроенный фреймворк в репозиторий и содержащий «сырой» database_config.php)


Каким образом сделать так, чтобы этот файл единожды зачекаутился к разработчику, но потом уже не обновлялся (игнорировался) при получении свежих данных из репозитория?


svn:ignore ведь работает только для файлов, которые ещё не добавлены в репозу. Как быть?
  • Вопрос задан
  • 2812 просмотров
Пригласить эксперта
Ответы на вопрос 6
opium
@opium
Просто люблю качественно работать
обычно файлы конфигов лежат в отдельной папке, и мы их не свнапим, а апим только папку с кодом.
Ответ написан
SlaX
@SlaX
Если я правильно понял, вам поможет только централизованная работа с бранчами. У нас в проекте никто не работает с транком, в транке подобные файлы имеют стандартную конфигурацию. А уже каждый разработчик работая на своем бранче, меняет эти конфиг файлы под себя. На сколько знаю в svn нельзя сделать так как вы хотите, разве что написать свои хитрые хуки на сервер, который будет если что ревертить такие файлы на транке или что-то такое. Но ИМХО это уже как-то извратненько.
Ответ написан
@LastDragon
1) Создается database_config.example.php в котором находятся актуальные настройки
2) Он добавляется в репозиторий
3) Для директории в которой он лежит добавлям svn:ignore = database_config.php
4) После чакаута создаем копию database_config.example.php с именем database_config.php и указываем в нем индивидуальные настройки

Из неудобств только то, что приходится время от времени обновлять свой database_config.php при добавлении настроек в database_config.example.php
Ответ написан
Вариант схожий с предыдущим, но не он же — использовать что-то вроде наследования или каскадности: есть database_config.common.php, где описаны типовые настройки и который версионицируется (появилась новая фича в проекте, дефолтные настройки туда коммитятся и расползаются по всем разработчикам) и игнорируемый VCS database_config.instance.php в котором переопределяются только необходимые настройки. Грубо говоря, в первым записаны host, port, user, password, database, prefix, а во втором переопределяются только user, password и database или только host.
Ответ написан
reaferon
@reaferon
svn:ignore сработает для файла, который уже добавлен в репу
Ответ написан
@Krio
а пробовали locking? У черепахи есть описание этого действия (RU, EN)
… Если вы заблокируете файл, то только вы сможете зафиксировать этот файл. Фиксации других пользователей будут блокироваться до тех пор, пока вы не уберёте блокировку. Блокированный файл не может быть изменён в хранилище никаким способом, и это означает, что он не может быть удалён или переименован никем, кроме как владельцем блокировки...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы