我开始研究我认为对行李箱的一个小改动,走了一个月,现在我意识到这真的是一个真正需要自己的分支的整个项目(充满了错误)。此外,一旦我将这些更改分开,我想将我的工作副本重置回当前在主干中的内容,这样我就可以在有时间回到这一侧项目之前帮助完成主要的开发工作和高优先级项目。 / p>
所以:
我想基于我的工作副本创建一个新的分支,而不必检查我的工作副本(尽管最新的HEAD版本是最新的)
一旦我分配了我的工作副本,我想基本上删除分支中的所有更改,并将其设置为与trunk中的当前HEAD修订版匹配。
程序是什么?我正在使用TortoiseSVN,但即使是命令行指令也会有所帮助。
答案 0 :(得分:7)
所以我尝试了两种方法来分支我的工作副本而不检查它,不确定哪一种最终会成为最好的方法:
方法1:将整个目录复制到新分支
方法2:使用分支/标记
看起来方法2绝对是可取的。
然后,为了清理,这是Tortoise SVN的问题>恢复...和“删除所有未版本化的”
答案 1 :(得分:3)
在命令行中,您可以使用subversion“diff”命令创建补丁,然后使用subversion“patch”命令将其应用于新分支。 (您可以通过执行'svn help diff'和'svn help patch'来阅读这些命令)。假设你在同一个父目录中有trunk和一个名为new_branch的分支。
cd trunk
svn diff > ..\my_stuff.diff
现在您有了补丁,然后将其应用到新创建的分支。
cd new_branch
svn patch ..\my_stuff.diff
您可以首先通过在patch命令中添加--dry-run标志来干燥运行补丁,以查看在实际应用之前是否发生了任何奇怪的事情。
svn patch ..\my_stuff.diff --dry-run
答案 2 :(得分:1)
如果您希望继续在同一文件夹中工作,此post会显示如何操作。
基本上svn copy
创建一个分支svn switch
以指向同一工作副本中的新分支,并svn commit
提交您的更改。
请确保从您开始修改的同一分支/修订版中分支出来(svn info
进行检查),否则切换后可能会出现许多冲突。