Защита файлов от SVN коммит - PullRequest
6 голосов
/ 06 мая 2010

Эй, представьте себе простое веб-приложение с log4j.properties, которое находится под контролем версий. Я не могу добавить его в svn:ignore, потому что это обязательный файл. Если я делаю пользовательские изменения для разработки и не хочу их фиксировать, я должен остерегаться случайных изменений. С одним файлом легко работать, с 3 и более файлами он становится жутким.

Есть ли способ временно отключить эти файлы от svn commit? Так его проще совершить? Я работаю с svn и subclipse.

Ответы [ 3 ]

10 голосов
/ 06 мая 2010

Типичный способ справиться с подобными ситуациями заключается в следующем:

  1. Сделайте копию файла под именем, которое указывает, что это шаблон
  2. Зафиксируйте шаблон в вашем хранилище
  3. Игнорировать оригинальный файл

Таким образом, у вас будет свежая копия, и во время развертывания вы сможете скопировать файл обратно из шаблона в настоящий файл.

Таким образом, вы не рискуете внести плохие изменения в этот файл, и, по крайней мере, для другой системы контроля версий, вы не рискуете, чтобы кто-то проверил файл и забыл блокировку.

В Subversion нет способа указать, что файл относится к типу «только первый раз», поэтому, добавив его в свой репозиторий, вы сказали Subversion отслеживать изменения в этом файле. Если вы вручную не убедитесь (или не напишете инструмент, или не измените ваши инструменты), чтобы никогда не вносить изменения в этот файл, Subversion вам не поможет.

7 голосов
/ 18 октября 2012

Моим решением этой проблемы было создание нового (своего рода виртуального) пользователя на нашем svn-сервере и добавление его во все проекты, назовем его Locker. Поэтому я, как пользователь Locker, установил блокировку для файлов конфигурации, которые не следует изменять в базе кода.

Et voilà! Файлы больше не фиксируются по ошибке, однако, если производственная система нуждается в обновлении файлов конфигурации, блокировка может быть принудительно введена любым членом команды, или файлы могут быть обновлены и повторно заблокированы теми, кто знает учетные данные Lockers!

Может быть, это решение не для всех, некоторые правила компании могут запрещать использование прокси-пользователей.

1 голос
/ 06 мая 2010

Для этого я, например, должен иметь файлы с именем log4j.properties.server, а затем я настроил свой сценарий развертывания для копирования файлов .server вместо обычных.

...