2009-07-18 61 views
4

重复:How do I roll back all or part of a commit to svn?你如何继续在颠覆工作从老的版本,当你忘了做一个新的分支


我已经为我的一个项目建立一个帐户http://www.projectlocker.com/。我是唯一一个在这方面工作的人,但我认为版本跟踪仍然是有用的,这是一个很好的学习经历。我使用/ trunk /,/ branches /,/ tags /设置了标准文件夹结构。

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

我为视觉工作室使用AnkhSVN插件,所以我会很感激并回答说明如何在客户端中完成它,但我确信我可以从更概念性的答案中找出实际的按钮点击。

回答

11

我不使用AnkhSVN的,所以我现在不正是点击,您所需要的,但它是一个相当任务的TortoiseSVN和命令行:

你只是有通过应用反向合并撤消所有更改。 通常这是由龟完成:

  • 展示你的工作拷贝
  • 日志中选择您要扭转合并
  • 按鼠标右键,选择哪个版本“恢复到本次修订”
  • 提交新版本(这是exaclty同以前choosen转)

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

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

这将取消所有的修改从101-120离开你一样启100

0

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

随着AnkhSVN的做到这一点的最简单的方法是:

  • 右键单击该解决方案
  • 颠覆 - >行业解决方案
  • 检查URL是你想分支网址(例如,'^/trunk')(^)
  • 选择:特定版本和类型(或浏览)您喜欢使用的版本。
  • 类型日志信息
  • 检查“交换机创建后,分公司的”底部
  • 复选框,然后单击确定

(^)如果URL不是您所期望的你应该在File - > Subversion - > Change Source Control中修复解决方案绑定的url。通常它应该是项目的逻辑根源。

相关问题