前言:关于Linux(Unix)系统下的SVN命令使用的文章,在网络上有很多,大多数都千篇一律,把SVN命令一写,有些命令连一个说明或者实例都没有,包括执行的环境也没有任何的说明,对部分新学习资料的人来讲,有时候就是一头雾水。下面就从SVN的帮助文档开始,让我们一起来了解SVN命令在Linux(Unix)下的使用。
注:部分说明借助于网络资料。
一、环境配置:
CentOS系统:32位、6.3版本;
主机名:samba;
虚拟机:VMware® Workstation 9.0.0 build-812388;
SVN版本:svnserve, version 1.6.1 (r37116);
SVN服务器地址:192.168.31.131;
实验客服端地址:192.168.31.131;
二、查看SVN管理目录下的项目:
利用SVN客户端,查看SVN下的管理项目,
从图中可以看出:有多个项目,接下来我们就以 trunk 本身为例。
三、查看SVN的可用命令:
首先我们查看SVN工具都有哪些可用的命令:
[root@samba ~]# svn --help
显示结果如图:
图中所显示的命令都是可执行的命令。
四、命令执行:
每个命令都分为:查看帮助、命令说明、使用方法、命令参数、使用实例、过程结果、问题说明等。
1、checkout(别名:co)命令:
查看帮助:[root@samba ~]# svn co --help;
命令说明:Check out a working copy from a repository.
即:剪出版本库中的可用的工作目录;
使用方法:checkout URL[@REV]... [PATH];
命令参数:分为 Valid options 和 Global options两种;
Valid options:
Global options:
使用实例:[root@samba /]# svn co svn://192.168.31.131/svntest/trunk
过程结果:
问题说明:略;
注:只要这个过程成功了,基本上你的项目就下载到客服端了。后面的实例都以 trunk 项目为例做命令的验证。
2、add命令:
查看帮助:[root@samba ~]# svn add --help;
命令说明:Put files and directories under version control, scheduling them for addition to repository. They will be added in next commit.
即:这个说明的红色加粗部分很重要,后面说明;
使用方法:add PATH...;
命令参数:分为 Valid options 和 Global options两种(help命令可查,此处略);
使用实例:[root@samba ant]# svn add *.java(可以使用通配符)
ant目录的完整目录是:/trunk/src/com/ant,在添加项目之前我们需要执行 cd /trunk/src/com/ant 命令,否则会出现问题。
过程结果:
问题说明 1、重复添加问题:
过程结果:
提示结果:‘Test.java’已经处于svn版本控制执行。
问题说明 2、退出 /trunk/src/com/ant 目录,再执行svn add *.java:
过程结果:
问题说明 3、在 /trunk/src/com/ant 目录下新建目录 test,在 test 目录下新建 Test.java 文件,然后在 test 目录下再执行 svn add *.java:
过程结果:
我们回到 test 目录上级目录 ant,在执行 svn add *
过程结果:
可以看到:我们新建的目录和文件都添加成功。
注:在此实例中,我们需要注意的是,我们大部分操作都必须处于svn版本控制的工作目录。
3、commit(别名:ci)命令:
查看帮助:[root@samba ~]# svn commit --help;
命令说明:Send changes from your working copy to the repository.
即:将你的变更从你的SVN工作目录提交到版本库;
使用方法:commit PATH...;
命令参数:分为 Valid options 和 Global options两种(help命令可查,此处略);
使用实例:[root@samba ant]# svn ci -m “commit dir and file” test(可以使用通配符,可同时提交目录和文件)
ant目录的完整目录是:/trunk/src/com/ant,执行 cd /trunk/src/com/ant 命令进入ant目录。
过程结果:
问题说明 1、在没有对文件改动之前,重复提交问题:
在提交之后你会发现,不会输出任何的执行命令信息,