我正在使用svn的项目中工作。我在目录中(使用svn checkout http://url /path/to/dest
签出了最新版本。我做了一些修改,所以我svn add
修改了文件,然后svn commit
进行了更改。
不幸的是,我在错误的分支上进行了更改。现在,我正在尝试使用svn update -r 1234
svn更新到另一个分支中的特定提交,我得到以下错误消息:
svn:E160005:目标路径'/ dev / branches / project'不存在
我用svn switch http://url
切换到正确的分支,但仍然收到相同的错误消息。如何正确还原到该提交?
答案 0 :(得分:0)
我认为您的方法存在多个问题。
首先,您在Subversion中提交的更改是不可逆的,因此,您应该做的第一件事实际上是“撤消”错误提交的效果。>
由于可以将任何提交视为指定了更改内容和更改方式的“补丁”(与提交之前的存储库状态相比),要撤消由提交引起的更改,您可以记录另一个与更改完全相反的提交原始提交中的内容。
这是通过再次合并错误的提交 完成的,但是您告诉Subversion反向应用其更改-有关更多信息,请参见this。
第二,您希望错误的提交出现在另一个分支上。 这就是所谓的“樱桃采摘”:您希望将其他地方记录的特定更改带到另一个分支。
Here是完成的方式。
¹是来自客户端的。可以使用专用工具在物理存储库上执行特殊手术。但是我认为这不是我们在这里想要做的。