参考:http://www.centoscn.com/image-text/config/2016/0429/7146.html
http://blog.csdn.net/u012486840/article/details/52524389
1、yum命令即可方便的完成安装
$sudoyuminstallsubversion
测试安装是否成功:
$svnserve--version
2. 建立版本库
创建svn数据目录(subversion默认是把/var/svn作为数据根目录的,开机启动默认也是从这里):
$sudomkdir-p/var/svn
创建版本库:
$sudosvnadmincreate/var/svn/wangwa
如果删除版本库:
$sudorm-rf/var/svn/somnus
3. 配置svn配置文件
每个版本库创建之后都会生成svnserve.conf主要配置文件。编辑它:
$sudovim/var/svn/somnus/conf/svnserve.conf
编辑示例:
[general]
anon-access=none#控制非鉴权用户访问版本库的权限
auth-access=write#控制鉴权用户访问版本库的权限
password-db=passwd#指定用户名口令文件名
authz-db=authz#指定权限配置文件名
realm=somnus#指定版本库的认证域,即在登录时提示的认证域名称
sudovim/var/svn/somnus/conf/passwd
编辑示例:
[users]
admin=admin#用户,密码
fuhd=fuhd#用户,密码
test=test#用户,密码
5. 编辑svn权限控制配置文件
/somnus/conf/authz
编辑示例:
[groups]
admin=admin#admin为用户组,等号之后的admin为用户
test=fuhd,test
[somnus:/]#表示根目录(/var/svn/somnus),somnus:对应前面配置的realm=somnus
@admin=rw#表示admin组对根目录有读写权限,r为读,w为写
[somnus:/test]#表示test目录(/var/svn/somnus/test)
@test=rw#表示test组对test目录有读写权限
6. 启动,查看和停止SVN服务
启动SVN服务:
#-d:守护进程-r:svn数据根目录
$sudosvnserve-dr/var/svn#用root权限启动
查看SVN服务:
$psaux|grepsvnserve#默认端口为:3690
7、启用、连接与关闭
svnserve -d -r /var/svn/
在project这个repo里导入文件
svn import xxxx svn://xxx.xxx.xxx.xxx/project/ -m “admin”
填入root密码
填入刚才创建的repo的账户密码
成功
ps -aux|grep svn
kill pid
一些常用操作
注意:大部分操作需要在svn版本控制的文件夹下进行
checkout(别名:co)命令
命令说明:剪出版本库中的可用的工作目录;
使用方法:checkout URL[@REV]… [PATH];
使用实例:[root@samba /]# svn co svn://192.168.31.131/svntest/trunk
这个过程是把代码从服务器中下载下来,保持版本一致。
add命令
命令说明:Put files and directories under version control,scheduling them for addition to repository. They will be added in next commit.
使用方法:add PATH…;
使用实例:[root@xxx]# svn add *.Java(可以使用通配符)
这个过程是把新建的文件和文件夹添加进版本控制,在下一次commit时,会导入到版本库里进行同步。
commit(别名:ci)命令
命令说明:将你的变更从你的SVN工作目录提交到版本库;
使用方法:commit PATH…;
使用实例:[root@xxx]# svn ci -m “commit dir and file” test(可以使用通配符,可同时提交目录和文件)
lock命令
命令说明:将锁住SVN工作目录或者版本库的URL,以使没有人可以提交目录或者文件的变更信息;
使用方法:lock TARGET…;
使用实例:[root@xxx]# svn lock -m “lock dir and file”
Test.java(可使用通配符,比如:T*.*)
unlock命令
命令说明:解除SVN工作目录或者版本库URL的锁; 使用方法:unlock TARGET…;
使用实例:[root@xxx]# svn
unlock -m “lock dir and file” Test.java(可使用通配符,比如:T*.*)
注:在本地加锁或者解锁,记得提交到服务器。
delete(别名:del,remove,rm)命令
命令说明:从SVN版本控制中删除文件或者目录;
使用方法:delete PATH…;
使用实例:[root@samba test]# svn delete Test.java(可使用通配符,比如:T*.*) –删除文件
[root@samba test]# svn delete test(可使用通配符,比如:t*) –删除目录
注:执行上面的命令,只能删除SVN版本控制下的文件,不能删除目录,故删除目录时,应该采用Linux(Unix)系统的rm命令,同时删除后记得提交。
move(别名:mv,rename,ren)命令
命令说明:移动或者重命名SVN工作目录或者版本库;
使用方法:move SRC… DST
使用实例:[root@samba test]# svn move Test.java Test2.java [root@sambatest]# svn move -m “ss” svn://192.168.31.131/svntest/trunk/src/com/ant/test/Test2.java svn://192.168.31.131/svntest/trunk/src/com/ant/test/Test3.java
注:执行上面的第一种实例命令记得提交。第二种命令是直接修改服务器的文件名,不用提交。
log命令
命令说明:显示版本库文件的日志信息
使用方法:log [PATH] log URL[@REV] [PATH…]
使用实例:[root@samba test]# svn log T*(一般不要使用通配符,除非该文件目录下只有一个文件)
[root@samba test]# svn log svn://192.168.31.131/svntest/trunk/src/com/ant/test/Test3.java
info命令
命令说明:显示本地或者远程服务器文件的详细信息
使用方法:info [TARGET[@REV]…]
使用实例:[root@xxx test]# svn info Test.java(可以使用通配符)
list(别名:ls)命令:
命令说明:显示版本库目录的实体,包括目录下的子目录和文件。
使用方法:list [TARGET[@REV]…];
使用实例:[root@samba ant]# svn list [test] (不建议使用通配符,除非你的目录开头字母是不重复的,否则分不清目录下文件的归属)
help(别名:?,h)命令
命令说明:对svn命令或者使用程序的一种描述。
使用方法:help [SUBCOMMAND…];
使用实例:[root@samba ~]# svn ci –help(不可以使用通配符)
mkdir命令:
命令说明:在SVN版本控制下创建目录。
使用方法:mkdir PATH…;mkdir URL…
使用实例:[root@xxx]# svn mkdir test3(不可以使用通配符)
[root@samba ant]# svn mkdir -m “create dir” svn://192.168.31.131/svntest/trunk/src/com/ant/test4
注:第一种方式创建完目录之后,需要提交,第二种直接将目录创建在版本库的URL下,不需要提交尽。提交目录或文件时加上 -m 参数,否则会提示如下错误:
status(别名:stat,st)命令
命令说明:打印SVN工作目录和文件状态。
使用方法:status [PATH…];
使用实例:[root@samba ant]# svn status -v *(可以使用通配符)
注:在执行status命令时,建议强制加上“-v”命令参数,第一列保持相同,第二列工作版本号,第三列最后一次修改的修改人,第四列最后一次修改的版本号。
copy(别名:cp)命令
命令说明:备份历史。
使用方法:copy SRC[@REV]… DST;
使用实例:[root@samba test]# svn cp Test3.java Test4.java(不可以使用通配符)
[root@samba test]# svn cp -m “ss” Test3.java svn://192.168.31.131/svntest/trunk/src/com/ant/test2/Test4.java
注:第一种方式需要手动提交,第二种方式可以自动提交。
update(别名:up)命令
命令说明:将服务器的变更引入本地项目。
使用方法:update [PATH…];
使用实例:[root@samba test]# svn up t*(可以使用通配符)
diff(别名:di)命令:
命令说明:比较两个版本的差异。
使用方法:diff [-c M | -r N[:M]] [TARGET[@REV]…];
diff [-r N[:M]] –old=OLD-TGT[@OLDREV] [–new=NEW-TGT[@NEWREV]] [PATH…]
diff OLD-URL[@OLDREV] NEW-URL[@NEWREV]
使用实例:[root@samba test]# svn di T*(可以使用通配符) [root@samba test]# svn di -r 20:18 T*(可以使用通配符)
注:第一种情况是与本地版本比较,第二种情况是显示指定版本的比较。
merge命令
命令说明:将两个指定的版本差异合并到当前的工作目录文件。
使用方法:merge sourceURL1[@N] sourceURL2[@M] [WCPATH]; merge sourceWCPATH1@N sourceWCPATH2@M [WCPATH];
merge [-c M[,N…] | -r N:M …] SOURCE[@REV] [WCPATH]
使用实例:[root@samba test]# svn merge -r 20:18 Test3.java(不建议使用通配符)
注:当两个文件产生冲突的时候,需要先处理冲突,再执行合并命令。
revert命令
命令说明:恢复原始未改变的工作副本文件 (恢复大部份的本地修改)。
使用方法:revert PATH…
使用实例:[root@samba test]# svn revert Test3.java(不建议使用通配符) [root@samba test]# echo “dd” Test3.java(数据准备)
blame(别名:praise,annotate,ann)命令
命令说明: 输出指定文件带有版本号的内容和作者在线信息。
使用方法:blame TARGET[@REV]…
使用实例:[root@samba test]# svn blame Test.*(可以使用通配符)
注:只能执行文件,不能执行目录。
export命令:
命令说明:采用复制的方式创建一个不在SVN版本控制下的树。
使用方法:export [-r REV] URL[@PEGREV] [PATH]
export [-r REV] PATH1[@PEGREV] [PATH2]
使用实例:[root@samba ant]# svn export . test5(不可以使用通配符)
注:创建之后需要提交。
import命令:
命令说明:提交一个不在版本控制下的树或者文件到版本库。
使用方法:import [PATH] URL
使用实例:[root@samba ant]# svn import -m “sss” svn://192.168.31.131/svntest/trunk/src/com/ant/test5(不可以使用通配符)
cat命令:
命令说明:输出指定文件的内容(URLs也必须指定到文件类型)。
使用方法:cat TARGET[@REV]…
使用实例:[root@samba ant]# svn cat svn://192.168.31.131/svntest/trunk/src/com/ant/test Test3.java(可以使用通配符)
changelist(别名:cl)命令:
命令说明:带有名称的文件关联列表。
使用方法:changelist CLNAME TARGET… changelist –remove TARGET…
使用实例:[root@samba test]# svn changelist T*(可以使用通配符)
switch(别名:sw)命令:
命令说明:带有名称的文件关联列表。 使用方法:switch URL[@PEGREV] [PATH] switch –relocate FROM TO [PATH…] 使用实例:[root@samba trunk2]# svn switch svn://192.168.31.131/svntest/trunk/.(不建议使用通配符) [root@samba /]# svn mkdir trunk2(目录准备) [root@samba /]# cd trunk2(目录准备)