当你忘记创建新的分支,在subversion中如何继续使用旧版本进行工作

4

重复内容:如何回滚 svn 中的所有或部分提交?


我在http://www.projectlocker.com/上为我的一个项目设置了一个帐户,虽然只有我一个人在工作,但我认为版本跟踪仍然很有用,这是一个很好的学习经验。我设置了标准的文件夹结构,包括 /trunk/, /branches/, /tags/。

假设你正在 trunk 分支上工作,并意识到自己搞砸了一些东西,想要回到前几个版本并继续工作。我可以更新到以前的版本并开始进行更改,但服务器将不允许我提交,除非我从上一个版本更新,这也会带入所有不需要的更改。那么我应该怎么做才能回到以前的版本并继续从那里在 trunk 上工作呢?我是否需要将旧版本合并到最新版本中?

我正在使用 AnkhSVN 插件进行 Visual Studio 开发,因此希望得到解答,说明如何在该客户端中操作,但我相信我可以通过更概念性的回答找到实际的按钮点击方式。

3个回答

11

我没有使用AnkhSVN,因此不确定你需要哪些点击操作,但在TortoiseSVN和命令行中都是一个相当简单的任务:

您只需要通过应用反向合并 来撤消所有更改。 通常在Tortoise中可以通过以下方式完成:

  • 显示您的工作副本的日志
  • 选择要反向合并到的修订版本
  • 按右鼠标按钮并选择“还原到此修订版”
  • 提交新版本(与先前选择的版本完全相同)

在命令行中,您应该这样做:

svn merge -r 120:100 http://svn.example.com/<path_to_your_repo>

这将撤销从101-120的所有修订,使您保留与100版相同的内容。


1

0

不确定是否回答了你的问题,但你可以基于旧版本创建一个分支。

使用AnkhSVN最简单的方法是:

  • 右键单击解决方案
  • Subversion -> 分支解决方案
  • 检查URL是否是您想要分支的URL(例如'^/trunk') (^)
  • 选择: 指定版本并输入(或浏览)您想要使用的版本。
  • 输入日志消息
  • 在底部勾选“创建后切换到分支”复选框
  • 然后点击“确定”

(^) 如果URL不是您预期的,则应在文件 -> Subversion -> 更改源代码控制中修复解决方案绑定URL。通常它应该是项目的逻辑根。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接