加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

版本控制 – 管理Mercurial中的代码:如何还原单个文件,“标记”

发布时间:2020-12-20 11:22:06 所属栏目:Python 来源:网络整理
导读:更新:我们最终使用的流程非常像 this schema(感谢 neuro的链接).我们将存储库按摩到默认稳定的状态(并且与我们的生产环境具有相同的代码),我们有一个开发分支,新功能的分支和发布的释放分支.一切似乎都很完美. 背景故事 我们的团队最近从使用SVN(使用Torois
更新:我们最终使用的流程非常像 this schema(感谢 neuro的链接).我们将存储库按摩到默认稳定的状态(并且与我们的生产环境具有相同的代码),我们有一个开发分支,新功能的分支和发布的释放分支.一切似乎都很完美.

背景故事

我们的团队最近从使用SVN(使用ToroiseSVN Windows客户端)到Mercurial(使用TortoiseHg Windows客户端)进行版本控制.我们已成功导出SVN存储库并将其导入Mercurial存储库.

我们现在有一个Mercurial存储库,我们可以在其中查看修订的整个历史记录(Mercurial中的更改集).

我们过去是怎么做到的

过去的生活更简单;我们的开发过程并不像现在这样真正的多流.行李箱用于保存所有代码 – 甚至是仍然在飞行中的变化(只要它没有破坏行李箱).在使用SVN管理版本时,我们会检查主干(包含所有代码),恢复我们不希望作为发布的一部分的各个更改,并为其创建标记.

用SVN编写我们想要的代码很容易.错误修复以前的版本并确保它是主干的一部分也很简单.

我们现在在做什么

在Mercurial中,我们需要能够获得“trunk”的快照(Mercurial中的默认值),并恢复个别更改.我们可以使用hg revert来做到这一点.

为了对此进行快照,我们创建了一个“命名分支” – 现在我们称之为Build-4.0.1.

挑战出现的地方

当在Build-4.0.1中发现错误时,开发将继续默认进行.我们假设该错误存在于其中一个恢复文件中.我们从Build-4.0.1的分支更改代码,创建一个新的“命名分支”(Build-4.0.2),并希望将其合并回默认值,而不会将恢复的代码推到新代码的顶部.我们怎样才能做到这一点?

或者,是否有更好的工作流程来管理Mercurial中的版本和代码?我非常喜欢这个wonderful SO answer on managing release branches的外观,虽然我不确定我们如何从我们现在的状态转换到它(默认情况下是飞行中的东西).

注意:我已经查看了Transplant extension,但尚未使用它 – 它可以成为解决这一挑战的一部分吗?

解决方法

好吧,首先,你对revert的使用对我来说似乎很奇怪.通常,它用于将对工作副本所做的修改还原为存储库的版本.

将工作副本向后移动的常用方法是更新:

hg update -r 1234

从那里,你可以标记,修改,提交等

要合并,您只需将发布分支合并到默认分支.它将像魅力一样工作,除非它是不同/旧版本.

移植工作正常,但做一些与合并有点不同的东西:它将您的变更集作为“差异”并将其应用为新的修改.

要管理您的版本,您可以查看其他答案(由我):

How to use mercurial for release management?

我们使用的是一个克隆/主分支,它拥有最稳定的版本,在某些时候发布.在这个克隆:分支,我们可以修复关键错误(修补程序).同时,我们使用dev clone / branch来开发.一旦从stable到dev完成,修补程序就会合并.当前开发完成后,我们将dev合并为stable / default.

这个schema很好理解:)

祝好运 !

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读