参考博客
https://blog.51cto.com/13572654/2061661
https://blog.youkuaiyun.com/sm_wang/article/details/78656120
https://www.cnblogs.com/xulb597/archive/2012/07/18/2597311.html
https://www.cnblogs.com/liuxiaowei/p/8297268.html
一、修改版本仓库下的conf文件夹下的配置文件及各配置文件的作用
- svnserve.conf 配置其他配置文件的作用
- passwd文件 配置用户密码 用户名=密码
- authz 文件 配置用户组和组权限
1、svnserve.conf 配置其他配置文件的作用
所有行都必须顶格
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
2、passwd文件 配置用户密码 用户名=密码
[/usrs]
lucifr = 123456
3、authz 文件 配置用户组和组权限
[groups]
用户组名=用户名1,用户名2
[/] //表示用户组名配置语句结束
@用户组名 = rw
* = r // 所有的组都具有读权限和写权限
二、对版本库的操作指令
1、打开制定的服务器 (版本库的svn目录)
svnserve -d -r /home/svn
2、用如下命令查看svnserve是否已经运行
ps aux | grep svnserve
3、关闭服务器
killall svnserve
4、将版本库checkout到本地目录 (在本地目录生成仓库副本)
svn checkout svn://电脑lo的本地IP地址/仓库名 --username 用户名
例: svn checkout svn://127.0.0.1/repository --username lucifr
三、对版本库的本地仓库副本的操作指令
以下指令都是在本地目录的仓库副本中执行 (/home/a123456/catkin_ws/src/repository)
1、向版本库中添加新的文件 或者 修改某个文件 (修改文件,也要执行下面两步)
svn add 文件名或目录 //把仓库副本中的文件添加的缓冲区
svn commit -m “本次操作的描述” 文件名或目录 // 把缓冲区中的文件添加的版本仓库
A表示 add
svn add * //对仓库下所有文件进行操作
svn commit -m “本次操作的描述” *
2、将仓库副本中的目录文件或者仓库本身 更新某个版本
svn update -r m 文件名或目录名
svn update // 如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。
svn update -r 200 file.cpp //将 仓库副本 中的文件test.php还原到版本200
svn update -r 200 //将 仓库副本 还原到版本200
3、查看仓库副本中 文件或者目录状态 (不是 版本仓库中文件或者目录状态)
svn status -v 文件名或目录
第一列显示工作版本号,第二和第三列显示最后一次修改的版本号和修改的用户名。
4、删除文件
svn delete file
svn ci -m '操作说明‘
D 表示 delete
5、比较差异
svn diff 文件名或目录名 //将修改的文件与基础版本比较
例如:svn diff file.cpp
svn diff -r m:n 文件名或目录名 //对版本m和版本n比较差异
例如:svn diff -r 200:201 test.php
6、查看仓库副本的文件的日志(显示这个文件的所有修改记录,及其版本号的变化)
svn log 文件名或目录名
7、仓库副本中的文件和目录列表 (不是 版本仓库中文件和目录列表 )
svn ls
8、查看 仓库副本及其文件的信息 (不是 版本仓库中文件文件的信息)
svn info 文件名或目录名 //查看
svn info //查看仓库副本信息
9、删除锁
svn cleanup
四、问题
1、svn add file 时,显示
svn: 警告: W150002: “”已纳入版本控制
svn: E200009: 因为一些目标已经版本化,所以不能增加全部目标
svn: E200009: 此请求操作的目标非法
解决办法: svn add file --force //强制add
2、查看仓库副本的URL
在仓库副本目录下 svn info