如何清除版本控制$Id$注释


How to clean version control $Id$ comment

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

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

具体来说,这是一个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来处理我的所有文件。

在windows上,您可以使用以下正则表达式使用grepWin

搜索:'$Id': .+ '$$

替换为:'$Id'$

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

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

#!/usr/bin/perl
use strict;
use warnings;
while (<>) {
    s/'$([A-Z][a-z]+):[^'$]*'$/'$$1:'$/g;
    print;
}

它过滤stdin到stdout。这并不是你所要求的;则将CCD_ 5改变为CCD_。删除s///命令中的最后一个:以更改它。

如果您不能使用Perl,那么将其转换为PHP只是一个练习。