用于StatCVS的log前期处理
我发现通过
StatCVS
来实现某个
branch/release
的代码改动量很难,所以倾向于在生成
log
时就排除冗余信息。
Cvs log
命令也支持很多参数。
默认地,
log会打印可用的所有信息。支持的参数可以用来限制输出。
-B bugid
只选择跟一个bug相关的修改版本
-b
打印默认分支的版本信息
-d"
dates"
(最有用的)限定选择日期的修改版本。
参数dates支持很广泛的日期格式。比如ISO8601和互联网电子邮件标准 (specified in RFC822 as amended by RFC1123).ISO8601 dates可以如下:
1972-09-24
1972-09-24 20:05
至于互联网电子邮件标准, dates可以如下:
24 Sep 1972 20:05
24 Sep
如果没有指定时区,当地时区会被默认。
参数dates还支持month
/day
/year
。
参数dates如果有空格,请用双引号括起。比如: "1 hour ago"。
参数dates用法:
某个时期内的修改版本(d1,d2就是符合上述标准的日期):d1
<
d2
或
d2
>
d1
某个日期前的修改版本(包含该日期):
<
d
或
d
>
某个日期后的修改版本(
包含该日期):
d
<
或
>
d
某个日期前的最新单个修改版本(
包含该日期):
d
前面的<,>可以加=表示包含式范围,而不是排除式范围。
多个日期参数用分号(;)来分割。
-h
只输出
rcs
文件的名字,工作目录里的文件名,头信息,默认分支,访问列表,符号名和后缀。
-l
只对本地工作拷贝。递归式进行扫描工作拷贝。
-N
不含
tag
信息。
-R
只输出
rcs
文件名。
-r"
revisions"
分号分割的版本号列表,不能有空格。版本号格式可以是:
rev1
:
rev2
同一
branch
的两个版本
rev1
和
rev2
rev1
::
rev2
rev1
和
rev2
之间的所有版本号(不包含
rev1, rev2
)
:
rev
rev
版本之前的所有版本(包含
rev,
同
branch
里的)
::
rev
rev
版本之前的所有版本(不包含
rev,
同
branch
里的)
rev
:
rev
版本之后的所有版本(包含
rev,
同
branch
里的)
rev
::
rev
版本之后的所有版本(不包含
rev,
同
branch
里的)
branch
branch
下所有版本
branch
.
Branch
下最后一个版本
branch1
:
branch2
branch1
和
branch2
之间的所有版本号(包含
branch1
,
branch2
)
branch1
::
branch2
branch1
和
branch2
之间的所有版本号(不包含
branch1
,
branch2
)
版本号参数为空表示默认分支的最新版本。
-S
如果一个文件没有符合限定的修改,就不输出该文件信息。
-s states
只输出符合分号分割的状态列表里状态的修改版本。
-T
显示时间用当地时区,而不是
GMT
。
-t
同
-h
参数,加描述性文本。
-w[logins]
输出分号分割的用户的修改版本。如果没有
logins
指定,则当前用户被认定。注意
-w
与
[logins]
没有空格,所以有
[]
。
-X
不输出
CVS
服务器生成的多余信息。这点可能变得很有用,如果前端软件无法支持解析多余输出时。
-x
通用全输出,这个也是默认选项,除非
CVS
服务器作了其他的配置。
特别要注意的是,-d, -r选项后面不能跟空格,如-rBRANCH_NAME:BRANCHNAME1, -d">2009/10/10"。