linux svn propset,Linux+svn自动为你设置文件头部的注释

Linux+svn自动为你设置文件头部的注释(转载)

1.在svn里面有一个机制,当你的文件里面有编写$Id之类的东西,当你设置了这个文件的propset之后,svn ci将会自己加上谁修改的,什么日期修改的.

实例:

_main.cpp文件开始一行键入:

1/*$Id$*/

在Linux命令行里面输入:

1$svn propset svn:keywords"Id"_main.cpp

Linux控制台里面将会输出:

1property'svn:keywords'seton'_main.cpp'

这个时候已经将svn:keywords设置上了.这个时候去查看文件,其实还没有替换的.当我们输入

1$svn ci -m"just test"

提交之后再去看这个文件

1$cat./_main.cpp

输出:

1/*$Id: _main.cpp 117 2011-03-17 06:09:47Z swordhell $*/

2.问题的提出:我们知道有这个机制了.如果修改很多文件,是不是要老是重复的输入

1$svn propset svn:keywords"Id"_main.cpp

2$svn propset svn:keywords"Id"obj.cpp

3.解决之道:

1svn st |grep-v?|grepcpp|awk'{print($2)}'|xargssvn propset svn:keywords"Id"

单步解释

$svn st

这个语句将会得到我这一次修改的一些文件情况.

M   _main.cpp

A   _obj.cpp

M   _obj2.lua

?   readme.txt

[grep -v ?] 将带 ? 的行过滤掉,因为这个文件不受svn管理;

[grep cpp]  将只会搜索全部 cpp 文件;

这样之后就得到一个这样的列表

M   _main.cpp

A   _obj.cpp

[awk '{print($2)}'] 这个命令就是将刚才的列表取出纵向第二列;

得到一个这样的列表

_main.cpp

_obj.cpp

[xargs] 通过这个取出_main.cpp _obj.cpp,以它们为参数依次调用

svn propset svn:keywords "Id"

完成了. .

Chapter 3. Advanced Topics

Keyword Substitution

里面对于

Id的描述:

This keyword is a compressed combination of the other keywords. Its substitution looks something like $Id: calc.c 148 2006-07-28 21:30:43Z sally $, and is interpreted to mean that the file calc.c was last changed in revision 148 on the evening of July 28, 2006 by the user sally. The date displayed by this keyword is in UTC, unlike that of the Date keyword (which uses the local time zone).

这也就是让我们看到时间不一致的问题。想看到本地时间。你就要这么设置。Date

$Date$

svn st |grep -v ?|grep cpp|awk '{print($2)}'|xargs svn propset svn:keywords "Id Date"

这个就是支持多个keyword substitution;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值