SVN Log/diff对已删除目录中的文件

pau*_*128 3 svn websvn

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

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

原始结构:

 conf/
      files/
            configfile1
            configfile2
Run Code Online (Sandbox Code Playgroud)

这是发生的事情:

$ svn log -vr 5
...
D /conf/files
A /conf/combined_configfile
Run Code Online (Sandbox Code Playgroud)

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

svn diff -r 2:4 conf/files/configfile1
svn: 'conf/files' is not a working copy
svn: 'conf/files' does not exist
Run Code Online (Sandbox Code Playgroud)

甚至:

svn diff -r 2:4 'conf/files'
svn: 'conf/files' is not under version control
Run Code Online (Sandbox Code Playgroud)

或怎么样:

svn diff -r 2:4 'https://svnhost.localdomain/project1/conf/files'
svn: '/proj1/!svn/bc/1343/conf/files' path not found
Run Code Online (Sandbox Code Playgroud)

看来,获取此历史记录的唯一方法是通过svn操作对目前存在于存储库的头版本中的目录(conf/在本例中),大大扩展diff的范围.

当然必须有更好的方法吗?

Dmi*_*kov 6

svn diff 有几种使用形式

一个,如果他们是

diff OLD-URL[@OLDREV] NEW-URL[@NEWREV]
Run Code Online (Sandbox Code Playgroud)

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

svn diff  https://svnhost.localdomain/project1/conf/files@2 https://svnhost.localdomain/project1/conf/files@4
Run Code Online (Sandbox Code Playgroud)