1

我正在尝试使用 svn diff 命令获取文件的两个两个版本之间更改的行数。我的代码如下:

svn diff "http://svn.apache.org/repos/asf/lucene/dev/trunk" --revision 923475:925738 >>output.txt

当我打开一个 cmd 窗口并运行它时,它工作正常。现在,我是批处理脚本的初学者并且不熟悉它。据我了解,如果我将上述命令复制并粘贴到 .bat 文件中,然后运行该 .bat 文件,我应该得到相同的输出。但是,当我尝试这个时,发生的事情是它以永无止境的循环将以下内容写入输出文本文件。

C:\Users\Desktop>svn diff "http://svn.apache.org/repos/asf/lucene/dev/trunk" --revision 923475:925738 1>>output.txt

谁能告诉我我做错了什么或告诉我如何在批处理文件中使用 svn diff 命令?谢谢你。

4

1 回答 1

1

备注,不回答

  • 您的命令(和任务)的良好语法是

svn diff http://svn.apache.org/repos/asf/lucene/dev/trunk -r 923475:925738

(注意 URL 周围没有 ",-r = --revision,只是更短)

  • URL同时最大的麻烦是命令输出

    svn:E160013:在版本“923475”和“925738”的存储库中找不到差异目标“http://svn.apache.org/repos/asf/lucene/dev/trunk”

即 - 即使在您的语法和命令提示符中,您也无法获得结果

如果我们svn log -q http://svn.apache.org/repos/asf/lucene/dev/trunk | tail -2得到

r924461 | markrmiller | 2010-03-18 01:17:26 +0500 (Чт, 18 мар 2010)
------------------------------------------------------------------------

924461 > 923475,主干在开始修订时不存在

  • 如果要“...获取文件的两个两个修订版本之间更改的行数...”,则必须在 URL 中定义此文件,dev/trunk 是包含很多文件的目录

  • output.txt 将是一个巨大的 multiMB 文件,有差异,不需要你的数据

如何在批处理文件中使用 svn diff 命令?

与手动在命令提示符下执行的方式相同(只有一个细节 - 当您使用 WC 时,不要忘记 cd 或在 bat 文件中使用 WC 的完整路径)

于 2012-11-02T20:16:24.433 回答