如何使用SVN分支修改后的工作副本?

Tom*_*ger 11 svn branch

我开始研究我认为对行李箱的一个小改动,走了一个月,现在我意识到这真的是一个真正需要自己的分支的整个项目(充满了错误).此外,一旦我将这些更改分开,我想将我的工作副本重置回当前在主干中的内容,这样我就可以在有时间回到这一侧项目之前帮助完成主要的开发工作和高优先级项目.

所以:

  1. 我想根据我的工作副本创建一个新的分支,而不必检查我的工作副本(尽管最新的HEAD修订版是最新的)

  2. 一旦我分配了我的工作副本,我想基本上删除分支中的所有更改,并将其设置为匹配trunk中的当前HEAD修订版.

程序是什么?我正在使用TortoiseSVN,但即使是命令行指令也会有所帮助.

Tom*_*ger 7

所以我尝试了两种方法来分支我的工作副本而不检查它,不确定哪一种最终会成为最好的方法:

方法1:将整个目录复制到新分支

  • 右键单击工作副本文件夹,然后选择Tortoise SVN> Repo Browser
  • 在Repo Browser中创建一个名为"branches"的新目录,与"trunk"处于同一级别
  • 在"分支"目录内,用你的分支的"名称"创建一个新的目录(通过"名称"我的意思是一个标识该分支的标签,例如:如果你正在处理一个特殊的通知系统分支,称之为"通知"等...)
  • 现在,仍然在Repo Browser中右键单击并选择"添加文件夹"并选择本地工作副本
  • 这将需要一段时间,因为正在复制所有文件(包括.svn文件).这也复制了你有svn:忽略的无版本文件和文件,这可能是不可取的.

方法2:使用分支/标记

  • 右键单击您的工作副本文件夹,然后选择Tortoise SVN> Branch/tag ...
  • 它打开了Repo浏览器,所以创建一个新的目录"branches",然后在里面创建一个带有你的分支"name"的新目录
  • 您可以在"从存储库中创建副本"部分中选择"工作副本"按钮.这是将本地更改的差异提交到此分支的内容
  • 这似乎只复制HEAD版本中不同的文件.
  • 但是,如果您再次使用Repo浏览器查看其中的内容,整个HEAD修订版本+您的本地更改都在那里

看起来方法2绝对是可取的.

然后,要清理,这是Tortoise SVN> Revert ...和"删除所有无版本"的问题