3

在我的项目中,另一个开发人员重新组织了一些文件,现在我在获取它们的差异时遇到了一些问题:-(我开始认为让 webSVN 能够显示这些差异会很好,现在我'我只想亲眼看到它们!

我知道'svn方式'是将删除视为对父目录的操作,但我的问题因文件位于已被删除的子目录中而变得更加复杂。

原始结构:

 conf/
      files/
            configfile1
            configfile2

这是发生的事情:

$ svn log -vr 5
...
D /conf/files
A /conf/combined_configfile

我想要得到的是在删除发生之前之前在配置文件中引入的更改的差异。像这样的东西会很好:

svn diff -r 2:4 conf/files/configfile1
svn: 'conf/files' is not a working copy
svn: 'conf/files' does not exist

甚至:

svn diff -r 2:4 'conf/files'
svn: 'conf/files' is not under version control

或者怎么样:

svn diff -r 2:4 'https://svnhost.localdomain/project1/conf/files'
svn: '/proj1/!svn/bc/1343/conf/files' path not found

似乎获取此历史记录的唯一方法是通过对当前存在于存储库的头版本中的目录(conf/在本例中)进行 svn 操作,从而大大扩大了差异的范围。

肯定有更好的方法吗?

4

2 回答 2

6

svn diff有几种用法

一个如果他们是

diff OLD-URL[@OLDREV] NEW-URL[@NEWREV]

-r当项目的目录结构发生变化时,它比选项更好。尝试这个:

svn diff  https://svnhost.localdomain/project1/conf/files@2 https://svnhost.localdomain/project1/conf/files@4
于 2010-10-12T15:27:13.780 回答
1

为什么不从以前的版本中获取您关心的文件的副本,然后获取您想要反对的最新文件,然后利用那里的众多开源差异程序...... TortiseSVN(使其成为您的 SVN 的 UI回购),WinMerge等...

不要因为你的差异而被迫使用 CVN CLI,使用任何和所有可用的工具。只要您可以访问以前的版本,这应该不是问题。

于 2010-10-12T15:23:46.210 回答