SVN diff命令结果不一致

萨巴·法拉哥(CsabaFaragó)

问题svn diff与在单个文件上执行相比,在整个存储库上执行时命令似乎不一致。

一个示例:考虑Apache Tomcat源代码r542208提交。

svn log -v -r r542208 http://svn.apache.org/repos/asf/

结果:

------------------------------------------------------------------------
r542208 | fhanik | 2007-05-28 13:39:15 +0200 (H, 28 máj. 2007) | 2 lines
Changed paths:
   M /tomcat/trunk/java/org/apache/catalina/connector/CometEventImpl.java
   M /tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java
   M /tomcat/trunk/java/org/apache/catalina/connector/Request.java
   M /tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java
   M /tomcat/trunk/java/org/apache/coyote/http11/Http11NioProtocol.java

Implement setTimeout using an Action instead of an attribute

------------------------------------------------------------------------

现在让我们考虑源文件/tomcat/trunk/java/org/apache/catalina/connector/Request.java执行存储库范围的差异可以提供一些结果。

svn diff -r r542207:r542208 http://svn.apache.org/repos/asf/tomcat

结果的Request.java相关部分如下:

===================================================================
--- trunk/java/org/apache/catalina/connector/Request.java       (revision 542207)
+++ trunk/java/org/apache/catalina/connector/Request.java       (revision 542208)
@@ -2259,6 +2259,9 @@

     // ------------------------------------------------------ Protected Methods

+    protected void action(ActionCode actionCode, Object param) {
+        coyoteRequest.action(actionCode,param);
+    }

     protected Session doGetSession(boolean create) {

(结果还有其他部分。)

但是,如果仅在该文件上执行diff命令,结果将为空。

svn diff -r r542207:r542208 http://svn.apache.org/repos/asf/tomcat/trunk/java/org/apache/catalina/connector/Request.java

我希望得到与上面引用的结果相同的结果。

列出源文件的该版本时,上面指示的3个新行丢失了,但上面和下面的行存在,这也很奇怪。

问题:什么可能导致这种奇怪的行为?是否有任何设置可以将SVN的基础映射到其他目录(例如分支)?还是更高版本的目录重命名可能会导致此问题?

迈克尔·施洛特克-莱克珀

las,您成了“钉钉修订版谬误”的受害者。在其历史记录中的某个时间,该文件Request.java被另一个同名文件替换。因此,您需要确保在查询存储库时还指定了正确的钉修订,这是通过附加@revision到相关路径来完成的因此,以下命令不会产生任何结果(如您所报告的)

svn diff -r r542207:r542208 http://svn.apache.org/repos/asf/tomcat/trunk/java/org/apache/catalina/connector/Request.java

但是,如果您添加了正确的钉修订,您将看到预期的更改:

svn diff -r r542207:r542208 http://svn.apache.org/repos/asf/tomcat/trunk/java/org/apache/catalina/connector/Request.java@542207

Request.java删除原始版本的修订版573772,其中整个存储库树已删除并被另一棵替换。可以在http://svnbook.red-bean.com/en/1.8/svn.advanced.pegrevs.html上找到更多信息

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章