- trunk:用于各版本开发提交代码
- tags:用于记录和保存每个发布版本的代码
- branches:用于修复特定版本bug而创建的分支
以下为举个栗子:
- 创建一个 Xcode Project ,工程名为 Winson ,初始版本为 V1.0 ;
- 在 Cornerstone 的 Repositories 指定目录下创建文件夹 WinsonApp ,勾选上 subfolders 选项;
- 上传工程 Winson 至 WinsonApp 目录下的 trunk ;
- check out WinsonApp 目录下的 trunk 下的工程 Winson 至本地,名为 WinsonTrunk ;
- 在 WinsonTrunk 下开发,当第一个版本开发完成并发布之后,打个 tag (在 SVN 服务器下的 WinsonApp 目录下的 trunk 下的工程 Winson 右键 tag ,在弹出窗口中指定 tag 路径为 tags),名为 Winson_V1.0;
- 主干继续开发新功能;
- 当新功能未开发完,但是已上线的 V1.0 出现了紧急bug需要立即修复并发布,这个时候,branchs 就出现了;
- 首先找到 V1.0 的 tag,即 tags 文件夹下的名为 Winson_V1.0 的文件, 右键创建 branch 到 branchs 目录下,名为 Winson_V1.0_Bug-fix;
- Winson_V1.0_Bug-fix 开发完成并发布后,提交到服务器;
- 主干开始合并代码;
- 选中 WinsonTrunk , 先 update 然后 commit,然后选中,点击 Merge,Merg from 选取本地的 Winson_V1.0_Bug-fix,然后点击 Merge Changes 按钮;
- 合并完以后,提交 WinsonTrunk 的时候会发现有冲突,点击 Confilicts 一个一个修改,然后一个一个 Resolve; UserInterfaceState.xcuserstate 这个文件肯定会有冲突,这里先不改它,直接点 Resolve,然后 update, 然后 commit。
- 合并代码就此完成,主干与SVN服务器上的代码是最新的包含V1.0已修复bug的代码。
-
UserInterfaceState.xcuserstate?
Xcode中保存的用户操作的GUI状态,如窗口位置,打开的标签页,在项目检查等展开的节点、 简单地调整大小的Xcode窗口将这个文件来改变和修改您的源代码控制系统进行标记。
网友评论