ubuntu14.04下svn版本管理系统的安装及常用命令的使用整理
ubuntu14.04下安装svn
$sudo apt-get install subversion
执行这一步就安装完成了,在ubuntu先安装很方便
安装完成后,创建版本库目录,由于是本地环境,就在某个目录下建立一个目录,如果是真实环境,就是相当于服务器上的目录,由于本地,则就模拟出一个服务器上的一个版本库
$sudo mkdir -p /opt/subverdion/svn ###创建版本库目录
$sudo svnadmin create /opt/subversion/svn ###创建版本库,生成配置文件
配置svn,配置文件都在/opt/subversion/svn
1).首先配置用户
$sudo vim /opt/subversion/svn/conf/passwd
添加格式:用户名 = 密码
如:xc = xc123
2).配置权限和分组
$sudo vim /opt/subversion/svn/conf/authz
[groups] ###分配组,行首不能有空格
team1 = zhangsan,lisi ###在组1中有zhangsan和lisi
team2 = wangwu ###在组2中只有wangwu
[svn:/] ###分配权限,
zhangsan = rw
@team1 = rw ###在组名前需要加上@符号,在用户前不需要加@符号,在team1组中的成员有’读写’的权限
@team2 = r ###在team2组中的成员有‘读‘的权限
* = ###其他用户没有任何权限
3).配置/opt/subversion/svn/conf目录下的 svnserve.conf文件,去掉注释
$sudo vim /opt/subversion/svn/conf
anon-access = none ###将以前的read改成none
auth-access = write
password-db = passwd ###
authz-db = authz
4).开启svn服务
$sudo svnserve -d -r /opt/subversion
-d:指定程序后台运行
-r:指定svn的服务目录,即版本库的目录
--listen-port 端口 :设置端口,默认为3690
5).验证是否开启成功
$ sudo netstat -anp | grep svnserve
返回以下信息
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 18253/svnserve
6).如何关闭svnserve
$sudo pstree | grep svn #查看
$sudo killall svnserve #关闭
##############
上面六步相当于在服务器上的设置
完成之后,进行如下操作
##############
在家目录下建立一个本地目录(相对与服务器来说)
$mkdir -p workspace/project
$cd /workspace/project
$sudo svn checkout svn://127.0.0.1/svn #和服务器上建立关联,svn目录是在/opt/subversion/下的svn目录
输入上述命令后,在ubuntu14.04下会弹出一个选项卡,让你填一下密码用户名的东西,自己看着填就可以了
之后在workspace/project目录下
$ll -a 可以看到有一个隐藏文件夹.svn,这个目录下记录的都是用户的各种操作
##############
经过上述的步骤,svn的配置基本完成了,之后就可以进行svn命令操作了
可以sudo update 更新看一下,服务器的文件同步到本地来了没有,可以看到svn目录的出现
**注:在ubuntu下使用svn命令的时候,一般要sudo执行
##############
/****************第一个错误***************************/
xc@wen:~/workspace/project01$ svn add aaa
svn: E155004: 运行“svn cleanup”删除锁 (运行“svn help cleanup”以得到详细信息)
svn: E155004: 工作副本“/home/xc/workspace/project01”已经锁定
svn: E200031: sqlite[S8]: attempt to write a readonly database
svn: E200031: 额外错误:
svn: E200031: sqlite[S8]: attempt to write a readonly database
******************/
出现上面这个时要用root的身份登录才有用,以普通用户会报上面的错误
/****************第二个错误***************************/
当出现svn: E155007: “/opt/subversion”不是工作副本的时候,这个是因为在配置authz权限的时候
[groups]
team1 = xc,lisi
team2 = lisi
[proj01:/] ######在这里冒号和/之间不能有空格
xc = rw
@team1 = rw
@team2 = r
* =
-----------------------------------------------------------------
linux下svn日常使用的常用命令
在使用svn时先看看svn下如何获得帮助,使用svn help即可获得svn的帮助,使用svn help command,即可查找子命令下的帮助,如svn help update
1).svn checkout svn://127.0.0.1/svn ###第一次登录到svn服务器时需输入,以后则不需要checkout了
2).svn update 也可以简写成svn up ###将版本库的修改合并到工作副本中,下载服务器上更新了的文件
3).提交或修改文件
a.对于新创建的文件
svn add PATH/TO/FILE ###先添加文件至版本控制目录
svn commit -m "xxxxx" ###把本地的文件同步到服务器的版本库目录下,-m:指定日志信息,一般要指定日志信息,不然会报错,svn commit也可写成svn ci
b.对于修改的文件,直接提交
svn commit PATH/TO/FILE -m "xxxxxx" ###直接提交
4).查看版本库日志,这里的日志记录记录了commit的-m选项里指定的日志信息
svn log
5).将改动的文件还原至以前的版本
a.修改过,但未提交
$ sudo vim test.txt ###修改文件
$ sudo svn revert test.txt ###恢复文件
b.修改了,并已提交到服务器
$ sudo vim test.txt
$ sudo svn commit -m "test file"
$ sudo svn update
$ sudo svn diff -r 旧版本:新版本 svn://127.0.0.1/svn/test.txt ###查看就版本与新版本之间的区别,如sudo svn diff -r 3:4 svn://127.0.0.1/svn/test.txt
$ sudo svn merge -r 新版本:旧版本 svn://127.0.0.1/svn/test.txt ###恢复至旧版本,如:sudo svn merge -r 4:3 svn://127.0.0.1/svn/test.txt
6).列出版本库中的目录内容
$ sudo list
7).在svn服务器端创建目录
$ sudo svn mkdir svn://127.0.0.1/svn/xc [-m "xxxxx"]
8). 目录的拷贝
$ sudo svn copy 源文件 目的文件
9). 从版本库中删除文件和目录
本地删除:rm -rf file
服务器删除:sudo del svn://127.0.0.1/svn/test.txt -m "del file"
10).重命名文件或目录move (mv, rename, ren)
svn move 源文件 目标文件
sudo svn mv svn://127.0.0.1/proj01/xc svn://127.0.0.1/proj01/xxc
本文出自 “小城工作室” 博客,请务必保留此出处http://xcroom.blog.51cto.com/7941996/1639926
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。