目录 start
目录 end
|2018-07-10| 码云 | CSDN | OSChina
SVN
传统的中心化版本控制工具,能够精确控制每个目录的权限, Apache顶级项目
SVN 官网 | SVN中文网 Subversion 与版本控制 书籍
服务端安装
安装 svnadmin
svnadmin使用
参考 建立一个仓库
svnadmin create /yc/svn/rep-ops
备份和恢复
- 备份 svndump /svn/repos > a.dump
- 恢复 svnadmin load /svn/repos < a.dump
远程
- 增量备份
svnrdump dump http://192.168.10.200/svn/test/ --username kuangchengping --password 123456 -r 3:4 --incremental > b4.dump
- 恢复
svnrdump load http://192.168.10.200/svn/test/ --username kuangchengping --password 123456 < b4.dump
客户端安装
Ubuntu
sudo apt install subversion
安装后可使用的命令就是svn
使用
- 下拉代码
svn co URL
添加文件
svn add filename
, 或者*.java
是添加当前目录下java文件,- 或者 文件夹, 一般使用文件夹好点,也就是src目录
- 强制添加所有文件
svn add * --force
- 将改动的文件提交到版本库
svn ci -m "update"
- 因为是中心化的仓库, 所以提交就是推送到总仓库了, 不像Git那样先提到到本地仓库, 然后推送至远程仓库
更新本地代码
svn up
svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本
删除文件
svn remove path
配置忽略文件
svn propedit svn:ignore 项目文件夹
会打开默认配置, 和gitignore一样的配置, 然后保存即可- 文件夹就是项目, 所以要在项目根目录的上级目录之心这个命令
- 如果上面没有调起编辑器, 就要在 .bashrc 中
export SVN_EDITOR=vim
- 然后提交到仓库, 即可完成 忽略文件的配置, 为了可见性, 一般和.gitignore一样的配置即可
- 导入忽略文件
svn propset -F .svnignore .
- 导入忽略文件
提交
查看仓库
svn log | less
这样能更为方便和干净svn cat -r 版本号 文件
输出某个版本的某文件(文件必须在本地存在)svn diff -r 版本号:版本号 文件
对比两个版本的某文件
处理冲突
冲突的产生: 因为多个开发人员进行修改了同一个文件夹(修改,删除文件夹), 同一个文件.
树冲突
多个开发人员修改了同一个文件夹, 并且一方修改, 一方做了删除
- 标记冲突已解决(使用本地的状态, 本地该文件的状态是Delete, 提交后服务端对应的文件就会被删除)
svn resolve --accept=working file/dir