分类: 嵌入式
2012-01-19 15:02:58
这回介绍使用Xcode开发iPhone应用程序时,使用SVN管理源代码的设置及使用方法。这里介绍了两种不同时配置和使用方法— GUI和命令行。更具用户的使用习惯自行选择。
GUI版本 在Xcode上设置svn的Repository在XCode的环境设定中选择「SCM」。如下图所示,首先在「SCM」中的「Repository」中设置。
点击画面左下角的「+」后会显示SCM系统设置的对话框。如下图所示,输入适当的名字,并在「SCM系统」栏上选择Subversion。
在下面弹出的窗口中输入必要的Repository的信息。
如果输入的不正确的话,在画面最下部会弹出以下的错误信息。
添加新工程到 SVN Repository由XCode画面上方的「SCM」→「Repository」打开下面的窗口。
选择新工程的目录,这里将「Test8」添加到 trunk/iPhone/Test8。
点击画面左上角的「读入」按键、然后选择新的工程目录、添加相应的注释后,点击下方的「读入」按钮就完成了添加过程。
然后打开工程,并像下图中所示,查看过程的信息。
点击画面上部的「设置根与SCM」。
将 Repository 栏设置为刚才制定的 Repository。
从 Repository CheckOut 代码首先点击「SCM」→「Repository」,选择需要CheckOut的过程目录。
然后点击画面上方的「CheckOut」、选择合适的保存路径保存。
使用方法比如像下面在「main.m」文件中添加一些注释。
因为文件如原先不一样了,在左边的状态栏上会显示 M 文字。表示该文件已经更改。
如果点击左边列表中的「SCM」,将显示所有更改过的文件。
对着更改过的文件点击右键会显示「commit」,「diff」等常用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 |
对于已经存在带是没有用SVN管理的项目,只要在工程目录下 CheckOut 刚才 Commit 的空项目就好了。比如 ~/Developer/Workspace/Example/ 这个工程项目,我们将其放入 Repository 的 trunk 下。
1 2 |
% cd ~/Developer/Workspace/Example/ % svn checkout ${SVN_REPO}/trunk . |
通过上面的设置,实际工程项目中的文件还没有被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" |
如果你申请了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是一致的。