首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用mercurial实现特性时的重构

使用mercurial实现特性时的重构
EN

Stack Overflow用户
提问于 2012-03-01 08:52:19
回答 4查看 160关注 0票数 1

在处理遗留代码时,我需要关于使用mercurial的开发过程的建议。

在为遗留项目开发新功能时,通常需要在特性实现期间重构现有代码的一部分。我的意思是,我没有预料到重构,我需要在进行特性实现之前进行重构,因为我将使用重构代码。

因为我认为重构是有价值的,即使这个特性没有实现,我希望它本身就是一个变更集,而不是“特性”变更集的一部分。此外,由于我处理遗留代码,它不是很好的单元测试,所以我只需要测试(手动)重构,而不需要开发特性的代码。

因此,我当前处理遗留代码的过程如下:

  1. 关于这个特性的工作
  2. 噢,我需要重构一些东西,所以
  3. 从工作副本的当前状态提取修补程序
  4. 恢复更改
  5. 进行重构和测试!
  6. 将变更集提交到汞存储库
  7. 重新导入修补程序并手动处理冲突。
  8. 回到1。

在我使用汞的过程中有什么可以改进的吗?是否有一种方法可以暂时保存工作副本,并在我的工作副本中放回保存的更改后处理冲突?

如果不是,git是否更多地解决了这个用例而不是mercurial?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-03-01 09:50:19

shelve扩展为您执行步骤3、4和7。详细信息可以找到这里

如果您使用的是TortoiseHg,它是内置在存储库菜单中的工作台上的。

票数 2
EN

Stack Overflow用户

发布于 2012-03-01 10:14:41

我的小偏差

  • 如果没有MQ,我无法想象自己的严重开发,所以

3-将当前工作保存为MQ-修补程序

四四八九

..。

6-在单独的分支中提交

在重构分支的顶部,解决冲突,qpop

7a -合并重构-分支为特征分支

7b -q推送功能分支,解决冲突

7c - qfinish

票数 2
EN

Stack Overflow用户

发布于 2012-03-01 10:14:51

我将提交代码,而不是提取修补程序:

  1. 关于这个特性的工作
  2. 发现你需要重构一些东西
  3. 提交正在进行的工作
  4. 在提交之前对修订进行更新
  5. 做重构,测试
  6. 提交重构代码
  7. 与先前提交的正在进行的工作合并
  8. 继续,冲洗,重复

如果您在步骤3中提交的工作是功能性的,则奖励点:),因为中断的代码是在重构之后恢复工作的一个糟糕的起点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9513189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档