我已经在两个分支之间进行了 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
。)
我想签入大多数合并的文件,但其中一些,我想从bar
分支中删除更改并保留分支中的现有文件foo
。所以我尝试:
svn revert baz/qux.quux
这无济于事。qux.quux
仍然有bar
分支的变化。我试试svn status
;它是空白的。foo
我尝试从分支的原始副本复制:该文件现在具有正确的内容,但svn diff
现在显示了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
's 的版本qux.quux
?以及如何清除工作副本中的“坏”状态信息?
我有一种感觉,我从根本上svn merge
以某种方式误解了。