2009-11-29 228 views
0

有没有办法让XCode与共享文件夹一起玩,并允许多人同时在iPhone应用程序上工作?或者我们是否需要切换到更像SubEthaEdit或其他实时协作工具?共享文件夹和XCode

+1

如果您在其他地方不使用SCM,那么本地Subversion存储库如何? – wkw 2009-11-29 03:47:32

回答

1

Xcode是知道玩文件系统非常糟糕。管理项目时,您有两个选项,可以将文件夹作为组或文件夹引用添加。

如果您添加了一个组,那么该文件夹将被镜像到Xcode中,但该组不会与文件系统同步,即您可以在组内移动内容,删除组,不会触摸FS,反向会使Xcode丢失文件。

第二个选项,添加一个文件夹引用听起来很甜,但是完全被窃听。文件夹引用可能无法正确更新,在文件夹内未检测到更改(如果将图像文件夹引用添加到资源并更新内容,则在下一次构建时不会更新资源,必须清除&重建)。

这就是为什么你不应该使用Xcode(我们在这里使用vim + SCons并且对它很满意),或者你需要使用SCM(SCM也可以和其他工具配合使用,你应该使用SCM )。

至于SCM我推荐Mercurial,但也有SVN和Git以及其他很多,我建议你Google一下并提出你的意见。

1

如果您使用SCM,目前最好的方法是检查project.pbxproj 文件(位于.xcodeproj包中)。大多数情况下,合并很好,有时你必须手动合并,但在这种情况下,90%的时间只需要允许合并的两个方面。

我的.gitignore文件看起来像:

# xcode noise 
build/* 
*.pbxuser 
*.mode1v3 
*.perspectivev3 
*~ 
*.mode2v3 

您可以使用类似的忽略设定指令其他SCM系统。

文件夹引用对图像是确定的(如果您更改任何图像内容,您必须执行“清理”操作),但对源代码不太好。

1

让多个人在共享文件夹上工作是灾难的秘诀,并且在第一次有人第一次覆盖您在早上大部分时间编辑的文件时会后悔,因为他们想更新其中的评论。

获取一个SCM,让每个人都检查他们的代码到他们自己的私人文件夹中。

当您的构建更快时,您会更高兴,因为您构建的是本地磁盘而不是网络磁盘。

+1

icefire,这是你应该选择的答案。像Subversion这样的代码管理系统就是为了处理这种问题而创建的。使用正确的工具来完成这项工作。 – TechZen 2009-11-29 17:06:02

0

如果您正在寻找一个实时协作,即两个或更多的程序员实际上将同一代码同时写入同一个文件,那么您将需要使用协同编辑器,如subethaedit。您可以将subethaedit设置为Xcode中源文件的首选编辑器。

这样,你有一位程序员托管Xcode项目,他在subethaedit中打开源文件。其他程序员然后通过subethaedit登录到文件。然后宿主程序员在他的本地Xcode中编译代码。

但是,正如上面在Rudedog的评论中指出的那样,如果您只想让多个人在同一个项目上工作,但在不同文件上工作,则应该使用代码管理工具。