当你忘记创建一个新的分支时,你如何继续在subversion中修改旧版本

时间:2009-07-18 03:50:11

标签: svn version-control ankhsvn

重复:How do I roll back all or part of a commit to svn?


我在http://www.projectlocker.com/为我的一个项目设置了一个帐户。我是唯一一个正在努力的人,但我认为版本跟踪仍然有用,这是一个很好的学习经验。我用/ trunk /,/ branches /,/ tags /.

设置了标准文件夹结构

所以说你在干线上工作,并意识到你真的搞砸了一些东西,但是你想要回到几个版本并继续从那里开始。我可以更新到以前的版本并开始进行更改,但服务器将不允许我提交,除非我从最后一个版本更新,这也将带来所有不需要的更改。那么我如何回到之前的版本,然后从那里继续工作?我是否以某种方式将旧版本合并到最新版本中?

我正在使用视觉工作室的AnkhSVN插件,所以我很感激和回答解释如何在该客户端中执行此操作,但我确信我可以从更概念性的答案中找出实际的按钮点击。< / p>

3 个答案:

答案 0 :(得分:11)

我不使用AnkhSVN,因此我现在不能完全满足您的需求,但在TortoiseSVN和命令行中这是一个相当大的任务:

您只需通过应用反向合并撤消所有更改。 通常这是在Tortoise中完成的:

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

在命令行上你应该这样做:

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

这将撤消101-120的所有修订,让您与Rev 100相同

答案 1 :(得分:1)

来自颠覆书:

http://svnbook.red-bean.com/en/1.4/svn-book.html#svn.branchmerge.commonuses.undo

这基本上就像你说的那样......你想将旧版本与你的工作目录合并。

答案 2 :(得分:0)

不确定它是否回答了您的问题,但您可以根据旧版本创建分支。

使用AnkhSVN最简单的方法是:

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

(^)如果网址不符合您的预期,您应该修复文件中的解决方案绑定网址 - &gt;颠覆 - &gt;更改源代码管理。通常它应该是项目的逻辑根。