SVN使用log,list,cat,diff查看所有及特定文件版本信息

您所在的位置:网站首页 Svn删除某个版本记录 SVN使用log,list,cat,diff查看所有及特定文件版本信息

SVN使用log,list,cat,diff查看所有及特定文件版本信息

2024-07-11 09:15:16| 来源: 网络整理| 查看: 265

 svn log          展示给你主要信息:每个版本附加在版本上的作者与日期信息和所有路径修改。  svn diff          显示特定修改的行级详细信息。  svn cat          取得在特定版本的某一个文件显示在当前屏幕。  svn list          显示一个目录在某一版本存在的文件。

找出一个文件或目录的历史信息,使用svn log命令,svn log将会提供你一条记录,包括:谁对文件或目录作了修改、哪个修订版本作了修改、修订版本的日期和时间、还有如果你当时提供了日志信息,也会显示。

$ svn log ------------------------------------------------------------------------ r3 | sally | Mon, 15 Jul 2002 18:03:46 -0500 | 1 line Added include lines and corrected # of cheese slices. ------------------------------------------------------------------------ r2 | harry | Mon, 15 Jul 2002 17:47:57 -0500 | 1 line Added main() methods. ------------------------------------------------------------------------ r1 | sally | Mon, 15 Jul 2002 17:40:08 -0500 | 1 line Initial import ------------------------------------------------------------------------ [/pre]注意日志信息缺省根据时间逆序排列,如果希望察看特定顺序的一段修订版本或者单一版本,使用--revision(-r) 选项: $ svn log -r 5:19    # shows logs 5 through 19 in chronological order $ svn log -r 19:5    # shows logs 5 through 19 in reverse order $ svn log -r 8       # shows log for revision 8

也可以检查单个文件或目录的日志历史,举个例子: $ svn log foo.c … $ svn log http://foo.com/svn/trunk/code/foo.c … [/pre]这样只会显示这个工作文件(或者URL)做过修订的版本的日志信息。

如果你希望得到目录和文件更多的信息,你可以对svn log命令使用--verbose (-v)开关,因为Subversion允许移动和复制文件和目录,所以跟踪路径修改非常重要,在详细模式下,svn log输出中会包括一个路径修改的历史: $ svn log -r 8 -v ------------------------------------------------------------------------ r8 | sally | 2002-07-14 08:15:29 -0500 | 1 line Changed paths: M /trunk/code/foo.c M /trunk/code/bar.h A /trunk/code/doc/README Frozzled the sub-space winch. ------------------------------------------------------------------------ [/pre]svn log也有一个--quiet (-q)选项,会禁止日志信息的主要部分,当与--verbose结合使用,仅会显示修改的文件名。 为什么svn log给我一个空的回应? 当使用Subversion一些时间后,许多用户会遇到这种情况: $ svn log -r 2 ------------------------------------------------------------------------ $ [/pre]乍一看,好像是一个错误,但是想一下修订版本号是作用在版本库整体之上的,如果你没有提供路径,svn log会使用当前目录作为默认的目标,所以,作为结果,如果你对一个本身和子目录在指定版本到现在没有做过修改的目录运行这个命令,你会得到空的日志。如果你希望察看某个版本做的修改的日志,只需要直接告诉svn log使用版本库顶级的目录作为参数,例如svn log -r 2 http://svn.collab.net/repos/svn。 检查历史修改的详情 我们已经看过svn diff—使用标准区别文件格式显示区别,它在提交前用来显示本地工作拷贝与版本库的区别。 事实上,svn diff有三种不同的用法:

