在使用doExport()
svnkit的方法时,我不明白一个参数的含义。
即使在查看Javadocs之后我仍然不明白
参数pegRevision
是什么意思?
文档说
pegRevision - 将首先在存储库中看到 url 的版本,以确保它是需要的版本
但这并不能真正帮助我理解它。
在使用doExport()
svnkit的方法时,我不明白一个参数的含义。
即使在查看Javadocs之后我仍然不明白
参数pegRevision
是什么意思?
文档说
pegRevision - 将首先在存储库中看到 url 的版本,以确保它是需要的版本
但这并不能真正帮助我理解它。
示例:
假设很久以前我们创建了我们的存储库,并且在修订版 1 中我们添加了我们的第一个概念目录,并在该目录中添加了一个讨论该概念的 IDEA 文件。在添加和调整了真实代码的几次修订之后,我们在修订 20 中将此目录重命名为 frabnaggilywort。到第 27 版,我们有了一个新概念,一个新的概念目录来保存它,以及一个新的 IDEA 文件来描述它。然后五年和数千次修改飞逝,就像他们在任何好的浪漫故事中一样。
现在,多年后,我们想知道 IDEA 文件在修订版 1 中的样子。但是 Subversion 需要知道我们是否在询问当前文件在修订版 1 中的回顾,或者我们是否在询问任何文件的内容。在修订版 1 中的概念/IDEA 中。当然,这些问题有不同的答案,并且由于 peg 修订版,您可以提出这些问题。要了解当前 IDEA 文件在旧版本中的外观,请运行:
$ svn cat -r 1 concept/IDEA
svn: Unable to find repository location for 'concept/IDEA' in revision 1
当然,在这个例子中,当前的 IDEA 文件在版本 1 中还不存在,所以 Subversion 会报错。
称为 peg revision的机制可以解决这个问题;
$ svn cat -r 1 concept/IDEA@BASE
or
$ svn cat -r 1 concept/IDEA@1
-------------------------- 更复杂的情况---------------------- --------------
假设 frabnaggilywort 已从 HEAD 中删除,但我们知道它存在于修订版 20 中(通过查看 svn 日志),我们希望查看其 IDEA 文件在修订版 4 和 10 之间的差异。我们可以将 peg 修订版 20 与在修订版 20 中保存 Frabnaggilywort 的 IDEA 文件的 URL,然后使用 4 和 10 作为我们的有效修订范围。
$ svn diff -r 4:10 http://svn.red-bean.com/projects/frabnaggilywort/IDEA@20
Index: frabnaggilywort/IDEA
===================================================================
--- frabnaggilywort/IDEA (revision 4)
+++ frabnaggilywort/IDEA (revision 10)
@@ -1,5 +1,5 @@
-The idea behind this project is to come up with a piece of software
+The idea behind this project is to come up with a piece of
更多在这里http://svnbook.red-bean.com/en/1.6/svn.advanced.pegrevs.html