【问题标题】:Switch working copy to a branch without commiting to the original location将工作副本切换到分支而不提交到原始位置
【发布时间】:2012-01-05 17:43:00
【问题描述】:
我对 SVN 有一点小问题:
我在工作副本中添加了一些新文件夹和文件,并希望将这些新元素提交到开发人员分支,而不是文件夹结构所暗示的实际位置。
使用 TortoiseSVN 我做了一个“分支/标记...”并在“在存储库中创建副本从:”组中指定选项“工作副本”。元素已提交到分支位置,但不幸的是,我无法将我的工作副本切换到这个新分支,因为尚未完成对实际位置的提交。我的意图是进一步提交开发者分支,并最终将分支与主干合并。
有没有办法解决这个问题?
【问题讨论】:
标签:
svn
tortoisesvn
branch
switch-statement
working-copy
【解决方案1】:
一种可能的解决方案是:
- 将您的工作保存到补丁文件:
svn diff > my-work.patch
- 在其他地方结帐新分店
- 使用
patch -p0 -i my-work.patch 将您的工作应用到该分支
- 提交工作
【解决方案2】:
这是一种方法。
- 备份您的项目。例如,将文件夹复制到外部硬盘驱动器。
- 标记(svn 复制)不包含您的更改的最高项目修订。您尚未提交的主干(或分支)的尖端。这将是一个服务器端副本,即 URL 到 URL。
- 分支(svn 副本)相同的未提交项目修订。再次复制服务器端。
- 切换(svn switch)到新分支。
- 运行 svn info 以确认您的工作副本文件夹实际上指向新分支。
- 提交到新分支。
现在您将拥有更改之前的修订标记,已提交最新更改的分支,并且主干将保持在您的工作副本修改之前的状态,即等同于标记的修订。