在我的项目中,另一个开发人员重新组织了一些文件,现在我遇到了一些问题: - (我开始认为让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
似乎获取此历史记录的唯一方法是通过svn操作对目前存在于存储库的头版本中的目录(在本例中为conf/
),大大扩展diff的范围。
当然必须有更好的方法吗?
答案 0 :(得分: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
答案 1 :(得分:1)
为什么不从先前版本获取您关注的文件的副本,然后获取您想要解决的最新文件,然后使用众多开源差异程序... TortiseSVN(使它成为SVN仓库的用户界面,WinMerge等......
不要强迫使用CVN CLI进行差异化,请使用任何可用的工具。只要您可以访问以前的版本,这应该不是问题。