2012-06-28 34 views
2

这间svn的差异是情景:如何工作副本和一个不相关的分支

用户1

  1. 创建分支/ X
  2. svn签分支/ X到本地机器
  3. 修改file.txt
  4. 提交更改

另一用户,用户2,

  1. 创建分支/ Y
  2. svn签分支/ Y至他的本地机器
  3. 合并分支/ X到本地机器(并因此file.txt的过渡到分支/ Y)
  4. 使用svn diff来验证在提交更改之前,分支/ Y的本地副本中的file.txt更改成功。

由于svn diff无法将本地工作副本与URL的工作副本进行比较,因此用户2的第4步无法首先将更改提交至branches/Y。 但是,这违反了在提交合并更改之前验证合并产生了正确结果的整个目的。

我已经为此搜索,但还没有找到任何可用的解决方案。 仅推荐的解决方案是检出分支/ X,以便svn可以比较两条路径。 由于合并更改尚未被检查,所以我无法使用svn diff和两个URL。

检查分支/ X和分支/ Y以便我可以执行差异是不切实际的,更不用说耗费时间和繁琐。

是否有任何方法可以比较尚未提交的本地工作副本中的合并更改与合并分支中的合并更改?

+3

这在我看来,(2)之间(SVN结帐Y)和(3)(SVN合并X),如果有Y中的变化/现有文件'file.txt' ,你应该_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __在__之前_提交_ X,使得完全可以在结帐时执行'svn diff'/'svn diff -rHEAD'。 – Wrikken

+0

毫无疑问......不明白你的问题是什么 –

+0

在branches/Y中没有对file.txt进行本地修改。因此,没有什么可以提交的。 file.txt只能通过合并分支/ X的版本来修改。我需要将生成的由subversion合并生成的file.txt与branches/X中的原始副本进行比较,以确认在将这些更改提交到本地工作副本(分支/ Y)之前,Subversion正确合并了更改。 –

回答

7

Johan Corveleyn向我提供了答案。我在这里发布,以便其他人可以看到答案。

svn diff确实可以将本地路径上的工作副本文件与存储库中的另一个版本进行比较,并因此通过URL进行引用。下面是语法:

svn diff --old=http://repository/branches/X/file.txt --new=file.txt 
相关问题