Linux使用技巧总结(八)

版本控制器svn的本地多项目管理方法(Fedora 25)

服务器部署

(1)安装svn

dnf install -y subversion 

(2)创建SVN多版本库

mkdir $HOME/svn
svnadmin create $HOME/svn/project1
svnadmin create $HOME/svn/project2

在相应目录下的conf文件夹中有如下三个文件:
svnserve.conf: svn服务配置文件下
passwd: 用户名密码文件
authz: svn权限配置文件

(3)配置SVN(为便于配置管理,将所有版本库的“账号密码”和“登陆用户权限”等控制文件指定为同一个配置文件)

cp $HOME/svn/project1/conf/passwd $HOME/svn/
cp $HOME/svn/project1/conf/authz $HOME/svn/

修改每个项目版本库的/conf/svnserve.conf(访问控制文件):

vi $HOME/svn/project1/conf/svnserve.conf
vi $HOME/svn/project2/conf/svnserve.conf

修改内容如下:
默认#anon-access = read去掉首字符#read改为none,表示不允许匿名访问
默认#auth-access = write去掉首字符#
默认# password-db = passwd改为password-db = ../../passwd,含义是指向$HOME/svn/passwd
默认# authz-db = authz改为:authz-db = ../../authz,含义是指向$HOME/svn/authz
修改后的文件内容如下:

anon-access = none
auth-access = write
password-db = ../../passwd
authz-db = ../../authz

(4)修改$HOME/svn/passwd文件内容:

[左为用户名、右为密码]
user1 = user1123 
user2 = user2123 

(5)修改$HOME/svn/authz文件内容:

[groups]
project1=user1
project2=user1,user2
%指定所有的版本库默认只读,root可读写 
[/] 
* = r 
root = rw 
%user1可读写project1版本库,@的含义可以用指针帮助理解
[project1:/] 
@project1 = rw 
%user1,user2可读写project2版本库 
[project2:/] 
@project2 = rw 

(6)启动服务器$HOME/svn

svnserve -d -r $HOME/svn % -d表示后台运行,-r表示服务器的根目录

即可启动$HOME/svn/中的所有项目版本库project1,project2

(7)项目初始化

svn import $HOME/yourFile file://$HOME/svn/project1

将会拷贝目录yourFile到版本库的project1下

svn list file://$HOME/svn/project1	%用来查看版本库中的文件

(8)关闭svn

killall svnserver

注意:修改authzpasswd文件后,需要关闭和重启svn服务器

客户端操作

(1)将文件从版本库取出到本地目录
首先进入你想存放取出文件的位置,然后

svn checkout svn://192.168.0.100/project1	%接着输入用户名和密码

这里的数字代表本地电脑的IP,用ifconfig命令查询,IP后紧跟的是$HOME/svn目录以下的项目名(这是因为在启动服务器时已经将$HOME/svn设为根目录了)

svn checkout svn://192.168.0.100/project1 -r 5 	%取出指定版本的文件

(2)往版本库中添加新的文件,更新版本库

svn add xxx.txt     %此命令得在checkout命令执行的目录中才能生效
svn commit   xxx.txt -m "add 123.txt"  %""中填写备注,只提交123.txt 
svn commit -m "LogMessage"   	%提交当前目录下的所有文件

(3)删除文件,更新版本库

svn delete xxx.txt
svn ci -m "delete testfile"

(4)更新本地工作副本

svn update -r 200 xxx.txt 	%将本地的文件xxx.txt还原到版本200 
svn update	%如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本

(5)查看文件修改记录,及其版本号的变化

svn log xxx.txt

(6)查看文件详细信息(路径、版本、时间、提交者等信息)

svn info xxx.txt

(7)比较版本间的差异

svn diff -r 2:102 xxx.txt 	%对版本2和版本102比较差异

(8)版本库下的文件和目录列表

svn list file://$HOME/svn/project1

(9)创建新目录

svn mkdir myDirectory
svn commit -m "Add myDirectory"

(9)移动文件至其他目录

mv 001.txt ../ADirectory
svn add ../ADirectory/001.txt
svn delete 001.txt
svn commit -m "Move 001.txt to ADirectory"

将svn服务器置于/opt目录下的注意事项

(1)必须以超级用户的身份(su或sudo)开启服务器
(2)普通用户身份可以提交新版本

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值