0

是否可以防止指定的文件(路径)提交到存储库?

例如,我们不需要somepath/database_config.php能够被承诺。

我尝试使用svn:ignore属性,但似乎它仅适用于工作副本,不适用于存储库。

我已阅读 svnbook.red-bean.com 关于此功能的信息,但我觉得我的大脑无法真正理解为什么事情不能按我想要的那样工作。

4

2 回答 2

3

仅供参考: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
于 2011-01-26T19:40:06.780 回答
1

您可以使用该svn lock命令来防止特定文件或路径在存储库中被更改。因此,为了防止某个文件被提交,您可以简单地提交一个空文件(或包含“不要提交此文件 - 配置只能在本地计算机上进行”),然后在本地更改您的文件以包含任何必要的内容。

锁定文件后,您可以限制其他人修改锁定或文件本身,但是如果您的开发人员正在摆弄一个显然打算被锁定的文件,我会开始打他们考虑删除他们对该存储库的所有写访问权限。

手册条目更详细的文档中提供了更多信息。

于 2011-01-26T19:15:04.640 回答