gpt4 book ai didi

Mercurial:移植 vs. 记录 vs. qrecord vs. shelve vs. 移植 vs. dirstate vs. queue

转载 作者:行者123 更新时间:2023-12-04 01:52:07 32 4
gpt4 key购买 nike

我是 Mercurial 的新手,并且不知何故仍处于评估过程中,所以这四个概念对我来说有点困惑。有些被提到等同于 Git 的 Staging/Index 概念,有些甚至比 Git 的 Staging 更好。
hg graft四个命令怎么做, hg record , hg qrecordhg shelve (和 hg transplant ,但这已在 Graft vs. Transplant 中解释)相互比较,以及 的概念如何队列 目录 ?在哪些用例中选择一个而不是另一个?

我知道每个页面都有帮助页面,但是仍然很难弄清楚每个页面的作用,因为 VCS 通常对我来说是一个新主题。

最佳答案

Mercurial 的设计根本不包括暂存区的概念。即本地修改和提交之间没有中间状态。

以下是您提到的每个概念的概述:

hg graft 相当于 git cherry-pick .它将提交从一个分支复制到另一个分支。此功能的典型用例是将错误修复从一个发布分支复制到另一个。此命令替换旧的(现在已过时) hg transplant 延期。

hg record hg qrecord类似于 git add --patch .它们允许您以交互方式选择要提交的 block 。因此,如果您修改了一个文件的多个不同区域,您可以选择您实际想要提交的区域(即大块)以及您想要保留哪些区域作为本地修改。
qrecord仅当您拥有 mq 时才可用启用。它 promise mq补丁而不是标准提交。

hg shelve 类似于 git stash .它允许您暂时搁置对文件(或文件大块)的本地修改。然后这些修改可以是unshelved当你准备好迎接他们的时候。
dirstate是 Mercurial 源代码的内部类。它不会暴露给用户。

Mercurial Queues (也称为 mq )可能是您最接近 Mercurial 中转区的位置。以下是 Mercurial wiki 的描述:

Changes are maintained as patches which are committed into Mercurial. Commits can be removed or reordered, and the underlying patch can be refreshed based on changes made in the working directory. The patch directory can also be placed under revision control, so you can have a separate history of changes made to your patches.


mq通常用于完善/返工您在本地测试但尚未推送到公共(public)位置的提交。有些人还使用它来维护对 3rd 方代码的一组修改。

关于Mercurial:移植 vs. 记录 vs. qrecord vs. shelve vs. 移植 vs. dirstate vs. queue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13631273/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com