检查本地修改比较工作拷贝与版本库比较版本库与版本库 比较本地修改 像我们看到的,不使用任何参数调用时, svn diff将会比较你的工作文件与缓存在.svn的“原始”拷贝: $ svn diff Index: rules.txt =================================================================== --- rules.txt    (revision 3) +++ rules.txt    (working copy) @@ -1,4 +1,5 @@ Be kind to others Freedom = Responsibility Everything in moderation -Chew with your mouth open +Chew with your mouth closed +Listen when others are speaking $ [/pre] 比较工作拷贝和版本库 如果传递一个--revision(-r)参数,你的工作拷贝会与指定的版本比较。 $ svn diff -r 3 rules.txt Index: rules.txt =================================================================== --- rules.txt    (revision 3) +++ rules.txt    (working copy) @@ -1,4 +1,5 @@ Be kind to others Freedom = Responsibility Everything in moderation -Chew with your mouth open +Chew with your mouth closed +Listen when others are speaking $ [/pre] 比较版本库与版本库 如果通过--revision (-r)传递两个通过冒号分开的版本号,这两个版本会进行比较。 $ svn diff -r 2:3 rules.txt Index: rules.txt =================================================================== --- rules.txt    (revision 2) +++ rules.txt    (revision 3) @@ -1,4 +1,4 @@ Be kind to others -Freedom = Chocolate Ice Cream +Freedom = Responsibility Everything in moderation Chew with your mouth open $ [/pre]与前一个修订版本比较更方便的办法是使用--change (-c): $ svn diff -c 3 rules.txt Index: rules.txt =================================================================== --- rules.txt    (revision 2) +++ rules.txt    (revision 3) @@ -1,4 +1,4 @@ Be kind to others -Freedom = Chocolate Ice Cream +Freedom = Responsibility Everything in moderation Chew with your mouth open $ [/pre]最后,即使你在本机没有工作拷贝,还是可以比较版本库的修订版本,只需要在命令行中输入合适的URL: $ svn diff -c 5  http://svn.example.com/repos/example/trunk/text/rules.txt … $ [/pre] 浏览版本库 通过 svn cat和 svn list,你可以在未修改工作修订版本的情况下查看文件和目录的内容,实际上,你甚至也不需要有一个工作拷贝。               svn cat             如果你只是希望检查一个过去的版本而不希望察看它们的区别,使用 svn cat: $ svn cat -r 2 rules.txt Be kind to others Freedom = Chocolate Ice Cream Everything in moderation Chew with your mouth open $ [/pre]你可以重定向输出到一个文件: $ svn cat -r 2 rules.txt > rules.txt.v2 $ [/pre]               svn list             svn list可以在不下载文件到本地目录的情况下来察看目录中的文件: $ svn list  http://svn.collab.net/repos/svn README branches/ clients/ tags/ trunk/ [/pre]如果你希望察看详细信息,你可以使用--verbose(-v) 参数: $ svn list -v  http://svn.collab.net/repos/svn   20620 harry            1084 Jul 13  2006 README   23339 harry                 Feb 04 01:40 branches/   21282 sally                 Aug 27 09:41 developer-resources/   23198 harry                 Jan 23 17:17 tags/   23351 sally                 Feb 05 13:26 trunk/ [/pre]这些列告诉你文件和目录最后修改的修订版本、做出修改的用户、如果是文件还会有文件的大小,最后是修改日期和项目的名字。 警告 没有任何参数的 svn list命令缺省使用当前工作拷贝的 版本库URL,而 不是本地工作拷贝的目录。毕竟,如果你希望列出本地目录,你只需要使用 ls(或任何合理的非UNIX等价物)。 获得旧的版本库快照 除了以上的命令,你可以使用带参数--revision的 svn update和 svn checkout来使整个工作拷贝“回到过去” [8]: $ svn checkout -r 1729 # Checks out a new working copy at r1729 … $ svn update -r 1729 # Updates an existing working copy to r1729 … [/pre] 提示 许多Subversion新手使用前面的 svn update实例来“回退”修改,但是你不能提交修改,你获得有新修订版本的过时工作拷贝也是没有用的。关于如何“回退”,我们可以看 “找回删除的项目”一节。 最后,如果你构建了一个版本,并且希望从Subversion打包文件,但是你不希望有讨厌的.svn目录,这时你可以导出版本库的一部分文件而没有.svn目录。就像 svn update和 svn checkout,你也可以传递--revision选项给 svn export: $ svn export  http://svn.example.com/svn/repos1 # Exports latest revision … $ svn export  http://svn.example.com/svn/repos1 -r 1729 # Exports revision r1729 … [/pre]



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