【问题标题】:Preserving working directory changes in hg保留 hg 中的工作目录更改
【发布时间】:2020-07-03 10:36:06
【问题描述】:

我使用 ant 脚本来部署我的应用程序。然而,在部署之前,我通过将它们提交到另一个分支来保留任何未提交的更改,但在我当前的分支中保持它们未提交。我通过搁置更改、更新到另一个分支、取消搁置它们(但使用 --keep)、提交、更新回原始分支并再次取消搁置(但不使用 --keep)来做到这一点。

这个问题是双重的。首先,搁置会改变我的项目内容,这在某些情况下会与我的 IDE 混淆。其次,当文件被搁置后,蚂蚁脚本中发生错误,但在它们成功取消搁置之前,我不得不手动取消搁置它们,这很痛苦。与其他分支之间的更新也是如此。

有更好的方法吗?

-- 编辑--

发布此内容后,我设法实施了一个更好但并不理想的解决方案。我检查是否有本地未提交的更改,如果有,我将它们搁置,将 hg 中的当前分支模拟为另一个分支(使用 debugsetparent),在工作目录中提交任何更改(现在这实际上是与接受来自“其他”的所有更改但不随时更新的原始分支),取消搁置先前搁置的更改,提交它们并将 hg 中的当前分支模拟为原始分支,将未搁置的更改保留为本地未提交的更改.

这更好,因为我不更新到另一个分支,并且就 IDE 而言,发生的任何实际更改都是搁置/取消搁置本地更改。以前,它会受到我当前分支和另一个分支之间的所有更改的影响,但现在可以避免这种情况。

这仍然不是一个理想的解决方案。我可以完全避免搁置,但是另一个分支中的提交将包含本地更改,这些更改与两个分支之间的差异导致的任何更改捆绑在一起,任何我不喜欢这样,因为它违背了能够快速检查部署之间所做的更改。

【问题讨论】:

  • 您使用的是 Tortoise 搁板还是普通的 hg 搁板?它们不一样,THG 版本的效果也不尽如人意。
  • 哦,我仅将 THG 用于手动操作存储库。对于我使用 hg 的其他所有内容。

标签: mercurial tortoisehg


【解决方案1】:

为了不危及当前工作,最好有 2 个存储库,一个用于开发,另一个用于部署。

将主存储库本地克隆到磁盘中的另一个路径,并将其用于部署,主存储库应用于开发。

当您需要部署新版本时,与主存储库同步,并更新到所需的提交。

【讨论】:

  • 虽然这肯定是一个可行的解决方案,但我觉得使用版本控制软件本身应该已经是一种不危及当前工作的方法。它们有点出于那个特定的原因......
  • 这也有助于避免错误地将 dev 分支部署到生产环境。 ;)
  • 是的。 :) 但我确实知道如何在没有存储库副本的情况下解决该问题 - 只需在部署时自动检查分支。
猜你喜欢
  • 1970-01-01
  • 2013-07-24
  • 2011-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多