2011-05-05 16 views
0

让我通过说我对源代码控制比较陌生,因此我可能会在这里误用一些术语。从Subversion版本库中的多个签入获取文本摘要

我试图得到一个多重签证净结果的文本diff摘要。因此,例如,对于签入 “Checkin1” 和 “Checkin2”,我想看到的东西,如:

文件:\ foo.txt的去除线75

线64, “再见” 取代用“你好”

文件:\跳回到bar.txt删除线30-50

我对格式非常灵活 - 它真的只是有一个人是可以理解的,它必须是一个大量连续的文本,而不是交互式的用户界面的东西(它将进入一个Word文件)。我需要能够忽略空白变化,因为这些与我的输出无关。

我一直在使用TortoiseSVN,而且我之后看起来像很多就像TortoiseSVN的“show changes as unified diff”功能一样。然而,不幸的是,统一的差异不会忽略空白的变化,所以我最终得到巨大的差异。

回答

0

有一对夫妇Subversion命令行命令,您可能会发现得心应手:

svn log -v 

这将列出的命令,第一行会列出D当文件被添加或从库中删除A

对于文件已被修改,你可以使用这个命令:

svn diff -r($rev-1):$rev $fileName 

这将列出标准差异格式的变化。这将为您提供行号和这些行上的更改。

目前还没有可以按照您想要的方式对事物进行格式化的工具,但应该可以在几个小时内创建Perl或Python脚本。

这似乎是一个不寻常的要求。开发人员可以轻松理解差异和日志的输出,因此这不适用于开发人员。然而,那些不是开发人员的人不会理解删除文件'qualityServiceBeanSkel.java已将“float morphObjectScan”更改为“double morphObjectScan”

+0

这很有用 - 我可能会尝试写一个脚本。添加更多信息 - 这对开发人员来说不是真的。我跟踪的是XML模式的差异,最终将成为国际标准的印刷版本。标准文本的所有其他更改都在Word文档中进行跟踪,因此我们必须有一种方法来跟踪其中的模式更改。 – 2011-05-05 22:49:44

+0

我设法做出了一个很好的svn命令,并将我的子文件夹中的所有文件都包含在一个不错的列表中:svn diff -r129:131 -x --ignore -eol-style“C:\ myrepos \\ * 。*“> c:\ temp.txt – 2011-05-06 03:18:53