实战一:svn在linux搭建以及版本库__分支、主干

svn://47 svn协议__
svn安装
安装详细操作可参照 https://www.cnblogs.com/mymelon/p/5483215.html

安装过程中遇到的坑
1、svnserve: Can’t bind server socket: Address already in use、svn默认端口被占用
执行 killall svnserve 杀掉一切进程、释放占用端口
重新启动版本库即可 svnserve -d -r /opt/svn/repos
参照文档
https://www.cnblogs.com/linux-super-meng/archive/2014/11/18/4106305.html
2、 //svnserve.conf 文件每行有空格、访问报错__因此不能有空格

为什么要有svn
多人修改同一个文件__方便同步文件内容、回退到历史版本内容
//服务器端一个文件__多人玩的是副本

文件提交到svn后的格式__
一种为FSFS,一种为BDB
把文件上传到SVN版本库后,上传的文件不再以文件原来的格式存储,而是被svn以它自定义的格式压缩成版本库数据,存放在版本库中。
如果是FSFS格式,这些数据存放在版本库的db目录中,里面的revs和revprops分别存放着每次提交的差异数据和日志等信息

怎把指定文件夹上传到SVN服务器?
一般来说新建项目是在服务器端操作的,每个项目作为一个独立的版本库进行管理。
当然你可以可以把这个项目当作服务器上某个版本库下面的一个文件夹进行管理,但是会导致这个项目的版本号看起来是不连续的,因为SVN是用版本号标注整个版本库的状态。
你如果确定想把这个项目当成某个版本库的一个文件夹进行管理的话,那么就这么做:
首先,用TSVN检出那个版本库到本地;
然后,将这个项目复制到本地这个版本库的某个文件夹下面;
最后,用TSVN增加并提交这个文件夹。

svn命令详解
1、服务端命令:svnserver -? \svnadmin -? 版本库的创建、导出、导入\svnlook -?
客户端命令:svn -? 版本库的检出、更新、提交、重定向

//版本库数据保存的类型:__
//版本库(一个特殊的文件夹)的创建以及删除
svnadmin create --fs-type dbd\fsfs 版本库名称
rm -rvf aa

//客户端命令访问服务器
svn checkout svn://ip 检出
svn checkout -r 4 //检出到版本号为4的文件

2、authz 配置用户组以及用户组权限
[版本库名:/]
用户1=rw
passwd 配置用户名和密码
svnserve.conf 配置默认权限、权限配置文件和密码配置文件

普及linux知识:__ /etc/rc.local 可以把命令放入文件中、自启动

//有关svn的知识术语-----
文件状态:__无版本控(红色)、常规、冲突、删除、锁定
常见术语:版本库、检出、工作副本、更新、提交、版本号(逐一累加…)
a提交变为1、b提交变为2、c直接更新为2
工作副本还原:__svn revert * //恢复所有文件

3、高级操作:
//开分支
把当前版本库分为主干和分支、不再是工作副本的复制__1和2分为2条线进行
//svn cp svn://47.98.106.22/20180827 svn://47.98.106.22/20180827/trunk -m “12”
不支持跨版本库、相当于建立一层目录
进入当前版本库、执行 svn up

//冲突产生以及冲突解决
二进制文件:工作副本长时间未修改、a和b修改的是同一行__实时更新工作副本可避免
树冲突:图片冲突、无法定位到具体一行
//冲突处理
svn up
show all options: df 显示差异
mc 保留自己 p
svn resolve a.txt 选择 __报告已解决、svn resolve a.txt
<<<<<<< .mine
1223456655555=======
1223456644455>>>>>>> .r21
//锁定文件
svn lock 防止其他人提交

钩子:版本库中 hooks文件、去掉tmpl会触发的shell脚本__
cp -a bb.tmpl bb \chmod +x bb 赋予可执行权限__

4、客户端命令的实际操作:__
//工作副本内部的操作__
svn copy a.txt b.txt //b.txt新生成
svn copy -r 4 a.txt b.txt //这条线上、4之前的复制

svn list 列出版本下所有文件
svn status

//创建文件、添加到svn版本库__实际使用少
touch a.txt b.txt c.txt
//svn add a.txt svn add a\文件夹 文件递归增加
svn add *
//提交文件 svn ci -m “” a.txt
//跟新文档 svn up -r 1 a.txt 更新到版本号1
//删除 svn rm a.txt -m “” \svn ci -m “”

//版本差异比较__
svn diff -版本差异比较、利用隐藏目录 .svn
svn di a.txt 显示比较内容__
svn cat 查看版本库中文件__但是不检出

命令学习文档:
https://blog.csdn.net/qq_27968607/article/details/55253997

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值