我有2个存储库.由于主干代码位于一个受保护的存储库中,我进行了结账,然后签入了另一个存储库(因为用户没有获得第一个受保护的存储库的权限).
现在的问题是两个存储库都已经过工作,我们希望最终将第二个不受保护的代码/分支与受保护的代码/分支合并.但是,这些将会有冲突.
有没有办法找出2个存储库分支的差异?此外,如果有空格更改,我该如何忽略它们?
小智 31
svn diff --old=URL1@rev1 --new=URL2@rev2
Run Code Online (Sandbox Code Playgroud)
例:
svn diff --old=http://svn.whatever.com/trunk/myfile.txt@1234 --new=http://svn.whatever.com/branch/myfile.txt@5678
Run Code Online (Sandbox Code Playgroud)
这允许您指定两个文件的分支和修订号.我知道它有效,因为我刚刚执行它.
Cyg*_*gon 25
我不知道允许这样做的内置subversion功能,但您可以创建两个存储库的完整检出并使用命令行diff实用程序来比较两个工作副本:
diff -w -u -r -N WorkingCopy1 WorkingCopy2
-w忽略所有空格
-u使用统一的diff格式(如subversion)
-r进行递归
-N,让新文件出现在补丁中
这肯定不是最快的方法,但对于一次性过程可能是可以接受的.您还可以通过将输出重定向到文件来创建修补程序diff -w -u -r -N WorkingCopy1 WorkingCopy2 > wc1-to-wc2.patch
如果你正在运行windows,可以在这里找到win32 build的diff和patch:http://gnuwin32.sourceforge.net/packages/diffutils.htm
执行此合并的最佳工具可能是git-svn.如果两个存储库的URL是$ URL1和$ URL2,那么尝试:
$ git svn clone $URL1 svn1 $ git svn clone $URL2 svn2 $ cd svn1 $ git fetch ../svn2 $ git diff FETCH_HEAD master
要忽略空格更改,请使用git diff -w