Xcode上使用SCM配置源代码版本控制SVN的方法与技巧

Code内置版本控制客户端SCM,可作为SVN客户端。前两天组里自己搭SVN服务器没有弄成,可能是网络配置问题,索性就申请了googlecode节点,用google提供的SVN服务器了。不过,前提是所有的代码都要开源。还有就是申请之前还需要一个gmail帐号,至于如何申请,搜一下,很多答案。申请完后别忘了把团队成员(都需要有gmail帐号)加入进来。

现在,只剩下客户端配置了。程序员的日常版本控制操作一般是:

import --> checkout --> commit -->update

import :导入工程文件到SVN服务器。在本地建好工程文件后,第一次从客户端上传工程文件至SVN服务器

checkout :签出工程文件到客户机本地。第一次从SVN服务器上下载工程文件到客户机本地。

commit : 提交客户机本地的改动到SVN服务器。客户端本地在对代码进行修改后,将修改提交到服务器。如果服务器的版本被团队里的其他人更新了,那么commit之前会提示需要先update一下。

update: 将SVN服务器上的最新版本同步到客户端。

-----------------

很好理解,import与checkout是一组操作,用在第一次操作时。而commit和update是一组操作,分别对应2个不同方向的操作。

-----------------

1、Checkout 操作

假如SVN上已经有团队里其他人上传的工程项目文件,我们需要checkout到客户端本地。按下列图示操作:

首先用gmail帐号登录申请的googlecode节点,取到SVN服务器的连接串(红字标明的部分)

Xcode上使用SCM配置源代码版本控制SVN的方法与技巧

紧接着我们需要知道与google SVN服务器连接的密码,这个密码并不是gmail帐号的密码,而是由google帮你自动生成的,我们需要在gmail帐号的profile中找到这个随机生成的密码。点击右上角的Profile,然后选中"Setting"

Xcode上使用SCM配置源代码版本控制SVN的方法与技巧

这时页面显示错误,这是乍整的呢?原来我们这边的电信封掉了这个页面
Xcode上使用SCM配置源代码版本控制SVN的方法与技巧

我们打开一个在线代理网页,重新访问我们的googlecode节点(我选择默认S1代理仍然出不来,我换了一个S2就OK)
Xcode上使用SCM配置源代码版本控制SVN的方法与技巧

可以看到GOOGLE为我们生成的SVN服务器访问密码,也可以按“Regenerate”按钮随机生成另一个密码
Xcode上使用SCM配置源代码版本控制SVN的方法与技巧

打开Xcode,无需创建任何项目,直接选择SCM菜单上的"Configure SCM Repositories"
Xcode上使用SCM配置源代码版本控制SVN的方法与技巧

点击左下角的"+"号新建一个SCM配置文件,起个名字“snb”,然后填入刚才我们找到的googlecode节点的SVN服务器连接串,以及连接帐号、密码,参照下图:
Xcode上使用SCM配置源代码版本控制SVN的方法与技巧

接下来我们就可以Checkout代码了
Xcode上使用SCM配置源代码版本控制SVN的方法与技巧

Xcode上使用SCM配置源代码版本控制SVN的方法与技巧

选择代码的本地存放路径Xcode上使用SCM配置源代码版本控制SVN的方法与技巧

checkout完成后,可以直接打开工程代码了
Xcode上使用SCM配置源代码版本控制SVN的方法与技巧

接下来还需要一步:将该工程与SCM配置文件绑定在一起。首先双击工程名打开工程配置,选择"Configure Roots &SCM..."按钮
Xcode上使用SCM配置源代码版本控制SVN的方法与技巧

指定我们在SCM里设计的配置文件名snb,这样就将该工程与snb配置文件绑定在一起了。
Xcode上使用SCM配置源代码版本控制SVN的方法与技巧

2、Commit操作

首先,我们假如对checkout下来的代码进行了修改,加入了一行注释
Xcode上使用SCM配置源代码版本控制SVN的方法与技巧

然后我们要将更改发布到svn服务器,可以选择SCM菜单的“Commit Entire Project”进行提交
Xcode上使用SCM配置源代码版本控制SVN的方法与技巧

注意,有变更的文件都会出现在SCM分支下,可以显示自上次update以来,本地修改的代码文件

在commit时我们可以添加一些说明
Xcode上使用SCM配置源代码版本控制SVN的方法与技巧

在这一步出现了一个提交错误信息。
Xcode上使用SCM配置源代码版本控制SVN的方法与技巧

不知道是什么原因,总之我试着把https连接方式改为了http方式就OK了,而且我发现后面出现的Error:175002 (RA layer request failed) Server sent unexpected return value(405 Method Not Allowed)

错误我也是用这种方式解决的,就是又把http改回https方式,真有意思!

Xcode上使用SCM配置源代码版本控制SVN的方法与技巧

在googlecode站点我们看到已经commit成功

Xcode上使用SCM配置源代码版本控制SVN的方法与技巧

3、Update操作

假如在另一台机器上commit了一个版本,在googlecode上可以看到这个记录,然后我们准备update到客户端本地
Xcode上使用SCM配置源代码版本控制SVN的方法与技巧

选择SCM菜单的“Update Entire Project”就OK了,更新完后我们看到代码添加的部分
Xcode上使用SCM配置源代码版本控制SVN的方法与技巧

4、import操作

也很简单,选择SCM中的Repositories,然后选择Import按提示操作即可(在这个菜单中可以对SVN服务器上文件进行管理,比如创建目录和删除文件操作等等)
Xcode上使用SCM配置源代码版本控制SVN的方法与技巧

import成功!
Xcode上使用SCM配置源代码版本控制SVN的方法与技巧