当前位置:  开发笔记 > 开发工具 > 正文

使用Mercurial,有一种简单的方法可以使用默认远程存储库中的tip文件来区分我的工作副本

如何解决《使用Mercurial,有一种简单的方法可以使用默认远程存储库中的tip文件来区分我的工作副本》经验,为你挑选了1个好方法。

当使用mercurial时,我希望能够使用我的默认远程存储库中的tip文件来区分文件的工作副本.是否有捷径可寻?

我知道我可以做一个"hg incoming -p"来看看即将发生的补丁变更集,但是如果我直接看到特定文件的实际更改,我会很高兴.最新的东西(或者我可能会推出的东西).

我现在能想到的最简单的事情就是创建一个小脚本来查看.hg/hgrc中的默认位置并使用curl下载文件(如果它是通过http,否则scp通过ssh,或者只是做一个直接diff,如果它在本地文件系统上)然后将工作副本或提示与该临时副本区分开来.

我正在努力向我的团队出售mercurial,我的一个团队成员今天提出了这个问题,他们可以使用他们的GUI工具在SVN中轻松完成.



1> Ted Naleid..:

经过一番挖掘后,我遇到了Rdiff扩展,它完成了我想要的大部分工作.

它没有mercurial,但它可以通过克隆存储库来安装:

hg clone http://hg.kublai.com/mercurial/extensions/rdiff 

然后修改〜/ .hgrc文件以加载扩展名:

[extensions] 
rdiff=~/path/to/rdiff/repo/rdiff.py

它有点古怪,它实际上通过检测第一个参数是否是远程URL来修改现有的"hg diff"命令.如果是,那么它将在您的本地仓库(而不是工作副本)中针对您的提示文件区分该文件.这是因为远程repo在参数中是第一个,它与我期望的相反,但你可以将"--reverse"传递给hg diff命令来切换它.

我可以看到这些是扩展的潜在增强,但是现在,我可以在我的starup文件中使用bash/zsh shell函数解决它们.它对我的工作副本进行了临时检查(由mercurial事务保存,因此可以回滚),执行反向差异,然后回滚事务以返回原来的状态:

hgrdiff() {
    hg commit -m "temp commit for remote diff" && 
    hg diff --reverse http://my_hardcoded_repo $* &&
    hg rollback      # revert the temporary commit
}

然后调用它:

hgrdiff 

推荐阅读
云聪京初瑞子_617
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有