2012-02-15 59 views
1

的svn:忽略属性忽略不在源代码控制下的文件,所以他们不拿出在svn status?(他们不拿出所有,也将被忽略,如果你做一个add如何svn:忽略源代码管理下的文件?

但是,如果我想忽略一个文件,是源代码控制在什么样的? svn:忽略不会忽略它。
例如,我想要做的是设置一个配置文件,将其添加到SVN,因此它的存在时,系统必须部署在测试或现场服务器是什么(这是一个Web应用程序),但对当地环境的发展,我需要修改配置文件以使用我的本地设置进行设置。

但我不希望这样的更新被COMMITED,所以,我该怎么办?

svn delete只会将它们从存储库中删除,并在测试服务器上执行svn update时,它将删除配置文件,这不是我想要的。

+0

SVN没有部署系统,这是一个源代码控制系统。有很好的工具来制作和检查发行版(比如'automake');使用它们,你的问题就会消失。 – thiton 2012-02-15 16:07:49

回答

1

改变时(如配置文件)并不意味着要提交的文件应被视为与名字反映了这种治疗方法的模板文件。追加实例“.template”到文件名中,并在存储库中拥有文件的默认内容。检查出来的工作副本后,每个用户都必须将此文件手动复制到一个工作版本(无“.template”扩展名),并选择更改内容。这个工作文件不能被添加到资源库中(某些服务器端预提交钩子脚本使用svnlook命令可以确保这一点)。

问题出现,如果这个模板文件被更改。每个用户都必须回应这个改变(也许什么都不做,但可能改变他们的工作文件)。有一些方法可以自动提醒有关模板变化(用户侧更新挂机后脚本)的用户,但这也许只是矫枉过正。当有人更改模板时,应该通知所有其他变更,就是这样。

1

一种方法是竟被使用SVN:外观等。 您将链接到包含配置文件的路径。在Buildserver上,你可以用“--ignore-externals”选项签出。

反正我通常只是删除buildscript文件。不是非常优雅,但做的工作。

1

不幸的是,这不是在svn中轻松完成的。我见过的最接近的答案是this question,但这意味着您必须将其他文件也放入更改列表中。不幸的是,一些svn IDE插件(subversive I'm looking at you!)似乎没有很好的支持changelists。