Как не дать файлу быть загруженным в репозиторий?
Можно ли предотвратить указанный файл (путь) от фиксации в хранилище?
Например, нам нужно somepath/database_config.php
не может быть совершенным.
Я пытался использовать svn:ignore
свойство, но похоже, что оно работает только для рабочих копий, а не для репозиториев.
Я читал svnbook.red-bean.com об этой функции, но чувствую, что мой мозг не может понять, почему все работает не так, как я хочу.
2 ответа
FYI: svn:ignore
будет работать, только если игнорируемый файл НЕ находится в хранилище.
При добавлении файлов конфигурации в хранилище я делаю создание файла шаблона, который будет храниться в хранилище, а затем игнорирую файл конфигурации, специфичный для каждого разработчика. Таким образом, любой, кто проверяет код, должен будет переименовать шаблон без .template
расширение и поместите в него свою локальную конфигурацию.
Таким образом, каждый разработчик может иметь различную конфигурацию, не затрагивая всех.
т.е.: файл шаблона: database_config.php.template
$config = array(
'host' => 'XXXX',
'db' => 'XXXX',
'user' => 'XXXX',
'password' => 'XXXX',
);
Файл конфигурации: database_config.php
$config = array(
'host' => 'XXXX',
'db' => 'XXXX',
'user' => 'XXXX',
'password' => 'XXXX',
);
Вы должны сделать эти команды SVN, чтобы добавить в свой репозиторий.
// Add the template
svn add database_config.php.template
// Ignore the config file used by the system (Should not be in repository)
svn propset svn:ignore "config.php" .
svn commit
Вы можете использовать svn lock
команда для предотвращения изменения конкретного файла или пути в хранилище. Таким образом, чтобы предотвратить фиксацию определенного файла, вы можете просто зафиксировать пустой файл (или содержащий "не фиксировать этот файл - конфигурации должны быть сделаны только на локальном компьютере"), а затем локально изменить ваш файл так, чтобы он содержал любой контент необходим.
После того, как вы заблокировали файл, вы можете запретить другим пользователям изменять блокировку или сам файл, но в этот момент, если ваши разработчики возятся с файлом, который, очевидно, предназначен для блокировки, я бы начал их шлепать и подумайте об удалении всех их прав на запись в этот репозиторий.
Более подробная информация доступна в ручной записи и более подробную документацию.