Iod*_*nas 11 mercurial shelving
我是Mercurial的新手,在评估过程中仍然不知何故,所以这四个概念对我来说有点混乱.有人被提到相当于Git的分期/索引概念,或者甚至比Git的Staging更好.
如何将四个命令hg graft,hg record,hg qrecord和hg shelve(和hg transplant,但是这是在解释移植物抗移植的话)进行相互比较,以及如何的概念队列和dirstate?在哪个用例中选择一个用户?
我知道每个都有帮助页面,但是仍然很难弄清楚每个人的作用,因为VCS对我来说是一个新主题.
Tim*_*gan 17
Mercurial的设计根本不包括临时区域的概念.也就是说,本地修改和提交之间没有中间状态.
以下是您提到的每个概念的概述:
hg graft相当于git cherry-pick.它将提交从一个分支复制到另一个分支.此功能的典型用例是将错误修复从一个发布分支复制到另一个发布分支.此命令替换旧的(现在已过时)hg transplant扩展.
hg record和hg qrecord类似的git add --patch.它们允许您以交互方式选择帅哥进行提交.因此,如果您修改了一个文件的几个不同区域,您可以选择您实际想要提交的区域(即帅哥)以及您希望作为本地修改的区域.
qrecord仅在您mq启用时才可用.它提交mq补丁而不是标准提交.
hg shelve类似于git stash.它允许您暂时保留对文件(或文件的深刻)的本地修改.这些修改可以unshelved在您为它们做好准备时进行.
dirstate是Mercurial源代码的内部类.它不会暴露给用户.
Mercurial Queues(也知道mq)可能是您到Mercurial的临时区域最近的地方.以下是Mercurial维基的描述:
更改将作为已提交到Mercurial的修补程序进行维护.可以删除或重新排序提交,并可以根据工作目录中所做的更改刷新底层修补程序.修补程序目录也可以置于修订控制之下,因此您可以拥有对修补程序所做更改的单独历史记录.
mq通常用于抛光/返工您在本地测试的提交,但尚未推送到公共场所.有些人还使用它来维护对第三方代码的一组修改.
| 归档时间: |
|
| 查看次数: |
1873 次 |
| 最近记录: |