【问题标题】:Mercurial best practicesMercurial 最佳实践
【发布时间】:2012-03-29 10:15:55
【问题描述】:

我是 SCM 的新手,我知道有一些指导方针和建议可以遵循,但我不知道其中任何一个。有几件事让我对 SCM 感到困惑。例如:

  1. 我知道最好的做法是尽快提交并尽可能多地提交,但如果我正在处理需要几天甚至几周的更改/功能,我该怎么办?我可以拆分任务,但是,善变的说,一个人永远不应该在考虑未来的变化的情况下做出改变。提交中的每一个更改都应该在最后阶段。
  2. 分支在什么情况下有用?除了在 SCM 中拆分不同的版本。
  3. 为什么以及何时应该克隆存储库?

对于那些愚蠢的问题和我蹩脚的英语,我感到抱歉,我在网上阅读了很多关于 SCM 的文章,但每一篇文章都包含相互冲突的信息。

谢谢

【问题讨论】:

  • 您也可以在项目邮件列表中提问:mercurial@selenic.com 我们可以在那里讨论它们。 Stack Overflow 更适合“我如何做 X?”形式的问题,而不是“我什么时候或为什么应该做 X?”。

标签: mercurial


【解决方案1】:
  1. 在逻辑完成或需要执行某项操作时提交 对分支采取行动。确认代码正确后推送 通过单元测试。提交是本地的,推送是公开的。
  2. 当你要开始需要的东西时分支 几天甚至几周:-)
  3. 根据需要进行克隆,没有最佳实践规则。

心态不是经常提交,而是经常合并。如果您在分支上,请经常与主线合并。较小的块更容易消化,您可以了解正在开发的内容(以相应地调整您的代码)。

【讨论】:

  • 非常感谢您的回复。还有一件事我不明白。你说当一个功能需要几个星期的工作时我应该创建一个分支。为什么我应该使用分支而不是主存储库?我应该如何使用分支,我可以向该分支提交未完成的更改,当它完成时,我将与主存储库合并并仅推送完成的更改集(来自主存储库)?这就是你的意思?如果是这样,新创建的分支也会被推送吗?再次感谢:-)
  • 我的工作方式是创建一个与 main 相邻的分支来做一些相关的工作,这意味着我可以让主分支与其余的开发保持同步,并在任何时候从它合并到我的命名分支我喜欢。完成后,我将进行一次从 main 到 named 的最终合并,然后进行从 named 到 main 的无操作合并(无操作,因为我已经以另一种方式完成了合并)。当您推送时,您可以推送所有内容或仅推送您从命名合并到 main 的一个变更集。
  • 抱歉这个愚蠢的问题,但是无操作合并意味着什么。正如您已经猜到的那样,我在这个领域是全新的:(。关于分支的问题,如果我理解正确,当我需要做一些繁重的工作时,我会在其中创建一个分支来处理一些肮脏的工作,当我有一些进展我可以将最新的变更集合并到主分支。当我完成这个“繁重的工作”时,我将主仓库合并到一个命名的仓库中(所以稍后我会避免合并冲突),然后,我合并最新的变更集命名分支到主分支。关于推送,最好只推送最后一个变更集或
  • 一切?再次感谢亚当您的时间:)
  • @Davita 您在推送方面没有太多选择,服务器会说明您没有哪些变更集,因此大多数时候您推送所有内容。通过无操作合并,我的意思是,如果您从默认合并到您的分支,那么当您从分支合并到默认时,您将不会遇到任何冲突,并且合并将“正常工作”。
猜你喜欢
  • 1970-01-01
  • 2012-07-03
  • 2011-02-20
  • 1970-01-01
  • 2010-09-05
  • 2014-12-21
  • 2010-12-23
  • 2010-10-14
  • 2023-03-19
相关资源
最近更新 更多