2012-06-28 64 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 
相關問題