SVN进阶应用
ls、st、log、info
svn list --列出当前目录下处于版本控制的所有文件(添加-v显示更详细信息 --recursive 强制递归文件中的信息)
svn status --列出工作副本中的文件状态
svn log --查看提交日志
svn info --查看工作副本及文件的详细信息
原博客地址
svn status中的状态说明
遇到问题:svn log 后显示 svn: E220001: 条目不可读
解决:服务器的权限配置文件conf/svnserve.conf 中设置anon-access = none 即可. 然后重启Subversion 服务.
多版本库解决方案
解决方案A
场景:当只有一台服务器当做版本库的时候,同一个服务器要开很多次服务,但是每一种服务对应只能一个端口号,所以当我们创建很多版本库的同时,再启动服务的时候也要手动分配一个端口号,svn默认端口3690
端口号知识
回顾创建版本库: svnserve create 版本库名称
为其他版本库启动服务
svnserve -d -r 路径1 --listen-port 3691
svnserve -d -r 路径2 --listen-port 3692
注意:当同一个服务器有多个版本库,在使用checkout 后的url 要加上版本号,否则或链接默认端口号3690
killallserve –关闭所有服务
使用这种手动修改端口号的方法只适用于少量版本库
解决方案B
启动服务的路径为存放各个版本库的父级目录版本库
svnserve -d -r 父级目录
只使用一个端口号一次性启动了所有的版本库,条件时所有版本库要建立在一个目录下
唯一要注意的是,当我们只用一个端口号对接多个服务器,在checkout下有点不同
(客户端)
svn co svn:0.0.0.0/需要的版本库
总结
svn copy
复制:工作副本与工作副本之间的复制。。。。
在这之间需要理清楚复制从哪到哪
作副本与工作副本
(单个文件复制)
svn copy index.html copy.html
<!--复制到copy.html新文件中-->
(批量文件复制)
svn copy index.html ./复制到的路径
<!--只能复制到不同目录文件中,因为文件中文件名id唯一-->
<!-- .表示当前目录 -->
工作副本到服务器版本库
这种不经过本地的代码直接复制到版本库中,成功后将版本号+1
svn copy index.htm svn:0.0.0.0/版本库名称/目标 -m "copy a file"
注意:
服务器版本库到工作副本
svn copy svn:0.0.0.0/版本库名称/目标 复制到的文件
<!--这种操作支持跨库操作-->
可用从其他工作副本 获取到线上版本库
版本库到版本库
继续阅读——>
主干版本与分支版本
在主干版本目录中创建一个目录区分主版本和分支版本
创建一个主干版本
svn cp svn://0.0.0.0/版本库名称/ svn://0.0.0.0/版本库名称/trunk -m "setup a trunk"
创建一个分支版本
svn cp svn:0.0.0.0/版本库名称/版本库名称 svn:0.0.0.0/版本库名称/branch -m "create a branch"