Mercurial本地存储库的完整状态

时间:2016-05-02 20:11:33

标签: mercurial mercurial-extension

与远程存储库相比,我经常想知道项目本地副本的完整状态。完整状态,我的意思是:

  • 本地是否存在一些未提交的更改?
  • 本地是否有一些未提交的提交?
  • 是否有远程无法提交的提交?
  • 我是默认分支的负责人吗?

我知道我可以使用一些图形工具,如HgView或TortoiseHg,甚至我的IDE来处理Mercurial存储库,但我发现在同时处理多个项目/ repos时使用CLI更方便。 / p>

我目前的做法是使用别名

alias hg_full='hg incoming; hg outgoing; hg status'

如果一切正常(即本地与遥控器同步),我确保通过

处于默认状态
hg update default

这种方法非常有效,但是当我使用慢速远程存储库时,在执行更新之前等待传入和传出命令都返回是非常烦人的。

是否有某种方式(通过扩展名或更高级的命令)获取本地副本的完整状态摘要与远程存储库进行比较而不依次执行hg inhg out?< / p>

2 个答案:

答案 0 :(得分:3)

我认为hg summary --remote可能正是您所寻找的:

$ hg summary --remote
parent: 1:c15d3f90697a tip
 commit message here
branch: default
commit: 1 modified
update: (current)
remote: 1 or more incoming, 1 outgoing

答案 1 :(得分:0)

您可以通过执行hg incoming --bundle <filename>来节省一些网络流量,hg outgoing可以获取传入的变更集并将其存储在捆绑文件中。然后,您可以针对捆绑文件运行hg pull(或hg incoming --bundle incoming.bundle # Creates the bundle hg outgoing incoming.bundle hg pull incoming.bundle hg update default ),该文件根本不使用网络。

$idAsdf = $stmtAsdf->insert_id;