如何清理版本控制$ Id $ comment

时间:2011-09-21 00:48:23

标签: php svn version-control cvs

这可能是一个常见问题,但搜索引擎在搜索非字母数字字符时非常糟糕。

我有一堆代码,其中包含标准版本控制$ Id $ tag / comment。我需要一种简单的方法来从目录结构中的每个文件中删除(清理,删除)所有这些标记。

具体来说,这是一个PHP脚本(具体是phpBB),所以看起来像这样:

<?php
/**
*
* @package acp
* @version $Id: acp_attachments.php 8479 2008-03-29 00:22:48Z naderman $
*
*/
?>

我想改变的是:

* @version $Id: acp_attachments.php 8479 2008-03-29 00:22:48Z naderman $

因此该行变为:

* @version $Id$


请记住,我在Windows上,所以我不能使用Linux命令进行查找/替换。但我确实能够运行PHP来处理我的所有文件。

2 个答案:

答案 0 :(得分:2)

在Windows上,您可以使用此正则表达式使用grepWin

搜索: \$Id\: .+ \$$

替换为: \$Id\$

注意:在执行此操作之前首先备份所有文件

答案 1 :(得分:0)

你能用Perl吗?这是我用于此的cvs-clean脚本:

#!/usr/bin/perl

use strict;
use warnings;

while (<>) {
    s/\$([A-Z][a-z]+):[^\$]*\$/\$$1:\$/g;
    print;
}

它将stdin过滤到stdout。它不是完全你所要求的;它将$Id: blah $更改为$Id:$。删除:命令中的最后一个s///以更改它。

如果您不能使用Perl,则将其转换为PHP将作为练习。