Как SVN: игнорировать файл, который находится под контролем источника? - PullRequest
1 голос
/ 15 февраля 2012

Свойство svn: ignore игнорирует файлы, которые не находятся под контролем источника, поэтому они не отображаются в svn status с ? (они вообще не появляются, и игнорируются также, если вы делаете add)

Но что, если я хочу игнорировать файл, находящийся под контролем исходного кода? svn: игнорировать не будет игнорировать.
Например, я хочу установить файл конфигурации, добавить его в svn, чтобы он был там, когда система должна быть развернута на тестовом или живом сервере (это веб-приложение), но для разработки локальной среды мне нужно изменить файл конфигурации, чтобы настроить его с моими локальными настройками.

Но я не хочу, чтобы это обновление было зафиксировано, так как я могу это сделать?

svn delete просто удалит их из хранилища, а при выполнении svn update на тестовом сервере удалит файл конфигурации, это не то, что мне нужно.

Ответы [ 3 ]

1 голос
/ 15 февраля 2012

К сожалению, это не так просто сделать в SVN. Самое близкое, что я видел, - это принятый ответ на этот вопрос , но это означает, что вы должны также поместить свои другие файлы в списки изменений. К сожалению, некоторые плагины svn IDE ( subversive, я смотрю на вас! ), похоже, не имеют хорошей поддержки списков изменений.

1 голос
/ 15 февраля 2012

Файл, который не предназначен для фиксации при изменении (например, файл конфигурации), должен рассматриваться как файл шаблона с именем, отражающим эту обработку. Например, добавьте «.template» к имени файла и укажите содержимое файла по умолчанию в хранилище. После проверки рабочей копии каждый пользователь должен вручную скопировать этот файл в рабочую версию (без расширения «.template») и при необходимости изменить его содержимое. Этот рабочий файл нельзя добавлять в репозиторий (в этом может убедиться какой-то сценарий pre-commit-hook на стороне сервера с командой svnlook).

Проблема возникает, если этот файл шаблона изменяется. Каждый пользователь должен отреагировать на это изменение (возможно, ничего не делая, но, возможно, изменить свой рабочий файл). Существуют способы автоматического оповещения пользователей об изменении шаблона (с помощью пользовательского сценария post-update-hook), но это может быть просто излишним. Когда кто-то меняет шаблон, он должен просто уведомить всех остальных об изменении, и все.

1 голос
/ 15 февраля 2012

Один из способов использовать svn: externals. Вы бы связались с путем, который содержит файл конфигурации. На сервере сборки вы можете проверить с опцией "--ignore-externals".

В любом случае я обычно просто удаляю файл в buildscript. Не очень элегантно, но делает свою работу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...