mercurial - 使用 Mercurial,如果经常提交中间状态,如何与固定修订版进行比较?

标签 mercurial dvcs

使用 Mercurial,假设我执行了 hg pullhg up,现在本地存储库和工作目录都是最新的。

如果我经常提交,比如 1 天后,然后 2 天后,并且想要与现在的修订版本进行比较,该怎么办?

否则,差异始终与先前提交的版本进行比较。

我可以立即使用铅笔和纸写下修订号,例如 4117,然后在 1 天后、2 天后以及我确信之前的任何时间将其推送到远程中央仓库,做一个

hg vdiff -r 4117      

(使用vdiffdiff)。但是,除了记住这个“神奇的数字”4117,有没有办法让 Mercurial 以某种方式记住这个数字呢?这样,hg vdiff 就可以查看针对已提交代码的微小更改之间的差异,但在推送到远程存储库之前有一个显示所有更改的差异。

(或者,如果有命令显示自上次拉取以来的修订号,它也应该显示 4117,所以在 bash 上我们可以执行类似 hg vdiff -r `hg --what-is-last-pull` )

更新:hg out --patch 是否显示将推送到远程存储库的内容的差异?如果是这样,也许它可以达到目的,而无需关心“神奇数字”。但是如何使用 kdiff3 或任何其他差异工具显示补丁差异?另外,似乎我们可以执行 hg out ,如果我们看到 4118、4119、4120,那么我们就知道是否执行 hg vdiff -r ___ 我们应该使用 (4118 - 1) 即 4117。

更新2:实际上,hg out --patch 显示了本地存储库和远程存储库之间的差异,因此它很接近,但与工作目录与本地或远程存储库之间的差异。

最佳答案

如果您想标记修订,您可以使用书签扩展。它与 Mercurial 一起发货。文档可用 here

就你而言,

hg pull -u
hg bookmarks lastpull
..hack..hack..
hg ci -m new-hack
hg diff -r lastpull:tip
hg bookmarks -d lastpull

关于mercurial - 使用 Mercurial,如果经常提交中间状态,如何与固定修订版进行比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3202622/

相关文章:

git - 是否有 Git 命令导入 hg 存储库

git - 如何将修订历史从 mercurial 或 git 导出到 cvs?

git - ~/.gitconfig 中针对 Mac 的特定优化

git - 像 Git 这样的 DVCS 是否不适合使用持续集成的团队?

git - 将 Bugzilla 问题迁移到 github 问题跟踪器

mercurial - Vista 64 位中的 TortoiseHg 不显示上下文菜单

Mercurial 克隆错误

version-control - 删除所有本地变更集并恢复为树

mercurial - 在 Mercurial (hg) 中,如果发出 "hg push",如何查看将推送的文件列表?

Mercurial如何回滚到一个标签?