我已经在两个分支之间进行了 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以某种方式误解了。