版本控制器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
注意:修改authz
和passwd
文件后,需要关闭和重启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)普通用户身份可以提交新版本