使用subversion,是否可以“无形地”在版本控制中包含文件?

时间:2010-11-21 01:17:57

标签: svn configuration repository customization

我的项目包含一些不断变化的IDE配置文件,但对构建本身没有任何影响。我希望这些文件包含在每次提交和更新中,但我宁愿他们没有出现在修改过的文件列表中。这可能吗?

详细信息:

我的IDE(Xcode)使用每用户配置文件来跟踪窗口位置,本地构建目录,颜色编码等内容。这些配置文件与项目文件本身一起存储(在同一个包中),并且不可重新定位。如果我指示subversion忽略这些文件,它们将被排除在提交之外。如果我提取更新并且其他开发人员修改了项目,则我的本地配置文件将被删除。如果我不忽略这些文件,它们会在我的subversion客户端中不断显示“已修改”,而我宁愿不会通过微小的提交来混淆存储库历史记录,只是为了上传我的本地配置文件。但是,我,希望它们存储在存储库中,以便我可以在不丢失任何设置的情况下下载更新。

我很满意我的配置文件默默包含在所有提交和更新中的设置。我意识到这会导致妥协:如果在我提交之后,在我提取更新之前,某些设置将会丢失。我可以接受这种安排。

4 个答案:

答案 0 :(得分:3)

你说,“如果我指示subversion忽略这些文件,它们将被排除在提交之外。如果我提取更新而另一个开发人员修改了项目,我的本地配置文件就会被删除。”如果您将文件放入.svnignore,并检查那个,那么没有人会提交设置文件,并且在您提取更新时它们永远不会被破坏。

答案 1 :(得分:1)

基于路径的授权如何?

http://svnbook.red-bean.com/en/1.4/svn.serverconfig.pathbasedauthz.html

[calc:/branches/calc/bug-142]
harry = rw
sally = r
[calc:/branches/calc/bug-142/secret]
harry =

只有sally访问秘密,所以没有其他devolpers甚至会得到一个副本提交。 (虽然它看起来并不具有单独的文件级粒度。所以你必须说服你的ide将其文件放在目录中。)

答案 2 :(得分:1)

您可以使用属性svn:ignoresvn:ignore属性会阻止用户使用svn status查看这些文件,并使用svn add *添加这些文件。但是,它不会使它们不可见,用户仍然可以将它们添加到存储库中。添加后,它们会显示svn statussvn commit会提交更改。

因此,您还需要一个预提交挂钩,以防止这些文件被添加到存储库中,只是有人尝试(并且他们会)。

答案 3 :(得分:1)

这些文件根本不应受版本控制。将它们取出(svn del them)然后在project.xcodeproj目录中设置svn:ignore on * .pbxuser和* .mode1v3。