在GIT存储库中的文件中递归替换所有CVS ident字符串

时间:2017-04-20 12:36:33

标签: php git recursion replace git-merge

如何达到替换以下样式CVS标识字符串

的目标
<?php // $Id: index.php,v 1.123.5.56 2000/01/01 11:11:11 user Exp $

<?php // $Id$

递归地在GIT存储库中的所有.php .class扩展文件中。

我的问题:
我有两个GIT repos有更多的PHP文件。

  1. Repo one包含未扩展CVS的原始php代码 idents。
  2. Repo two包含修改过的PHP代码,扩展了CVS标识+我做了很多修改。
  3. 当我想合并它们时,它会在具有扩展CVS标识的文件中产生冲突。但是我想忽略这些变化,因为我只想打扰原始代码和原始代码之间发生的那些真正的冲突。我的修改。

    我试过的解决方案没有令人满意的结果:

    • 我尝试了涂抹污渍的GIT解决方案。干净,但没有真正的成功。
    • 我编写了一个Perl脚本来替换(缩小)CVS ident字符串,但在它之后,我在repo 2中进行了很多更改,所有这些都需要逐个解决冲突。

1 个答案:

答案 0 :(得分:0)

在Perl中,您可以使用File::Find::Rule查找存储库中的所有相关文件。然后在执行替换之前将文件复制到备份文件:

Hex    Binary     NAL type  Meaning
0x65 = 11 00101 = type 5    Coded slice of an IDR picture (I-frame)
0x41 = 10 00001 = type 1    Coded slice of a non-IDR picture (P-frame)

0x27 = 01 00111 = type 7    Sequence parameter set (B-frame)
0x28 = 01 01000 = type 8    Picture parameter set (B-frame)
0x25 = 01 00101 = type 5    Coded slice of an IDR picture (B-frame)
0x21 = 01 00001 = type 1    Coded slice of a non-IDR picture (B-frame)