我一直在努力使用TFS作为iPhone开发的源代码存储库。
我的老板永远不会让我使用Subversion(或者上帝禁止Perforce),所以我坚持使用TFS源代码控制。
解决方案是购买将Mac连接到TFS的工具,我不打算在这里做广告,但Mac OS X的Teamprise Client Suite是Mac OS X和TFS之间的桥梁。
对于标准签入和开发人员工作流程,Xcode和TFS之间没有集成。您必须通过Teamprise Explorer客户端手动完成所有操作。
对于构建,事实证明Automator和Teamprise命令行客户端可以解决问题。
那里有一些Xcode到TFS桥吗? 您使用什么源代码控制系统进行iPhone开发?
对我来说,关键是嵌入在Automator工作流程中的以下bash脚本。
%1 =执行代码拉取的本地文件夹。 %2 =项目名称来执行拉动。
此脚本假定Teamprise命令行客户端已安装到〜/ Teamprise
PATH="$PATH:~/Teamprise:~/Teamprise/lib"
cd "$1"
mkdir "$1/logs"
tf workspace -delete BuildScript -server:http://TFSServer -login:uname@domain,password >> $1/logs/wsdelete1.log
tf workspace -new BuildScript -server:http://TFSServer -login:uname@domain,password >> $1/logs/wscreate.log
tf workfold -map "$/TFSRoot" . -workspace:BuildScript -server:http://TFSServer -login:uname@domain,password >> $1/logs/workfold.log
tf get "$/TFSRoot/$2" -all -recursive -server:http://TFSServer -login:uname@domain,password >> $1/logs/get.log
tf workspace -delete BuildScript -server:http://TFSServer -login:uname@domain,password >> $1/logs/wsdelete2.log
#pump the tfs landing folder to the next step in the Automator script.
echo $1/Projects/$2
答案 0 :(得分:7)
正如Louis所述,XCode目前不为我们提供可公开访问的插件模型(Teamprise)以提供TFS集成 - 这是我们喜欢做的事情。
我们已经尝试了几个黑客 - 例如假装成Perforce命令行而不是与TFS交谈,但是这些内部概念证明到目前为止还没有很好地解决 - 特别是我们想要理想的将工作项跟踪以某种方式链接,以便您可以将签到与错误等相关联。
今天,我们大多数使用Teamprise与XCode的TFS对话的客户都是使用独立的UI工具(Teamprise Explorer),或者正在进行Automator操作,就像你建议挂钩{{ 3}}
道歉,这不是一次很棒的经历。我所能建议的是你tf command line为SCM系统提供插件模型以挂钩到XCode。希望如果有大量的开发人员需求,那么我们可能会比仅仅通过我们的请求获得更多的运气。
答案 1 :(得分:3)
虽然内部Xcode正在使用插件系统来支持不同的版本控制系统,但它并不公开或记录在案。除了像运行一些命令行脚本这样的最小支持之外,没有任何支持的方法可以使用任何版本控制系统,除了那些Xcode附带的。
你应该file一个与Apple有关的问题,要求对TFS提供本机支持,或者为Xcode提供支持的VCS插件系统。
无论如何,从短期来看,我认为你找不到满意的解决方案。
答案 2 :(得分:3)
如果必须与TFS服务器集成,那么此时最佳路由是使用SVNBridge,然后通过Xcode的内置subversion功能连接到网桥。
此外,第一次安装VisualSVN服务器花了我不到15分钟的时间进行基本安装,另外10个左右的用户配置用户并获得由我们公司的根证书签名的SSL证书。尝试一下,这真的很容易。