我一直在Trunk工作,因为我应该为一些重大变化创建一个分支(Subversion,TortoiseSVN)

Mar*_*k A 8 svn tortoisesvn

我开始了一系列重大变化,触及了应用程序的许多不同领域,需要更改数据库模式,我们的对象和表示代码.我从rev.1101开始你可以认为这是一个完美的案例,可以创建一个分支,以便稍后在测试和完成后合并并集成回Trunk.

但我没有创建一个新的分支.我一直在研究Trunk.

这是我们开始的情况

Trunk现在处于rev.1116并且我处于一个不值得羡慕的(?)位置,我必须对15个版本的修订版执行一些错误修正,这是当前版本的生产,然后发布bugfixed"rev.1101 + bugfixes "没有任何来自转速1102-1116的工作的生产.

问题:如何"恢复"主干并将所有最近的更改移动到分支? 我现在从Trunk中的内容创建一个分支,然后成为/ Branches/MajorChangeSet,然后将Trunk恢复为rev.1101,将其视为现在正式的Trunk并开始处理那里的错误修正?

我们的SVN修订版,分支机构等的地图

更新:我遵循以下ChrisH推荐的程序(根据上面的模型),我们现在状态良好.我们一直在通过修复和次要功能增强来更新"rev.1102产品".这些都是无痛的,很容易合并到主干中,以确保这些变化也成为我们新的开发工作.谢谢大家!

Branch v.Strunk | 科/标签/中继?| 分支何时?

Chr*_*isH 5

我建议每次开始发布候选版本时都要创建一个发布分支.Trunk保持活着,可以处理发布中没有的内容(版本.next,如我们所说).发布分支仅保留用于错误修复和必须在发布中的内容.最好先将它们提交到trunk,然后将它们合并到发布分支.总是尝试将FROM trunk合并到其他分支,因为这样可以使事情变得更容易.将"功能分支"重新集成到主干中是很好的,但是应该避免在发布分支中修复错误然后将其合并回主干.

在发布之后,发布分支会被保留以修复其他错误并最终进行小点发布.您仍然应该首先修复主干中的错误(没有将它们放在.next版本中)并将它们合并到您仍在积极维护的每个发布分支中.

好消息是你可以在事后开始这种方法.返回到当前版本的主干版本,并从中创建一个发布分支.当您在日志查看器中右键单击修订版时,TortoiseSVN有一个方便的菜单,用于从特定修订版创建标记和分支.

获得发布分支后,您需要检查它并开始合并您要发布的错误修复.你在树干上的所有新工作都保持在原地.如果trunk和release分支显着不同,那么你可能需要直接在发布分支上进行修复,但是尝试在trunk中进行修复并尽可能合并到发布分支.

还有一件事.每次从发布分支发布发行版时,都应该使用发行版的版本标签复制到标记.稍后可以方便地找出版本之间发生了哪些变化,或者如果需要,可以重建旧版本.因为我们在产品版本中嵌入了SVN修订版号,所以我们会在发布版本时完成标记的完整构建,这样如果客户报告错误,我们就知道他们正在运行什么代码(因为SVN版本是唯一的)整个存储库).

希望有所帮助,祝你好运.

  • 我很高兴为你做得很好,我喜欢用图表更新问题.理解图片要比我发布的文字墙容易得多.:) (2认同)