在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
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,然后选择一个比较的版本就会获得者两个版本间的差异。
小结:详解在Mac下Subversion使用文档的内容介绍完了,希望通过本文的学习,能对你有所帮助