天天看点

Mac下的Subversion使用文档

Subversion 是一个非常好的版本控制系统,利用它可以对项目内的文件进行方便的管理和同步。

1. 创建版本库

(1)到需要存放版本库的地方(比如根目录)

      mkdir -p /Library/Subversion/Repository


      

(2)创建版本库,名称以Project1演示

      svnadmin create /Library/Subversion/Repository/Project1


      

(3)创建svnserve 的骨架(包括trunk,branches,tags三个文件必须的)

       mkdir -p /tmp/Project1/trunk /tmp/Project1/branches /tmp/Project1/tags

(4)建立一个版本库的拷贝测试一下

  svn import /tmp/Project1/ file:///Library/Subversion/Repository/Project1 -m "Initial import"

(5)测试完毕删除这个拷贝

  rm -rf /tmp/Project1

(6)设置管理员用户组

  sudo chown -R root:admin /Library/Subversion/Repository

(7)设置管理员用户组权限(读和写)

    sudo chmod -R ug+rwX,o= /Library/Subversion/Repository

(8)在scm配置svn+ssh

Mac下的Subversion使用文档

host 是服务器的ip

(9)checkout,commit...等操作,但是在客户端scm没有commit,compare等选项。

>接下来在客户端,点scm,在下拉列表里面选择最后一项(集体什么忘了)。

在打开的页面中选择project ..&SCM那项(很长也忘了)

点击链接方式  subversion ,然后点击ok完成。

现在客户端就可以commit,compare..等功能了。

2.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会跟踪不到这些变化)

如果只是本地操作的话,上面介绍的就可以用了,但是一般版本控制需要放在服务器上,供多个用户一起使用。subversion 服务器的建立可以使用Apache方式,也可以用自带的svnserve方式。

(1)到版本库SVNRep目录下,conf文件夹下存放的就是配置文件

修改svnserve.conf:

# [general]

# password-db = passwd

改为:

[general]

password-db = passwd

这样就会需要密码才能登陆

然后修改同目录的passwd文件,去掉下面三行的注释:

# [users]

# harry = harryssecret

# sally = sallyssecret

最后变成:

[users]

harry = harryssecret

sally = sallyssecret

这里为配置用户名及其对应的密码,也可以添加另外的用户。

(2)启动服务器

$ svnserve -d -r /Users/your_user_name/SVNrep

这样svn服务器就会在后台启动

(3) 启动服务器后的import,checkout等操作和上面介绍的一样,只是本地操作的话把地址改为svn://localhost/,并且按提示输入你配置的用户名和密码就行。如果是其他主机登陆的话,只要把localhost换成对应的要登陆的主机IP地址即可。

3.XCode中版本SVN的使用

配置 Subversion

XCode开发工具中有关SCM选项,可以在这里配置使用Subversion。

Xcode的项目文件中,并不是所有文件都适于加入SVN中进行管理,比如编译后的文件和编译过程中产生的文件,这些文件不属于源代码,应该告诉svn忽略掉,方法:

编辑 ~/.subversion/config 文件

(1). 找到 global-ignores 一行,去掉注释,编辑成

    global-ignores = build *~.nib *.so *.pbxuser *.mode *.perspective* .DS_Store

    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

      我们熟悉的Version Control在Xcode中叫做SCM(Software Configuration Management)

(3).然后选SCM -> Repositories 你就可以Import, Check Out你想要的内容了,SVN的日常管理也可以在这里做。

(4).Checkout项目以后在你的项目的属性中设置项目的SCM。 打开checkout至本机的工程,SCM->Configure SCM For               This Project,然后为该工程选择本地subversion。

(5).这时如果你修改了文件代码,储存后,修改的文件名左边会多出一个M,如果没有检查一下SCM状态是否Online。

(6).这时就可以右键选择前面出现M标记的行选择Commit Changes提交修改,并且在出现的对话框里写上修改的记录。

(7).如果是添加了文件,则会在前面出现?号,这时要先选择Add  to Repository进行添加操作,然后在Commit提交

(8).此 时如果从版本库中再checkout出来一份拷贝,就会包含修改过的内容,和最新的版本同步。并且还可以查看最新版本和前面几个版本间的差异。选择 SCM->Compare With->Revision,然后选择一个比较的版本就会获得者两个版本间的差异。