iphone - 如何使用 TFS 进行 iPhone 开发?

标签 iphone bash tfs teamprise

我一直在纠结于如何将 TFS 用作 iPhone 开发的源代码存储库。

我的老板永远不会让我使用 Subversion(或者上帝禁止使用 Perforce),所以我只能使用 TFS 源代码控制。

解决方案是去购买将 Mac 连接到 TFS 的工具,我不是要在这里做广告,但是 Teamprise Client Suite for Mac OS X 是 Mac OS X 和 TFS 之间的桥梁。

对于标准 checkin 和开发人员工作流,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

最佳答案

作为Louis状态,XCode 当前不为我们提供可公开访问的插件模型 (Teamprise) 来提供 TFS 集成 - 这是我们愿意做的事情。

我们已经尝试了一些 hack - 例如假装是 Perforce 命令行并改为与 TFS 交谈,但是这些内部概念证明到目前为止还没有很好地工作 - 特别是当我们想要理想地以某种方式链接工作项跟踪,以便您可以将签到与错误等相关联。

今天,我们大多数使用 Teamprise 从 XCode 与 TFS 对话的客户要么使用独立的 UI 工具 (Teamprise Explorer),要么像您建议的那样执行 Automator 操作以连接到 tf command line .

很抱歉这不是一次很棒的体验。我只能建议你 file a bug with Apple为 SCM 系统提供插件模型以挂接到 XCode。希望如果有大量的开发者需求,那么我们可能会比仅仅请求它更幸运。

关于iphone - 如何使用 TFS 进行 iPhone 开发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1334411/

相关文章:

iphone - 如果我本地化我的 iPhone 应用程序,(描述语言)但不更改我的应用程序,它会被拒绝吗?

c# - TFS 构建代理和 Office PIA

tfs - 合并 - checkin 评论

visual-studio - 在分支之间合并 TFS 变更集而不是选择文件

ios - 如何在 swift 2 中以编程方式更改语言?

iphone - slider 在 Iphone SDK 的 TableView 中重新加载

bash - 在 Ubuntu 中设置代理的用户和密码

macos - 如何通过运行脚本让我的所有终端/shell 重新加载它们的环境?

linux bash查找包含几位数字的文件名

iphone - 表情符号将我的键盘更改为...