[英]svn revert after merge
我已經在兩個分支之間完成了svn合並-未簽入-現在我要“取消合並”工作副本中的某些文件。 類似於以下內容:
svn co svn://myserver/repo/branches/foo@1000 foo
cd foo
svn merge svn://myserver/repo/branches/foo@1000 \
svn://myserver/repo/branches/bar@1000
(注意:我想使用svn merge
,而不僅僅是從bar
的工作副本中復制文件,因為(1)存在一些合法的合並,即對foo
和bar
進行的不相關更改為相同的文件,以及(2)一些文件已在bar
刪除,我簽foo
也想從foo
刪除它們。)
我想檢入大多數合並文件,但是其中一些我想排除bar
分支中的更改,並保留foo
分支中的現有文件。 所以我嘗試:
svn revert baz/qux.quux
這什么也沒做。 qux.quux
仍然具有來自bar
分支的更改。 我嘗試svn status
; 它是空白。 我嘗試從foo
分支的常規副本進行復制:該文件現在具有正確的內容,但是svn diff
現在顯示了bar < foo
diffs bar < foo
。 svn revert
再次:現在我們已經拿到了bar
更改回。 讓我們嘗試svn info
:
Path: baz/qux.quux
Name: qux.quux
Working copy root path: /home/mydir/foo
URL: svn://myserver/repo/branches/foo/baz/qux.quux
Repository root: svn://myserver/repo
Repository UUID: [whatever]
Revision: 1000
Node Kind: file
Schedule: normal
Last Changed Author: [author of last change on bar, not foo]
Last Changed Rev: [rev of last change on bar, not foo]
Last Changed Date: [date of last change on bar, not foo]
那么,如何返回foo
的qux.quux
版本呢? 以及如何清除工作副本中的“不良”狀態信息?
我覺得我從根本上誤解了svn merge
。
David,使用PEG修訂是否明智而必要的決定? 我只是嘗試使合並盡可能容易,並要求您使用新的干凈工作副本從頭開始重新合並,並在此處顯示全部,完整的真實命令和輸出 (UUID不是私有數據,可以通過測試的回購網址文件:///)。
我的測試結果(合並文件頭和還原單個文件)顯示了預期的結果(您可以在我的測試用例中重新檢查它-存儲庫已打開)
步驟與操作
>svn co http://mayorat.ursinecorner.ru:8088/svn/Hello/branches/Leichtbau-Deutsch/
A Leichtbau-Deutsch\Hello.en.txt
A Leichtbau-Deutsch\Hello.fr.txt
A Leichtbau-Deutsch\Hello.de.txt
U Leichtbau-Deutsch
Checked out revision 37.
>cd Leichtbau-Deutsch
>svn merge http://mayorat.ursinecorner.ru:8088/svn/Hello/branches/branche-francaise/
--- Merging r26 through r37 into '.':
U Hello.fr.txt
Conflict discovered in 'Z:/Leichtbau-Deutsch/Hello.de.txt'.
Select: (p) postpone, (df) diff-full, (e) edit,
(mc) mine-conflict, (tc) theirs-conflict,
(s) show all options: tc
U Hello.de.txt
--- Recording mergeinfo for merge of r26 through r37 into '.':
U .
>svn status
M .
M Hello.de.txt
M Hello.fr.txt
>svn revert Hello.fr.txt
Reverted 'Hello.fr.txt'
>svn st
M .
M Hello.de.txt
最后的預期結果
PS:如果您願意,我可以使用PEG修訂版重復此測試。 但是-我更喜歡使用對應分支的真實修訂版,並且(與合並-還原無關)我必須執行(如果內存對我有用)將svn up
(並盲目合並)到分支HEAD,然后才能提交合並-設置,因為您的svn co svn://myserver/repo/branches/foo@1000
檢出非HEAD版本和SVN中的版本歷史必須是線性的
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.