本节接着上节介绍Subversion学习总结,这里主要讲解一下它的一些常用的子命令以及它的工作周期的相关情况,在这里和大家分享一下,希望对你有用。
Subversion学习总结关于对工作拷贝目录结构的修改:
你可以使用任何你喜欢的编辑工具编辑文件,但是你不可以在修改目录结构时不通知Subversion。
◆为版本库添加一个新文件:$touchfoo,$svnaddfoo这里,foo是待添加的文件。当然需要commit才会使版本库目录结构改变。先用普通linux命令在目录中建立了一个foo文件,然后通知svn要添加这个文件。如果foo是一个目录,那么svn默认会将foo目录下的所有文件也递归地添加进去(若仅添加目录不递归添加下面的文件需要使用-N参数)。
◆在版本库删除一个文件:$svndeletefoo这里,foo是待删除的文件。当然需要commit才会使版本库目录结构改变,不需要非得用linux普通命令将foo文件删除再进行,只用svndeletefoo,意思是版本库中“逻辑上”把这个文件删除了,版本库中没有了这文件,而实际在普通的文件系统中还有这个文件,可以重新再添加进去。
◆在版本库拷贝一个文件:$svncopyfoobar
这里,建立一个foo的拷贝文件:bar。当然需要commit才会使版本库目录结构改变。需要利用普通linux命令cp事先建立一个bar文件吗???
◆在版本库移动一个文件:$svnmovefoobar这里的例子相当于把文件foo重新命名为bar了。当然需要commit才会使版本库目录结构改变。需要事先利用普通linux命令mv吗???
Subversion学习总结关于历史版本:
◆展示当前目录历史信息:$svnlog这将展示项目各个版本的历史信息,每条记录信息包括谁、在什么时候、改了多少,以及相应的描述修改的日志信息。日志根据时间逆序排列。
◆展示指定文件的历史:$svnlogfoo.c,这将展示文件foo.c的历史信息。
◆按特定顺序(或指定版本)展示历史信息:$svnlog-r5:9或$svnlog--revision9:5或$svnlog-r8这里用了--revision(即-r)选项,前两个分别按照时间顺序和逆序显示版本5和版本9之间的历史;最后一个显示版本8的历史。注意有时候得到的是空信息,如:svnlog-r2那不是错,那是说明当前目录在指定版本到现在没被修改过,可以用版本库顶级目录做为参数来查看。如:svnlog-r2http://svn.collab.net/repos/svn
◆使用带--revision的svnupdate和svncheckout来回到过去:
$svncheckout--revision2
$svnupdate--revision2
这会覆盖当前的目录版本吗?还是可以指定URL来提取一个独立的版本?
◆得到一个指定时间的拷贝:
$svncheckout--revision{2002-09-08}
或$svncheckout--revision{15:30}
或$svncheckout--revision{20020908T1530}等等。这里将会提取出离指定时间最近的版本,需要注意的是,假设指定了2002-09-08很有可能2002-09-07的某个时间更近,因为默认是以日期的0点开始的。
◆显示一段时间的版本历史信息:$svnlog-revision{2002-09-07}:{2009-09-08}这会找到这个时间的所有历史版本,也可版本号和时期混用表示时间段,不过不推荐这样。
典型的工作周期:
Subversion学习总结,再向大家介绍一下典型的工作周期。
1.更新你的工作拷贝:$svnupdate
2.做出修改:$svnadd,$svndelete,$svncopy,$svnmove
3.检验修改:$svnstatus,$svndiff,$svnrevert
4.合并别人的修改到你的工作拷贝:$svnupdate,$svnresolved
5.提交你的修改:$svncommit。
【编辑推荐】