Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3003542
  • 博文数量: 523
  • 博客积分: 11908
  • 博客等级: 上将
  • 技术积分: 5475
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-03 15:50
文章分类

全部博文(523)

文章存档

2019年(3)

2013年(4)

2012年(71)

2011年(78)

2010年(57)

2009年(310)

分类: 嵌入式

2012-01-19 15:02:58

这回介绍使用Xcode开发iPhone应用程序时,使用SVN管理源代码的设置及使用方法。这里介绍了两种不同时配置和使用方法— GUI和命令行。更具用户的使用习惯自行选择。

GUI版本 在Xcode上设置svn的Repository

在XCode的环境设定中选择「SCM」。如下图所示,首先在「SCM」中的「Repository」中设置。

Xcode_SCM

点击画面左下角的「+」后会显示SCM系统设置的对话框。如下图所示,输入适当的名字,并在「SCM系统」栏上选择Subversion。

Xcode_SCM

在下面弹出的窗口中输入必要的Repository的信息。

Xcode_SCM

如果输入的不正确的话,在画面最下部会弹出以下的错误信息。

Xcode_SCM

添加新工程到 SVN Repository

由XCode画面上方的「SCM」→「Repository」打开下面的窗口。

Xcode_SCM_SVN

选择新工程的目录,这里将「Test8」添加到 trunk/iPhone/Test8。

点击画面左上角的「读入」按键、然后选择新的工程目录、添加相应的注释后,点击下方的「读入」按钮就完成了添加过程。

Xcode_SCM_SVN

然后打开工程,并像下图中所示,查看过程的信息。

Xcode_SCM_SVN

点击画面上部的「设置根与SCM」。

Xcode_SCM_SVN

将 Repository 栏设置为刚才制定的 Repository。

Xcode_SCM_SVN

从 Repository CheckOut 代码

首先点击「SCM」→「Repository」,选择需要CheckOut的过程目录。

Xcode_SCM_SVN

然后点击画面上方的「CheckOut」、选择合适的保存路径保存。

使用方法

比如像下面在「main.m」文件中添加一些注释。

Xcode_SCM_SVN

因为文件如原先不一样了,在左边的状态栏上会显示 M 文字。表示该文件已经更改。

Xcode_SCM_SVN

如果点击左边列表中的「SCM」,将显示所有更改过的文件。

Xcode_SCM_SVN

对着更改过的文件点击右键会显示「commit」,「diff」等常用SVN的功能。

Xcode_SCM_SVN

命令行版本 设置 Repository 的路径

首先,设定 Repository 的 URL ,如下所示,作为环境变量来设定。

1 % SVN_REPO=svn+ssh://svn.example.com/projects/Example
添加空的过程

这里,并不是先从 Xcode 创建新工程项目,而是创建项目的目录,并 commit 它。

一般使用 Subversion 来管理项目的时候,都会使用 trunk branches tags 3个目录,这里我们也是这样来创建它。

1
2
3
4
5
6
7
8
9
% mkdir project_name
% cd project_name
% mkdir trunk tags branches
% svn import ./ ${SVN_REPO} -m "initial import"
Adding trunk
Adding branches
Adding tags

Committed revision 20.

如果该项目不需要的时候,可以像下面一样,删除整个目录就好了。

1
2
% cd ..
% rm -rf project_name
CheckOut

对于已经存在带是没有用SVN管理的项目,只要在工程目录下 CheckOut 刚才 Commit 的空项目就好了。比如 ~/Developer/Workspace/Example/ 这个工程项目,我们将其放入 Repository 的 trunk 下。

1
2
% cd ~/Developer/Workspace/Example/
% svn checkout ${SVN_REPO}/trunk .
选择用SVN管理的文件

通过上面的设置,实际工程项目中的文件还没有被SVN管理起来。需要如下所示通过 svn add 添加需要的文件。

1
2
3
4
5
6
7
% svn add --force .
A Example.xcodeproj
A Example.xcodeproj/ishikawa.mode1
A Example.xcodeproj/ishikawa.pbxuser
A Example.xcodeproj/project.pbxproj
A Example_Prefix.pch
A build

编译的结果是不需要被管理的,将其忽略。

1
2
% svn revert build --recursive
% svn propset svn:ignore "build" .

由于 Xcode 的项目文件 .xcodeproj 中含有用户的信息,如果是团队开发的程序,该文件也要被忽略。

1
2
3
4
% svn revert Example.xcodeproj/ishikawa.*
% svn propedit svn:ignore Example.xcodeproj/
*.mode1
*.pbxuser

最后commit就好了。

1 % svn commit -m "New Xcode project"
使用iDisk,TimeMachine等备份自己的程序

如果你申请了MobileMe等类似网络同步化的服务,还可以将程序代码用SVN备份到那里。

首先在Mac上打开 "系统环境设定" - "MobileMe" - "iDisk"中的iDiskSync。

然后在控制台输入类似下面的命令,建立 iDisk 上的 Repository。

1
2
3
4
mkdir -p /Volumes/iDisk/Repository/ProjectName
svnadmin create /Volumes/iDisk/Repository/ProjectName --fs-type fsfs
mkdir -p tmp/{trunk,branches,tags}
svn import tmp/ file:///Volumes/iDisk/Repository/ProjectName -m "Initial import"

其他的使用方法与上面介绍的GUI或者CUI是一致的。

阅读(1681) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~