Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xcode 如何使用SVN处理iOS项目?_Xcode_Svn_Ios - Fatal编程技术网

Xcode 如何使用SVN处理iOS项目?

Xcode 如何使用SVN处理iOS项目?,xcode,svn,ios,Xcode,Svn,Ios,添加/删除文件/更改设置时,.xcodeproj将被更改。如果有多人在同一个项目上尝试这样做,因为SVN没有git那么聪明,每次都会引起问题,除了每次都和每个人交谈之外,还有没有办法解决这个问题?我认为Xcode 4内置了对SVN的支持,这对解决这些问题有很大帮助。我不是Xcode开发者,但是颠覆政府。我相信.xcodeproj文件实际上不是一个文件,而是一个包含项目信息和用户信息的目录。Subversion将该目录作为目录存储到存储库中。这很好 该目录中的文件project.pbxproj包含

添加/删除文件/更改设置时,.xcodeproj将被更改。如果有多人在同一个项目上尝试这样做,因为SVN没有git那么聪明,每次都会引起问题,除了每次都和每个人交谈之外,还有没有办法解决这个问题?

我认为Xcode 4内置了对SVN的支持,这对解决这些问题有很大帮助。

我不是Xcode开发者,但是颠覆政府。我相信.xcodeproj文件实际上不是一个文件,而是一个包含项目信息和用户信息的目录。Subversion将该目录作为目录存储到存储库中。这很好

该目录中的文件
project.pbxproj
包含项目信息,这也应该保存在Subversion中。这是项目的配置方式

单个*.pbxuser文件针对特定用户,不应位于SVN存储库中。这就是你的问题所在

实际上,它存在于这样一个事实中:MacOSX假装某些目录只是包含资源信息的文件夹。这通常会导致开发人员混淆,因为他们的浏览器只显示一个文件,而不是一个目录

如果用户在XCode中执行Subversion操作,那么XCode可能是正确的。(我知道Eclipse有)。而且,如果用户正在使用Subversion命令行,他们会立即看到某些文件是目录,并且Subversion正在以它应该的方式工作。Subversion命令行对这些.pbxuser文件没有任何问题

问题通常存在于用户使用Subversion GUI时,该GUI使用Finder作为浏览器,就像Windows上的TortoiseSVN使用Explorer一样。这与XCode相结合可能会导致问题

处理此问题的最佳方法是创建一个预提交挂钩,如果用户尝试添加*.pbxuser用户文件,该挂钩将导致提交失败。(并从存储库中删除所有*.pbxuser文件)。这些用户将很快学会将那些*.pbxuser文件放在Subversion忽略设置中


Perl和Python中都有很多文件预提交挂钩可以处理这个问题。

项目包中有两个文件是用户特定的:username.pbxuser和username.mode1v3。这两个文件都不需要进行版本控制。@Caleb:谢谢您提供的附加文件。正如我所说,我不是开发人员,而是构建工程师。我发现MacOS X的问题是,它喜欢在Finder中将目录作为文件隐藏。这对用户来说很好,但开发人员应该更清楚。如果您使用XCode通过SVN签入和签出文件,它将做“正确的事情”。如果您使用命令行Subversion客户端,您将看到某些文件实际上是目录,您将自己做正确的事情。如果你使用依赖于Finder的GUI SVN客户端,你每次都会搞砸。不幸的是,许多开发人员不喜欢IDE中内置的版本控制工具,坚持自己做这类事情。我不能怪他们。通常需要相当多的配置才能让它们正常工作,然后想想除了签入和签出文件之外如何做一些事情可能会令人沮丧。如果您熟悉另一个SVN客户机,为什么不直接使用它呢?然后,您遇到了著名的“这是一个文件/不,这是一个目录”问题,这在任何其他Unix/Linux平台上都不存在。