虽然我比较喜欢使用git,可是因为公司不少的东西都仍是使用的svn,因此仍是会使用比较多的svn来管理东西,下面我就平时对svn的一些使用来作一些总结,利人利己。python
由于平时都是在linux上使用,因此都时命令行的使用方式。linux
svn是“集中式”的版本管理工具,要进行操做时必须同服务器保持链接,并且只能有一个服务器,可是相对于git,你能够值从服务器获取你所关心的部分目录下的文件。nginx
因为有“中心化”的思想,因此svn的版本号是一个递增的整数,从1开始,每提交一次就会增长1,并且因为你多是只获取了部分文件夹,因此在本地查看日志的时候不会看到所有版本号的信息。git
svn的“分支”和“标签”是同样的,都是一个目录,名称不同都是依靠管理来进行区分的。bash
svn的忽略没有配置文件,须要向服务器进行说明,并且比较麻烦(我尚未使用过)。服务器
svn的检出使用命令“svn checkout url”进行,若是服务器要求,还须要输入用户名和密码,固然还有一些更多的参数,例如检出到哪个目录啊、指定版本啊什么的,具体的在使用时查看便知道。svn
在成功操做检出以后即可以获得所指定的仓库的最新版本了,在目录内能够查看一些信息以及作文件修改了。工具
在工做空间里面使用命令“svn log”查看当前目录的全部日志,也能够输入具体的文件名查看指定问jain的日志效果相似于url
$ svn log ------------------------------------------------------------------------ r1313 | sxq | 2016-07-29 18:34:06 +0800 (Fri, 29 Jul 2016) | 1 line 20160729 ------------------------------------------------------------------------ r1301 | sxq | 2016-07-22 18:07:23 +0800 (Fri, 22 Jul 2016) | 1 line 20160722 ------------------------------------------------------------------------ r1287 | sxq | 2016-07-15 17:50:29 +0800 (Fri, 15 Jul 2016) | 1 line 20160715
这里的“r1313”中的“1313”就是版本号spa
使用“svn up”同服务器上的数据保持一致,更新数据,若是产生冲突会询问解决方式,结束后会给出最新的版本号是多少。
$ svn up Updating '.': At revision 1325.
有不少时候都须要查看差别,尽管已经有不少其余的查看差别的方式,可是使用“svn diff <文件> -r<版本号>:<版本号>”或者将未提交版本同仓库版本比较的方式仍是一种颇有用的方式
通常在查看两个版本区别以前都会先查看文件有那一些版本以及版本提交说明(svn log)
$ svn diff 安装说明-步骤.adoc -r28:20 Index: 安装说明-步骤.adoc =================================================================== --- 安装说明-步骤.adoc (revision 28) +++ 安装说明-步骤.adoc (revision 20) @@ -8,7 +8,7 @@ 先配置安装源,而后运行下面命令 .......................... -yum install mariadb mariadb-devel mariadb-libs mariadb-server apr apr-util apr-devel apr-util-devel apr-util-openssl openssl openssl-devel psmisc net-tools policycoreutils-python nginx-1.8.1-1.el7.ngx.x86_64.rpm +yum install mariadb mariadb-devel mariadb-libs mariadb-server apr apr-util apr-devel apr-util-devel apr-util-openssl openssl openssl-devel psmisc net-tools nginx-1.8.1-1.el7.ngx.x86_64.rpm ..........................
svn的提交默认只会提交对文件内容的修改,对于文件增删或者移动位置等等,须要先使用命令进行处理。
提交的时候须要使用命令“svn commit -m "说明" ”,说明是用来在之后查看日志的时候知道此次提交都作了些什么,基于管理目的。
对于文件增删的状况,使用“svn status”查看的时候,会看到文件的状态为?或者!,这个时候使用命令
svn add `svn status |grep ? |awk '{print $2}'` svn delete `svn status |grep ! |awk '{print $2}'`
添加或删除
分支和标签本质是同样的,使用管理手段进行区分,产生到不一样的目录便可。
使用命令“svn copy <src> <dest>”进行生成,而后提交,这样新文件就会保留所具备的日志。
本文只是说到了不少经常使用的功能,还有不少没有说到的不经常使用的功能,好比冲突解决、版本回退等。等到后续的使用中去探索。