1首先介绍下svn的使用方式:

  1.   命令行工具,直接在终端写svn命令
  2.    tortoiseSVN客户端,可视化工具
  3.    idea svn插件

2 分别介绍每个命令都怎么用,有哪些要注意的地方

  • 检出:checkout  服务器---》本地

注意:每个命令几乎都有一个缩写形式,检出就是co

svn co http://localhost/svn/tes11  [本地路径] --username xxx
  • 导出:export 服务器--》本地  ,

区别于检出,这种就是下载到本地复制了一份,并且是不含有svn信息的,所以它不是一个svn仓库,导出到本地后,只是一个单纯的项目,不跟svn有任何关联

svn export http://localhost/svn/tes11  [本地路径] --username xxx
  • 导入:import 本地--》服务器, 类似于idea 项目右击--subversion--share project
  • 添加文件到svn服务器: add

 只是添加到svn的一个准备工作,等要提交的文件都执行add后,再统一commit提交,

这感觉就像数据库事务一样,没有执行commit动作之前是没有任何实际意思,不管是对服务器,还是对数据库都是没有实质性改变的,

所以像增删改这类工作,往往会跟着一个commit,update等动作

 -m "xxx" 注释是一定要写的,哪怕为空串也要写,这就是要求,规范,约束

svn add test.txt
svn commit  test.txt  -m ""
  • 提交 commit   ci  
  • 更新 update
svn update aaa.txt
  • 删除文件 delete
svn delete test.txt
svn commit   -m ""
  • 加锁/解锁  lock unlock
svn lock tes2.txt -m ""
svn unlock test2.txt
  • 比较文件差异  diff

本地和服务器最新版本作比较,或者指定要比较的版本号

svn diff test2.txt
svn diff -r 220:221 test2.txt
  • 看文件状态 status   st

关于这里可无网络时查看,查看的是本地和服务器上文件的状态

svn status -v
  • 查看文件的提交日志信息 log
F:\ideaWork\xx-api>svn log pom.xml                                                                                                                                                                                                      ------------------------------------------------------------------------                                                                                                                                                                    r2597 | aaiusx| 2020-01-02 17:57:12 +0800 (周四, 02 1月 2020) | 1 line                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 ------------------------------------------------------------------------                                                                                                                                                                     r2594 | xiu.lj | 2020-01-02 17:15:03 +0800 (周四, 02 1月 2020) | 1 line                                                                                                                                                                                                                                                                                                                                                                                                                 修改项目名                                                                                                                                                                                                                                   ------------------------------------------------------------------------                                                                                                                                                                     r2593 | Sen.Qi | 2020-01-02 17:12:05 +0800 (周四, 02 1月 2020) | 1 line
  •  查看文件信息 info
svn info test2.txt
  •  查看列表信息list
svn list http://xxx/svn/test
  • 新建目录mkdir
svn mkdir xxx
svn update
  • 恢复本地修改revert,本地回滚
svn revert [--recursive]  test2.txt
  • 拷贝一份到新的svn地址 switch,新地址不存在会自动创建

 idea中的relocate,就类似这里的switch

svn switch 原地址  新地址
  • 冲突解决 resolved
svn resolved xxx
svn update
  • 直接查看svn上某个文件的内容 cat
svn cat test2.txt
  • 复制一份 copy,感觉和switch结果上是一样的,新地址不存在会自动创建
svn copy 原地址  新地址