识别.patch文件

问题描述:

这是问题所在。我正在编写一个软件,用于从Bug跟踪系统查询错误附件。我能够通过仅获取文本附件(纯文本/文本等)来过滤查询,并且我只想保留有效的补丁文件(具有类似diff -u输出的文件,可以作为补丁应用于源文件)。所以我需要一种方法来指定哪个附件是有效的补丁。例如:识别.patch文件

让说,我有这个附件,内容如下:

指数:编译/ CPP/src目录/生成/ t_csharp_generator.cc

---编译/ CPP/src目录/生成/ t_csharp_generator.cc(修订版1033689) +++编译器/ cpp/src/generate/t_csharp_generator.cc(工作副本) @@ -456,7 +456,7 @@ t =((t_typedef *)t) - > get_type(); (*(m_iter) - > get_value()!= NULL) - print_const_value(out,“this。”+(* m_iter) - > get_name(),t,(* m_iter) - > get_value ),true,true); (out,“this._”+(* m_iter) - > get_name(),t,(* m_iter) - > get_value(),true,true); } }

我怎么知道这是一个有效的补丁?是否有一个正则表达式匹配的一些可能的差异-u输出,这样我就可以在Java中编写这样的事:

字符串attachmentContent = ..... 如果(attachmentContent.matches(正则表达式))...

谢谢你在前进, 猫王

您将无法用一个简单的正则表达式,也顺便说一个复杂的测试,这需要一个正则表达式引擎,能够为@@之间解释的部分数字,并从中定义重复计数,我不知道这样做的RE引擎。

另一方面,你不应该有太多的问题找到一个库解析和加载Unix补丁(这绝对不是一个计算密集型任务),所以只是试图加载补丁将允许你验证它。例如Java diff utils应该这样做直截了当。