代码之家  ›  专栏  ›  技术社区  ›  nonopolarity

使用Mercurial,如果经常提交中间状态,如何与固定修订版区分?

  •  2
  • nonopolarity  · 技术社区  · 14 年前

    使用Mercurial,说如果我 hg pull hg up 现在本地回购和工作目录都是最新的。

    如果我经常提交,比如说1天之后,然后2天之后,并且希望与现在的修订有所不同呢?

    否则,差异总是与以前提交的版本进行比较。

    4117 ,然后1天后,2天后,以及我确定并推送到远程中央回购之前的任何时间,执行

    hg vdiff -r 4117      
    

    (使用 vdiff diff ). 但是有没有办法让Mercurial记住这个数字,而不是记住这个“神奇的数字”4117呢?那样的话, hg vdiff 是要查看小更改与提交的代码之间的区别,但是有一个diff,它在推送到远程repo之前显示所有更改。

    4117 所以在bash上我们可以 hg vdiff -r `hg --what-is-last-pull`

    更新: hg out --patch 显示将推送到远程回购的内容的差异?如果是这样的话,也许它不在乎“幻数”就能达到目的。但是如何使用kdiff3或任何其他diff工具显示补丁diff呢?而且,看来我们能做到 hg out hg vdiff -r ___ 我们应该使用(4118-1),也就是4117。

    更新2: 事实上, hg out—补丁

    3 回复  |  直到 14 年前
        1
  •  3
  •   in3xes    14 年前

    如果要标记修订,可以使用书签扩展名。它与mercurial一起装运。提供文件 here

    hg pull -u
    hg bookmarks lastpull
    ..hack..hack..
    hg ci -m new-hack
    hg diff -r lastpull:tip
    hg bookmarks -d lastpull
    
        2
  •  2
  •   Ry4an Brase    14 年前

    用多个克隆来做。从远程repo克隆时最初使用 clone -U 创建完全没有工作目录文件的克隆。然后在本地再次克隆,例如:

    $ hg clone my-local-clone-with-no-working-files my-working-clone
    

    做你的工作 my-working-clone 然后你可以随时查看 tip 在我没有工作文件的本地克隆中,查看你最后从服务器中提取的内容。如果您想了解更多,可以为以下对象创建shell别名:

    hg diff -r $(hg -R $(hg root)/../my-local-clone-with-no-working-files id -i -r tip)
    

    它会将运行repo的工作目录(我的工作克隆)与上次从服务器中提取的内容的提示进行比较。

    这不需要额外的磁盘空间 因为本地克隆人在封面下使用硬链接 my-local-clone-with-no-working-files

        3
  •  0
  •   Rudi    14 年前

    您可以用本地标记替换笔和纸: hg tag -l -r <revision number on paper> tagname hg tag -l --remove tagname .