Как не дать файлу быть загруженным в репозиторий?

Можно ли предотвратить указанный файл (путь) от фиксации в хранилище?

Например, нам нужно 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 команда для предотвращения изменения конкретного файла или пути в хранилище. Таким образом, чтобы предотвратить фиксацию определенного файла, вы можете просто зафиксировать пустой файл (или содержащий "не фиксировать этот файл - конфигурации должны быть сделаны только на локальном компьютере"), а затем локально изменить ваш файл так, чтобы он содержал любой контент необходим.

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

Более подробная информация доступна в ручной записи и более подробную документацию.

Другие вопросы по тегам