不管是Web, iPhone和Mac的开发,SVN(Subversion), 已经成为我每天开发中须臾不可以离的朋友,但是这个工具对于普通的个人开发者来说有点奢侈,如果不在互联网租用一台服务器(约7000元每年)的话,是很难享用那么方便的工具的。于是我们两年前做了一个SVN的平台,svn.w18.net,把我们在广州电信的服务器的Subversion服务器共享出来,希望对大家有用,对于开源的项目是免费的,私有项目100元每年。
Xcode 3.0 以上可以完美支持SVN, 今天和大家分享一下在Xcode中使用SVN的经验。
第一步,配置 Subversion
Leopard中自带了SVN,但Xcode的项目文件中,并不是所有文件都适于加入SVN中进行管理,比如编译后的文件和编译过程中产生的文件,这些文件不属于源代码,应该告诉svn忽略掉,方法:
编辑 ~/.subversion/config 文件
1. 找到 global-ignores 一行,去掉注释,编辑成
global-ignores = build *~.nib *.so *.pbxuser *.mode *.perspective*
Xcode项目文件中有些文件是文本文件,需要告诉SVN,因为SVN能更好地管理文本文件(谁用谁知道)
2. 找到 enable-auto-props = yes 把注释去掉,在[auto-props] Section声明以下文本文件
*.mode* = svn:mime-type=text/X-xcode
*.pbxuser = svn:mime-type=text/X-xcode
*.perspective* = svn:mime-type=text/X-xcode
*.pbxproj = svn:mime-type=text/X-xcode
第二步,配置Xcode
我们熟悉的Version Control在Xcode中叫做SCM(Software Configuration Management,学习CMMI的时候整天看到,原来就是Version Control),
1. 在Xode的菜单中选择 SCM -> Configure Repositories,填写SVN服务器的信息

SVN服务器的信息
2. 然后选SCM -> Repositories 你就可以Import, Check Out你想要的内容了,SVN的日常管理也可以在这里做。

3. Checkout项目以后在你的项目的属性中设置项目的SCM

4. 设置好以后,你在你的项目视图中就可以看到新的一列,M表示该文件已经修改过,然后你已经可以通过SCM菜单,或者右键菜单直接进行SVN的操作, commit,update,revert,diff and log,任何你想要的。

SCM->Get SCM Info 可以看到任何文件的版本信息

-
Xcode
SVN配置 -
编辑
~/.subversion/config 文件 -
注意:如果”.subversion”目录不存在,请运行”svn
status”命令,虽然此命令会失败,但是会为你创建所需要的文件. -
open
~/.subversion/config 打开文件 -
-
1.
找到 global-ignores 一行,去掉注释,编辑成 -
global-ignores
= build *~.nib *.so *.pbxuser *.mode *.perspective* -
Xcode项目文件中有些文件是文本文件,需要告诉SVN,因为SVN能更好地管理文本文件(谁用谁知道)
-
2.
找到 enable-auto-props = yes 把注释去掉,在[auto-props] Section声明以下文本文件 -
*.mode*
= svn:mime-type=text/X-xcode -
*.pbxuser
= svn:mime-type=text/X-xcode -
*.perspective*
= svn:mime-type=text/X-xcode -
*.pbxproj
= svn:mime-type=text/X-xcode -
-
创建版本库
-
(1)到需要存放版本库的地方(比如家目录),建立以SVNRep为名的版本库
-
$
svnadmin create SVNrep -
(2)向版本库中导入内容
-
$
mkdir test -
$
touch test/test.Txt (建立一个演示的目录) -
svn
import test http://s1.e-linkway.com/svn/iphone_class -m "Initial import" -
-
(3)建立一个版本库的拷贝
-
$
svn checkout file:///Users/your_user_name/SVNrep/test test-copy (会创建一个test-copy命名的拷贝) -
(4)修改后提交
-
$
svn commit -m "Added some text" -
(5)部分相关svn命令
-
$
svn status(查看状态) -
$
svn update (进行更新) -
$
svn log (查看日志) -
$
svn diff -r 1(1为版本号,查看与某一版本的区别) -
$
svn update -r 1(更新到某一版本) -
$
svn add test2.txt (向版本库中添加进一个文件) -
$
svn delete test2.txt (向版本库中删除一个文件)(注:从版本库中添加,删除及重命名时必须带svn命令,否则svn会跟踪不到这些变化) -
在Origanizer
- Repositories里添加SVN路径 -
-
问题:
-
version
-
修改open
~/ .subversion/config文件的时候,enable-auto-props = yes 把注释去掉;结果有空格没有删除,就会出现 optional expected之类的报错,无法创建成功 -
删除空格后,就没问题了.