Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用OrtoiseSVN进行分支和合并的最简单方法是什么?_Svn_Version Control_Tortoisesvn_Branch - Fatal编程技术网

使用OrtoiseSVN进行分支和合并的最简单方法是什么?

使用OrtoiseSVN进行分支和合并的最简单方法是什么?,svn,version-control,tortoisesvn,branch,Svn,Version Control,Tortoisesvn,Branch,使用TortoiseSVN进行分支和合并的真正简单的“方法”是什么?假设您的工作目录是从主干工作的: 右键单击“根工作文件夹”(此术语始终指Windows资源管理器)并执行svn update以将工作文件夹更新到最新的主干 确保你拥有的东西是稳定的 右键单击根工作文件夹并执行svn commit,以确保将任何本地更改提交到主干 右键单击根工作文件夹并执行svn repo浏览器 如果存储库中还没有分支文件夹:右键单击主干文件夹上方的文件夹,执行“创建文件夹”并创建分支文件夹(例如,如果主干为htt

使用TortoiseSVN进行分支和合并的真正简单的“方法”是什么?

假设您的工作目录是从主干工作的:

右键单击“根工作文件夹”(此术语始终指Windows资源管理器)并执行
svn update
以将工作文件夹更新到最新的主干

确保你拥有的东西是稳定的

右键单击根工作文件夹并执行
svn commit
,以确保将任何本地更改提交到主干

右键单击根工作文件夹并执行
svn repo浏览器

如果存储库中还没有分支文件夹:右键单击主干文件夹上方的文件夹,执行“创建文件夹”并创建分支文件夹(例如,如果主干为
http://myserver/svn/MyRepository/MyProj/Trunk
,创建
http://myserver/svn/MyRepository/MyProj/Branches

右键单击主干文件夹并执行
复制到:
,然后输入分支机构的新文件夹名称。例如:
http://myserver/svn/MyRepository/MyProj/Branches/MyNewBranch
。(不要担心这会浪费大量空间…这称为“廉价副本”…除非文件内容发生更改,否则实际上不会复制文件内容)

关闭回购浏览器

右键单击工作文件夹根目录,然后执行:
svn开关
,然后选择新分支的文件夹名称(例如,
http://myserver/svn/MyRepository/MyProj/Branches/MyNewBranch
)。将所有其他内容保留为默认值

现在在你的分支上工作。当您到达里程碑时,右键单击根工作文件夹并执行
svn commit
以提交到您的分支。(这在后备箱中看不到)

如果其他人在同一个分支上工作,请定期从根工作文件夹执行
svn update
。这将从分支进行更新。(它不会从中继获取任何更新。)

无论其他分支是否在同一分支上工作,您都应该定期合并来自主干的更改,以确保您的分支以后不会太难集成。要执行定期合并:右键单击工作文件夹根目录并执行
svn merge
。选择“合并修订范围”。在“要从中合并的URL”下,选择中继(例如,
http://myserver/svn/MyRepository/MyProj/Trunk
)。将“修订范围”留空,并将其他内容留空。单击下一步。不处理所有内容,然后单击“合并”。确保一切正常。。。如果没有,请修复它。满意后,从工作根文件夹执行定期的
svn更新
,以从分支进行更新(即使只有您在分支上工作,这也是必要的,以满足svn的要求)。然后执行
svn commit
将合并的主干更改提交到分支。您可以根据需要定期重复此步骤

分支准备好集成后,最后一次执行上述步骤并进行最终测试。对分支执行最后一次提交

右键单击根工作文件夹并执行另一个
svn切换
,这次切换到主干(例如,
http://myserver/svn/MyRepository/MyProj/Trunk
)。这将从本质上“撤销”您在分支上所做的所有工作,但不要担心。。。你会找回你的工作的。(它还将报告许多您在分支中未更改的文件的更新,但这些只是“SVN属性”更改…不用担心。)

右键单击您的工作文件夹并执行
svn merge
。这一次,选择“重新整合分支”。对于URL,请输入您的分支(例如,
http://myserver/svn/MyRepository/MyProj/Branches/MyNewBranch
)。别管其他的,点击下一步。不处理所有内容,然后单击“合并”。现在,您已经完成了分支上的所有工作,以及主干上的最新工作

做最后的测试。一切都应该正常,因为这应该是您在分支中上次测试中拥有的同一组文件。右键单击根工作文件夹并执行
svn提交
。提交所有内容,甚至是您没有在分支中处理的文件(它们只是有“SVN属性”更改,但提交它们有助于SVN跟踪所有修订)

主干现在有了你所有的分支工作,以及你在分支上工作时在主干中所做的所有工作,并且一切正常。此外,SVN拥有所有文件的完整历史记录,甚至包括您在处理分支时签入的修订

可选:进入回购浏览器,右键单击您的分支文件夹(例如,
http://myserver/svn/MyRepository/MyProj/Branches/MyNewBranch
)并执行“删除”。这对主干没有影响,您不再需要分支。(即使你真的很偏执,也不要担心,因为如果你真的需要,你甚至可以随时从Repo浏览器中取回已删除的分支。)


请随时发表评论

我说的是“最简单”而不是“简单”:)谢谢!您是第一个真正感谢我的人(尽管有投票和收藏夹:),您将分支重新集成到主干中后,就不能再对该分支执行任何工作了,对吗?因为它不会跟踪更改,您将无法再与该分支合并?据我所知,合并不会在同一个分支上工作多次。这确实非常有用