我的项目包含一些不断变化的IDE配置文件,但对构建本身没有任何影响。我希望这些文件包含在每次提交和更新中,但我宁愿他们没有出现在修改过的文件列表中。这可能吗?
详细信息:
我的IDE(Xcode)使用每用户配置文件来跟踪窗口位置,本地构建目录,颜色编码等内容。这些配置文件与项目文件本身一起存储(在同一个包中),并且不可重新定位。如果我指示subversion忽略这些文件,它们将被排除在提交之外。如果我提取更新并且其他开发人员修改了项目,则我的本地配置文件将被删除。如果我不忽略这些文件,它们会在我的subversion客户端中不断显示“已修改”,而我宁愿不会通过微小的提交来混淆存储库历史记录,只是为了上传我的本地配置文件。但是,我做,希望它们存储在存储库中,以便我可以在不丢失任何设置的情况下下载更新。
我很满意我的配置文件默默包含在所有提交和更新中的设置。我意识到这会导致妥协:如果在我提交之后,在我提取更新之前,某些设置将会丢失。我可以接受这种安排。
答案 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:ignore
。 svn:ignore
属性会阻止用户使用svn status
查看这些文件,并使用svn add *
添加这些文件。但是,它不会使它们不可见,用户仍然可以将它们添加到存储库中。添加后,它们会显示svn status
,svn commit
会提交更改。
因此,您还需要一个预提交挂钩,以防止这些文件被添加到存储库中,只是有人尝试(并且他们会)。
答案 3 :(得分:1)
这些文件根本不应受版本控制。将它们取出(svn del them)然后在project.xcodeproj目录中设置svn:ignore on * .pbxuser和* .mode1v3。