我只需要从CVS获取最新更改列表并解析它们。
示例: CVS用户“Lollerskates”在带有空格的文件中签到。但是空格是分界线!然后使用文件夹名称中的空格检查“skates”文件。
% cvs history -c -a -D 2011-03-14
A 2011-03-15 00:17 +0000 jschmoe 1.1 CoolCode.java Awesome/Source/Java/src/com/widgets/foo/ambiguous/abstraction == <remote>
M 2011-03-15 00:17 +0000 sumbody 1.2 MoreCoolCode.java Awesome/Source/Java/src/com/widgets/foo/ambiguous/abstraction == <remote>
A 2011-03-15 00:17 +0000 lollerskates 1.123 This File Name Has Spaces.html Awesome/Source/Java/src/com/widgets/foo/ambiguous/abstraction == <remote>
A 2011-03-15 00:17 +0000 jschmoe 1.1 MyAwesomeProject.java Awesome/Source/Java/src/com/widgets/foo/ambiguous/abstraction == <remote>
M 2011-03-15 00:17 +0000 skates 1.5 BlahBlah.java Awesome/Source/Java/src/com/widgets/foo/content/block type/cart == <remote>
什么是可靠的解析方法?
或者,是否有一个不同的CVS命令,其中包含更容易解析的结果?
答案 0 :(得分:1)
这个正则表达式捕获了所有这些:
\w \d{4}-\d{2}-\d{2} \d{2}:\d{2} \+\d{4} (\w+)\s+(\d+.\d+)\s+([\w\s]+\.\w+)\s+([\w\s/]+)== \<remote\>
用户在组#1中,组#3中的文件名和组#4中的路径。
答案 1 :(得分:0)
在这种情况下,cut
可能更好吗?如果字段是固定长度......