Задать вопрос

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

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


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


svn:ignore ведь работает только для файлов, которые ещё не добавлены в репозу. Как быть?
  • Вопрос задан
  • 2814 просмотров
Подписаться 4 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 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)
… Если вы заблокируете файл, то только вы сможете зафиксировать этот файл. Фиксации других пользователей будут блокироваться до тех пор, пока вы не уберёте блокировку. Блокированный файл не может быть изменён в хранилище никаким способом, и это означает, что он не может быть удалён или переименован никем, кроме как владельцем блокировки...
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы