<p>前言:关于Linux(Unix)系统下的SVN命令使用的文章,在网络上有很多,大多数都千篇一律,把SVN命令一写,有些命令连一个说明或者实例都没有,包括执行的环境也没有任何的说明,对部分新学习资料的人来讲,有时候就是一头雾水。下面就从SVN的帮助文档开始,让我们一起来了解SVN命令在Linux(Unix)下的使用。</p><p>注:部分说明借助于网络资料。</p><p>一、环境配置:</p><p> CentOS系统:32位、6.3版本;</p><p> 主机名:samba;</p><p> 虚拟机:VMware® Workstation 9.0.0 build-812388;</p><p> SVN版本:svnserve, version 1.6.1 (r37116);</p><p> SVN服务器地址:192.168.31.131;</p><p> 实验客服端地址:192.168.31.131;</p><p>二、查看SVN管理目录下的项目:</p><p> 利用SVN客户端,查看SVN下的管理项目,</p><p> <img src="/up_pic/201812/140400398124.jpg" title="140400398124.jpg" alt="1.jpg"/></p><p> 从图中可以看出:有多个项目,接下来我们就以 trunk 本身为例。</p><p>三、查看SVN的可用命令:</p><p> 首先我们查看SVN工具都有哪些可用的命令:</p><p> [root@samba ~]# svn --help</p><p> 显示结果如图:</p><p> <img src="/up_pic/201812/140400497976.jpg" title="140400497976.jpg" alt="2.jpg"/></p><p> 图中所显示的命令都是可执行的命令。</p><p>四、命令执行:</p><p> 每个命令都分为:查看帮助、命令说明、使用方法、命令参数、使用实例、过程结果、问题说明等。</p><p> 1、checkout(别名:co)命令:</p><p> 查看帮助:[root@samba ~]# svn co --help;</p><p> 命令说明:Check out a working copy from a repository.</p><p> 即:剪出版本库中的可用的工作目录;</p><p> 使用方法:checkout URL[@REV]... [PATH];</p><p> 命令参数:分为 Valid options 和 Global options两种;</p><p> Valid options:</p><p><img src="/up_pic/201812/140401202130.jpg" title="140401202130.jpg" alt="1.jpg"/></p><p> </p><p> Global options:</p><p><img src="/up_pic/201812/140401247322.jpg" title="140401247322.jpg" alt="2.jpg"/></p><p> </p><p> 使用实例:[root@samba /]# svn co svn://192.168.31.131/svntest/trunk</p><p> 过程结果:</p><p> <img src="/up_pic/201812/140401376615.jpg" title="140401376615.jpg" alt="3.jpg"/> </p><p> 问题说明:略;</p><p> 注:只要这个过程成功了,基本上你的项目就下载到客服端了。后面的实例都以 trunk 项目为例做命令的验证。</p><p> 2、add命令:</p><p> 查看帮助:[root@samba ~]# svn add --help;</p><p> 命令说明:Put files and directories under version control, scheduling them for addition to repository. They will be added in next commit.</p><p> 即:这个说明的红色加粗部分很重要,后面说明;</p><p> 使用方法:add PATH...;</p><p> 命令参数:分为 Valid options 和 Global options两种(help命令可查,此处略);</p><p> 使用实例:[root@samba ant]# svn add *.java(可以使用通配符)</p><p> ant目录的完整目录是:/trunk/src/com/ant,在添加项目之前我们需要执行 cd /trunk/src/com/ant 命令,否则会出现问题。</p><p> 过程结果:</p><p> <img src="/up_pic/201812/140402518493.jpg" title="140402518493.jpg" alt="1.jpg"/></p><p> 问题说明 1、重复添加问题:</p><p> 过程结果:</p><p> <img src="/up_pic/201812/140403033650.jpg" title="140403033650.jpg" alt="2.jpg"/></p><p> 提示结果:‘Test.java’已经处于svn版本控制执行。</p><p> 问题说明 2、退出 /trunk/src/com/ant 目录,再执行svn add *.java:</p><p> 过程结果:</p><p><img src="/up_pic/201812/140403098135.jpg" title="140403098135.jpg" alt="3.jpg"/></p><p> </p><p> 提示结果:‘.’不在工作目录。</p><p> 问题说明 3、在 /trunk/src/com/ant 目录下新建目录 test,在 test 目录下新建 Test.java 文件,然后在 test 目录下再执行 svn add *.java:</p><p> 过程结果:</p><p> <img src="/up_pic/201812/140403157403.jpg" title="140403157403.jpg" alt="4.jpg"/> </p><p> 提示结果:‘.’不在工作目录。</p><p> 我们回到 test 目录上级目录 ant,在执行 svn add *</p><p> 过程结果:</p><p><img src="/up_pic/201812/140403363937.jpg" title="140403363937.jpg" alt="1.jpg"/></p><p> </p><p> 可以看到:我们新建的目录和文件都添加成功。</p><p> 注:在此实例中,我们需要注意的是,我们大部分操作都必须处于svn版本控制的工作目录。</p><p> 3、commit(别名:ci)命令:</p><p> 查看帮助:[root@samba ~]# svn commit --help;</p><p> 命令说明:Send changes from your working copy to the repository.</p><p> 即:将你的变更从你的SVN工作目录提交到版本库;</p><p> 使用方法:commit PATH...;</p><p> 命令参数:分为 Valid options 和 Global options两种(help命令可查,此处略);</p><p> 使用实例:[root@samba ant]# svn ci -m “commit dir and file” test(可以使用通配符,可同时提交目录和文件)</p><p> ant目录的完整目录是:/trunk/src/com/ant,执行 cd /trunk/src/com/ant 命令进入ant目录。</p><p> 过程结果:</p><p> <img src="/up_pic/201812/140403497682.jpg" title="140403497682.jpg" alt="2.jpg"/> </p><p> 问题说明 1、在没有对文件改动之前,重复提交问题:</p><p> 在提交之后你会发现,不会输出任何的执行命令信息,是因为该命令只对有变更的记录进行提交。</p><p> 注:在此实例中,我们需要注意的是,我们大部分操作都必须处于svn版本控制的工作目录。</p><p> 4、lock命令:</p><p> 查看帮助:[root@samba ~]# svn lock --help;</p><p> 命令说明:Lock working copy paths or URLs in the repository, so that no other user can commit changes to them.</p><p> 即:将锁住SVN工作目录或者版本库的URL,以使没有人可以提交目录或者文件的变更信息;</p><p> 使用方法:lock TARGET...;</p><p> 命令参数:分为 Valid options 和 Global options两种(help命令可查,此处略);</p><p> 使用实例:[root@samba test]# svn lock -m “lock dir and file” Test.java(可使用通配符,比如:T*.*)</p><p> test目录的完整目录是:/trunk/src/com/ant/test,执行 cd /trunk/src/com/ant/test 命令进入test目录。</p><p> 过程结果:</p><p> <img src="/up_pic/201812/140404214404.jpg" title="140404214404.jpg" alt="1.jpg"/> </p><p> 问题说明 1、进入SVN工作目录下的ant目录,对整个test目录进行加锁:</p><p> 过程结果:</p><p><img src="/up_pic/201812/140404251895.jpg" title="140404251895.jpg" alt="2.jpg"/></p><p> </p><p> 提示结果:在你的版本中存储的文件系统数据中,/trunk/src/com/ant/test 不是一个文件。</p><p> 问题说明 2、在你的加锁命令中,出现了非英文字符:</p><p> 过程结果:</p><p> <img src="/up_pic/201812/140404299633.jpg" title="140404299633.jpg" alt="3.jpg"/> </p><p> 提示结果:无效的UTF-8的序列号。</p><p> 5、unlock命令:</p><p> 查看帮助:[root@samba ~]# svn unlock --help;</p><p> 命令说明:Unlock working copy paths or URLs.</p><p> 即:解除SVN工作目录或者版本库URL的锁;</p><p> 使用方法:unlock TARGET...;</p><p> 命令参数:分为 Valid options 和 Global options两种(help命令可查,此处略);</p><p> 使用实例:[root@samba test]# svn unlock -m “lock dir and file” Test.java(可使用通配符,比如:T*.*)</p><p> test目录的完整目录是:/trunk/src/com/ant/test,执行 cd /trunk/src/com/ant/test 命令进入test目录。</p><p> 过程结果:</p><p><img src="/up_pic/201812/140404544910.jpg" title="140404544910.jpg" alt="1.jpg"/></p><p> </p><p> 问题说明 1、对一个文件在不知情的情况下重复解锁:</p><p> 过程结果:</p><p><img src="/up_pic/201812/140404588116.jpg" title="140404588116.jpg" alt="2.jpg"/></p><p> </p><p> 提示结果:在SVN工作目录中,某文件没有被锁。</p><p> 注:综合4、5两个命令,如果出现以下情况:</p><p> <img src="/up_pic/201812/140405062060.jpg" title="140405062060.jpg" alt="3.jpg"/> </p><p> 说明你的文件在SVN服务器上已经被某个用户加锁,而在你自己的客户端的SVN工作目录中,该文件又已经被解锁,这种情况一般都采用终极解决方案,那就是要求该文件被锁用户登陆SVN服务器,直接将该文件解锁,然后在客户端重新下载该文件。</p><p> 注:在本地加锁或者解锁,记得提交到服务器。</p><p> 6、delete(别名:del, remove, rm)命令:</p><p> 查看帮助:[root@samba ~]# svn delete --help;</p><p> 命令说明:Remove files and directories from version control.(del, remove, rm)</p><p> 即:从SVN版本控制中删除文件或者目录;</p><p> 使用方法:delete PATH...;</p><p> delete URL...。</p><p> 命令参数:分为 Valid options 和 Global options两种(help命令可查,此处略);</p><p> 使用实例:[root@samba test]# svn delete Test.java(可使用通配符,比如:T*.*) --删除文件</p><p> [root@samba test]# svn delete test(可使用通配符,比如:t*) --删除目录</p><p> test目录的完整目录是:/trunk/src/com/ant/test,执行 cd /trunk/src/com/ant/test 命令进入test目录。</p><p> 过程结果:</p><p><img src="/up_pic/201812/140405414793.jpg" title="140405414793.jpg" alt="1.jpg"/></p><p><img src="/up_pic/201812/140405456782.jpg" title="140405456782.jpg" alt="2.jpg"/></p><p> </p><p> </p><p> 问题说明:略;</p><p> 注:执行上面的命令,只能删除SVN版本控制下的文件,不能删除目录,故删除目录时,应该采用Linux(Unix)系统的rm命令,同时删除后记得提交。</p><p> 7、move(别名:mv, rename, ren)命令:</p><p> 查看帮助:[root@samba ~]# svn move --help;</p><p> 命令说明:Move and/or rename something in working copy or repository.</p><p> 即:移动或者重命名SVN工作目录或者版本库;</p><p> 使用方法:move SRC... DST </p><p> 命令参数:分为 Valid options 和 Global options两种(help命令可查,此处略);</p><p> 使用实例:[root@samba test]# svn move Test.java Test2.java</p><p> [root@samba test]# svn move -m "ss" svn://192.168.31.131/svntest/trunk/src/com/ant/test/Test2.java svn://192.168.31.131/svntest/trunk/src/com/ant/test/Test3.java</p><p> test目录的完整目录是:/trunk/src/com/ant/test,执行 cd /trunk/src/com/ant/test 命令进入test目录。</p><p> 过程结果:</p><p> <img src="/up_pic/201812/140405595315.jpg" title="140405595315.jpg" alt="3.jpg"/> </p><p> 问题说明:略;</p><p> 注:执行上面的第一种实例命令记得提交。第二种命令是直接修改服务器的文件名,不用提交。</p><p> 8、log命令:</p><p> 查看帮助:[root@samba ~]# svn log --help;</p><p> 命令说明:Show the log messages for a set of revision(s) and/or file(s).</p><p> 即:显示版本库文件的日志信息</p><p> 使用方法:log [PATH]</p><p> log URL[@REV] [PATH...]</p><p> 命令参数:分为 Valid options 和 Global options两种(help命令可查,此处略);</p><p> 使用实例:[root@samba test]# svn log T*(一般不要使用通配符,除非该文件目录下只有一个文件)</p><p> [root@samba test]# svn log svn://192.168.31.131/svntest/trunk/src/com/ant/test/Test3.java</p><p> test目录的完整目录是:/trunk/src/com/ant/test,执行 cd /trunk/src/com/ant/test 命令进入test目录。</p><p> 过程结果:</p><p> <img src="/up_pic/201812/140406168378.jpg" title="140406168378.jpg" alt="4.jpg"/></p><p><img src="/up_pic/201812/140406205621.jpg" title="140406205621.jpg" alt="5.jpg"/> </p><p> </p><p> 问题说明 1、当你的SVN工作目录或者版本库的某个文件不存在时:</p><p> 过程结果:</p><p><img src="/up_pic/201812/140406412165.jpg" title="140406412165.jpg" alt="1.jpg"/></p><p> </p><p> 注:尽量查看存在文件或目录的日志信息,且一般不要使用通配符,否则会出现下面的情况:</p><p><img src="/up_pic/201812/140406442199.jpg" title="140406442199.jpg" alt="2.jpg"/></p><p> </p><p> 9、info命令:</p><p> 查看帮助:[root@samba ~]# svn info --help;</p><p> 命令说明:Display information about a local or remote item.</p><p> 即:显示本地或者远程服务器文件的详细信息</p><p> 使用方法:info [TARGET[@REV]...]</p><p> 命令参数:分为 Valid options 和 Global options两种(help命令可查,此处略);</p><p> 使用实例:[root@samba test]# svn info Test.java(可以使用通配符)</p><p> test目录的完整目录是:/trunk/src/com/ant/test,执行 cd /trunk/src/com/ant/test 命令进入test目录。</p><p> 过程结果:</p><p><img src="/up_pic/201812/140406559527.jpg" title="140406559527.jpg" alt="3.jpg"/></p><p> </p><p> 问题说明:略;</p><p> 10、list(别名:ls)命令:</p><p> 查看帮助:[root@samba ~]# svn list --help;</p><p> 命令说明:List directory entriesin the repository.</p><p> 即:显示版本库目录的实体,包括目录下的子目录和文件。</p><p> 使用方法:list [TARGET[@REV]...];</p><p> 命令参数:分为 Valid options 和 Global options两种(help命令可查,此处略);</p><p> 使用实例:[root@samba ant]# svn list [test](不建议使用通配符,除非你的目录开头字母是不重复的,否则分不清目录下文件的归属) </p><p> ant目录的完整目录是:/trunk/src/com/ant,执行 cd /trunk/src/com/ant 命令进入ant目录。</p><p> 过程结果:</p><p><img src="/up_pic/201812/140407178084.jpg" title="140407178084.jpg" alt="1.jpg"/></p><p> </p><p> 问题说明:略;</p><p> 11、help(别名:?, h)命令:</p><p> 查看帮助:[root@samba ~]# svn help --help;</p><p> 命令说明:Describe the usage of this program or its subcommands.</p><p> 即:对svn命令或者使用程序的一种描述。</p><p> 使用方法:help [SUBCOMMAND...];</p><p> 命令参数:只有Global options一种(help命令可查,此处略);</p><p> 使用实例:[root@samba ~]# svn ci --help(不可以使用通配符) </p><p> 过程结果:</p><p> <img src="/up_pic/201812/140407226854.jpg" title="140407226854.jpg" alt="2.jpg"/> </p><p> 问题说明:略;</p><p> 12、mkdir命令:</p><p> 查看帮助:[root@samba ~]# svn mkdir --help;</p><p> 命令说明:Create a new directory under version control.</p><p> 即:在SVN版本控制下创建目录。</p><p> 使用方法:mkdir PATH...;</p><p> mkdir URL...</p><p> 命令参数:分为 Valid options 和 Global options两种(help命令可查,此处略);</p><p> 使用实例:[root@samba ant]# svn mkdir test3(不可以使用通配符) </p><p> [root@samba ant]# svn mkdir -m "create dir" svn://192.168.31.131/svntest/trunk/src/com/ant/test4</p><p> ant目录的完整目录是:/trunk/src/com/ant,执行 cd /trunk/src/com/ant 命令进入ant目录。</p><p> 过程结果:</p><p><img src="/up_pic/201812/140407555151.jpg" title="140407555151.jpg" alt="1.jpg"/></p><p><img src="/up_pic/201812/140408001454.jpg" title="140408001454.jpg" alt="2.jpg"/></p><p> </p><p> </p><p> 问题说明 1、第一种方式如果不在版本控制目录之下执行:</p><p> 过程结果:</p><p> <img src="/up_pic/201812/140408042971.jpg" title="140408042971.jpg" alt="3.jpg"/></p><p> 提示结果:‘.’不在工作目录。</p><p> 注:第一种方式创建完目录之后,需要提交,第二种直接将目录创建在版本库的URL下,不需要提交尽。提交目录或文件时加上 -m 参数,否则会提示如下错误:</p><p> <img src="/up_pic/201812/140408253500.jpg" title="140408253500.jpg" alt="1.jpg"/></p><p> 13、status(别名:stat, st)命令:</p><p> 查看帮助:[root@samba ~]# svn status --help;</p><p> 命令说明:Print the status of working copy files and directories.</p><p> 即:打印SVN工作目录和文件状态。</p><p> 使用方法:status [PATH...];</p><p> 命令参数:分为 Valid options 和 Global options两种(help命令可查,此处略);</p><p> 使用实例:[root@samba ant]# svn status -v *(可以使用通配符) </p><p> ant目录的完整目录是:/trunk/src/com/ant,执行 cd /trunk/src/com/ant 命令进入ant目录。</p><p> 过程结果:</p><p><img src="/up_pic/201812/140408339863.jpg" title="140408339863.jpg" alt="2.jpg"/></p><p> </p><p> 问题说明 1、将上面的执行命令去掉“-v”,不会有任何的输出,可能跟SVN版本有关。</p><p> 注:在执行status命令时,建议强制加上“-v”命令参数,第一列保持相同,第二列工作版本号,第三列最后一次修改的修改人,第四列最后一次修改的版本号。</p><p> 14、copy(别名:cp)命令:</p><p> 查看帮助:[root@samba ~]# svn status --help;</p><p> 命令说明:Duplicate something in working copy or repository, remembering history.</p><p> 即:备份历史。</p><p> 使用方法:copy SRC[@REV]... DST;</p><p> 命令参数:分为 Valid options 和 Global options两种(help命令可查,此处略);</p><p> 使用实例:[root@samba test]# svn cp Test3.java Test4.java(不可以使用通配符) </p><p> [root@samba test]# svn cp -m "ss" Test3.java svn://192.168.31.131/svntest/trunk/src/com/ant/test2/Test4.java</p><p> test目录的完整目录是:/trunk/src/com/ant/test,执行 cd /trunk/src/com/ant/test 命令进入test目录。</p><p> 过程结果:</p><p><img src="/up_pic/201812/140408579743.jpg" title="140408579743.jpg" alt="3.jpg"/></p><p><img src="/up_pic/201812/140409016631.jpg" title="140409016631.jpg" alt="4.jpg"/></p><p> </p><p> </p><p> 问题说明:略;</p><p> 注:第一种方式需要手动提交,第二种方式可以自动提交。</p><p> 15、update(别名:up)命令:</p><p> 查看帮助:[root@samba ~]# svn update --help;</p><p> 命令说明:Bring changes from the repository into the working copy.</p><p> 即:将服务器的变更引入本地项目。</p><p> 使用方法:update [PATH...];</p><p> 命令参数:分为 Valid options 和 Global options两种(help命令可查,此处略);</p><p> 使用实例:[root@samba test]# svn up t*(可以使用通配符) </p><p> test目录的完整目录是:/trunk/src/com/ant/test,执行 cd /trunk/src/com/ant/test 命令进入test目录。</p><p> 过程结果:</p><p> <img src="/up_pic/201812/140409363574.png" title="140409363574.png" alt="1.png"/> </p><p> 问题说明:略;</p><p> 16、diff(别名:di)命令:</p><p> 查看帮助:[root@samba ~]# svn diff --help;</p><p> 命令说明:Display the differences between tworevisions or paths.</p><p> 即:比较两个版本的差异。</p><p> 使用方法:diff [-c M | -r N[:M]] [TARGET[@REV]...];</p><p> diff [-r N[:M]] --old=OLD-TGT[@OLDREV] [--new=NEW-TGT[@NEWREV]] [PATH...]</p><p> diff OLD-URL[@OLDREV] NEW-URL[@NEWREV]</p><p> 命令参数:分为 Valid options 和 Global options两种(help命令可查,此处略);</p><p> 使用实例:[root@samba test]# svn di T*(可以使用通配符) </p><p> [root@samba test]# svn di -r 20:18 T*(可以使用通配符) </p><p> test目录的完整目录是:/trunk/src/com/ant/test,执行 cd /trunk/src/com/ant/test 命令进入test目录。</p><p> 过程结果:</p><p> <img src="/up_pic/201812/140410132893.png" title="140410132893.png" alt="1.png"/></p><p><img src="/up_pic/201812/140410172377.png" title="140410172377.png" alt="2.png"/> </p><p> </p><p> 问题说明:略;</p><p> 注:第一种情况是与本地版本比较,第二种情况是显示指定版本的比较。</p><p> 17、merge命令:</p><p> 查看帮助:[root@samba ~]# svn merge --help;</p><p> 命令说明:Apply the differences between two sources to a working copy path.</p><p> 即:将两个指定的版本差异合并到当前的工作目录文件。</p><p> 使用方法:merge sourceURL1[@N] sourceURL2[@M] [WCPATH];</p><p> merge sourceWCPATH1@N sourceWCPATH2@M [WCPATH];</p><p> merge [-c M[,N...] | -r N:M ...] SOURCE[@REV] [WCPATH]</p><p> 命令参数:分为 Valid options 和 Global options两种(help命令可查,此处略);</p><p> 使用实例:[root@samba test]# svn merge -r 20:18 Test3.java(不建议使用通配符) </p><p> test目录的完整目录是:/trunk/src/com/ant/test,执行 cd /trunk/src/com/ant/test 命令进入test目录。</p><p> 过程结果:略</p><p> 问题说明:略;</p><p> 注:当两个文件产生冲突的时候,需要先处理冲突,再执行合并命令。</p><p> 18、revert命令:</p><p> 查看帮助:[root@samba ~]# svn revert --help;</p><p> 命令说明:Restore pristine working copy file (undo most local edits).</p><p> 即:恢复原始未改变的工作副本文件 (恢复大部份的本地修改)。</p><p> 使用方法:revert PATH...</p><p> 命令参数:分为 Valid options 和 Global options两种(help命令可查,此处略);</p><p> 使用实例:[root@samba test]# svn revert Test3.java(不建议使用通配符) </p><p> [root@samba test]# echo "dd" >> Test3.java(数据准备)</p><p> test目录的完整目录是:/trunk/src/com/ant/test,执行 cd /trunk/src/com/ant/test 命令进入test目录。</p><p> 过程结果:</p><p> <img src="/up_pic/201812/140410352408.jpg" title="140410352408.jpg" alt="20140330153719265.jpg"/> </p><p> 问题说明:略;</p><p> 19、blame(别名:praise, annotate, ann)命令:</p><p> 查看帮助:[root@samba ~]# svn blame --help;</p><p> 命令说明: Output the content of specified files or URLs with revision and author information in-line.</p><p> 即:输出指定文件带有版本号的内容和作者在线信息。</p><p> 使用方法:blame TARGET[@REV]...</p><p> 命令参数:分为 Valid options 和 Global options两种(help命令可查,此处略);</p><p> 使用实例:[root@samba test]# svn blame Test.*(可以使用通配符) </p><p> test目录的完整目录是:/trunk/src/com/ant/test,执行 cd /trunk/src/com/ant/test 命令进入test目录。</p><p> 过程结果:</p><p><img src="/up_pic/201812/140411261631.png" title="140411261631.png" alt="1.png"/></p><p> </p><p> 问题说明:略;</p><p> 注:只能执行文件,不能执行目录。</p><p> 20、export命令:</p><p> 查看帮助:[root@samba ~]# svn export --help;</p><p> 命令说明: Create an unversioned copy of a tree.</p><p> 即:采用复制的方式创建一个不在SVN版本控制下的树。</p><p> 使用方法:export [-r REV] URL[@PEGREV] [PATH]</p><p> export [-r REV] PATH1[@PEGREV] [PATH2]</p><p> 命令参数:分为 Valid options 和 Global options两种(help命令可查,此处略);</p><p> 使用实例:[root@samba ant]# svn export . test5(不可以使用通配符) </p><p> ant目录的完整目录是:/trunk/src/com/ant,执行 cd /trunk/src/com/ant 命令进入ant目录。</p><p> 过程结果:</p><p> <img src="/up_pic/201812/140411414961.png" title="140411414961.png" alt="2.png"/> </p><p> 问题说明:略;</p><p> 注:创建之后需要提交。</p><p> 21、import命令:</p><p> 查看帮助:[root@samba ~]# svn import --help;</p><p> 命令说明:Commit an unversioned file or tree into the repository.</p><p> 即:提交一个不在版本控制下的树或者文件到版本库。</p><p> 使用方法:import [PATH] URL</p><p> 命令参数:分为 Valid options 和 Global options两种(help命令可查,此处略);</p><p> 使用实例:[root@samba ant]# svn import -m "sss" svn://192.168.31.131/svntest/trunk/src/com/ant/test5(不可以使用通配符) </p><p> ant目录的完整目录是:/trunk/src/com/ant,执行 cd /trunk/src/com/ant 命令进入ant目录。</p><p> 过程结果:</p><p><img src="/up_pic/201812/140411553053.png" title="140411553053.png" alt="3.png"/></p><p> </p><p> 问题说明:略;</p><p> 22、cat命令:</p><p> 查看帮助:[root@samba ~]# svn cat --help;</p><p> 命令说明:Output the content of specified files or URLs.</p><p> 即:输出指定文件的内容(URLs也必须指定到文件类型)。</p><p> 使用方法:cat TARGET[@REV]...</p><p> 命令参数:分为 Valid options 和 Global options两种(help命令可查,此处略);</p><p> 使用实例:[root@samba ant]# svn cat svn://192.168.31.131/svntest/trunk/src/com/ant/test Test3.java(可以使用通配符) </p><p> ant目录的完整目录是:/trunk/src/com/ant,执行 cd /trunk/src/com/ant 命令进入ant目录。</p><p> 过程结果:</p><p> <img src="/up_pic/201812/140412099195.png" title="140412099195.png" alt="4.png"/> </p><p> 问题说明:略;</p><p> 注:必须指定到文件或者文件类型。</p><p> 23、changelist(别名:cl)命令:</p><p> 查看帮助:[root@samba ~]# svn changelist --help;</p><p> 命令说明:Associate (or dissociate) changelist CLNAME with the named files.</p><p> 即:带有名称的文件关联列表。</p><p> 使用方法:changelist CLNAME TARGET...</p><p> changelist --remove TARGET...</p><p> 命令参数:分为 Valid options 和 Global options两种(help命令可查,此处略);</p><p> 使用实例:[root@samba test]# svn changelist T*(可以使用通配符) </p><p> test目录的完整目录是:/trunk/src/com/ant/test,执行 cd /trunk/src/com/ant/test 命令进入test目录。</p><p> 过程结果:</p><p><img src="/up_pic/201812/140412244851.png" title="140412244851.png" alt="5.png"/></p><p> </p><p> 问题说明:略;</p><p> 24、switch(别名:sw)命令:</p><p> 查看帮助:[root@samba ~]# svn switch --help;</p><p> 命令说明:Update the working copy to a different URL.</p><p> 即:带有名称的文件关联列表。</p><p> 使用方法:switch URL[@PEGREV] [PATH]</p><p> switch --relocate FROM TO [PATH...]</p><p> 命令参数:分为 Valid options 和 Global options两种(help命令可查,此处略);</p><p> 使用实例:[root@samba trunk2]# svn switch svn://192.168.31.131/svntest/trunk/.(不建议使用通配符) </p><p> [root@samba /]# svn mkdir trunk2(目录准备)</p><p> [root@samba /]# cd trunk2(目录准备)</p><p> 过程结果:</p><p><img src="/up_pic/201812/140412595486.png" title="140412595486.png" alt="1.png"/></p><p> </p><p> 问题说明 1、在trunk2中的目录文件 /src/com/ant/test/Test.java添加内容并提交整个trunk2目录:</p><p> [root@samba test]# echo "cccc" >> Test.java</p><p> [root@samba /]# svn ci -m "commit" trunk2</p><p> 过程结果:</p><p> <img src="/up_pic/201812/140413137102.png" title="140413137102.png" alt="2.png"/></p><p> 同时该文件的md5sum值为:bf3b426d3ee8f0beecba0d3c9e5a8392</p><p> SVN服务器上/trunk/src/com/ant/test/的结果:</p><p> <img src="/up_pic/201812/140413429360.png" title="140413429360.png" alt="3.png"/></p><p> 将/trunk/src/com/ant/test/结果下载到本地,并查看md5sum值为:bf3b426d3ee8f0beecba0d3c9e5a8392</p><p> 我们可以看到,这两个目录下的文件的md5sum值是一样的,就说明这两个文件是一样的。</p><p> 那么为什么是一样的呢?我们知道在计算机里,修改一个文件时,被提交到另外一个文件,只能有一种可能,那就是我们在执行sw命令时,我们所操作的是一个软连接文件,这样才会两个文件一起被修改。如何证明我们的判断呢?我们来看一下trunk2目录的信息,结果如下:</p><p> <img src="/up_pic/201812/140413488017.png" title="140413488017.png" alt="4.png"/></p><p> 从图中我们可以看到,trunk2的URL是我们的trunk的远程目录,这就相当于一个文件的软连接。这就是我们提交trunk2目录下的文件,SVN服务器上的trunk目录下的文件也随之改变的原因。</p><p> 问题说明 2、在trunk中的目录文件 /src/com/ant/test/Test.java添加内容并提交整个trunk目录,其变动不会体现在trunk2中,所以从这一点来讲,跟软连接还是有区别的:</p><p> 注:该命令的目的是做一个工作目录的备份,类似文件的软连接。</p>