Как не дать файлу быть загруженным в репозиторий? - PullRequest
0 голосов
/ 26 января 2011

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

Например, нам нужно somepath/database_config.php не может быть зафиксировано.

Я пытался использовать свойство svn:ignore, но похоже, что оно работает только для рабочих копий, а не для репозиториев.

Я читал svnbook.red-bean.com об этой функции, но чувствую, что мой мозг не может понять, почему все работает не так, как я хочу.

Ответы [ 2 ]

3 голосов
/ 26 января 2011

К вашему сведению: 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
1 голос
/ 26 января 2011

Вы можете использовать команду svn lock, чтобы предотвратить изменение определенного файла или пути в хранилище.Таким образом, чтобы предотвратить фиксацию определенного файла из когда-либо , вы можете просто зафиксировать пустой файл (или содержащий «не фиксировать этот файл - конфигурации должны быть сделаны только на локальном компьютере»), а затемлокально измените ваш файл, чтобы он содержал любое необходимое содержимое.

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

Дополнительная информация доступна в ручном вводе и более подробная документация .

...