添加/删除文件/更改设置时,.xcodeproj将会更改。如果有多个人试图在同一个项目上这样做,因为SVN不像git那么聪明,每次都会引起问题,除了每次与每个人交谈之外,还有办法解决这个问题吗?
答案 0 :(得分:3)
我不是XCode开发人员,但是做Subversion管理。我相信.xcodeproj 文件实际上不是一个文件,而是一个包含项目信息和用户信息的目录。 Subversion将该目录作为目录存储到存储库中。这很好。
该目录中的文件project.pbxproj
包含项目信息,这也应该保存在Subversion中。这就是项目的配置方式。
单个* .pbxuser文件适用于特定用户,不应位于SVN存储库中。这就是您的问题所在。
实际上,它存在于Mac OS X假装某些目录只是包含资源信息的文件夹的事实。这通常会导致开发人员混淆,因为他们的浏览器显示单个文件而不是目录。
如果用户在XCode中进行Subversion操作,XCode可能会做正确的事情。 (我知道Eclipse确实如此)。而且,如果用户使用Subversion命令行,他们会立即看到某些文件是目录,并且Subversion正在以它应该的方式工作。 Subversion命令行对这些.pbxuser文件没有任何问题。
当用户使用使用Finder作为浏览器的Subversion GUI时,问题通常存在 - 就像Windows上的TortoiseSVN使用Explorer一样。这与XCode结合可能会导致问题。
处理此问题的最佳方法是创建一个预提交挂钩,如果用户尝试添加* .pbxuser用户文件,则该挂钩将无法提交。 (并从存储库中删除所有* .pbxuser文件)。这些用户将很快学会将这些* .pbxuser文件放在他们的Subversion忽略设置中。
在Perl和Python中都有很多文件预提交钩子可以处理这个问题。
答案 1 :(得分:0)
我认为Xcode 4内置了对SVN的支持,可以帮助解决这些问题。