首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >显示subrepos的修改是否已更改,或是否肮脏。

显示subrepos的修改是否已更改,或是否肮脏。
EN

Stack Overflow用户
提问于 2016-12-22 07:42:51
回答 1查看 195关注 0票数 1

我有一个汞存储库(主回购)和几个子存储库。

我需要一个mercurial命令,以显示子回购的修订是否更改了工作副本(包括旧版本和新版本的信息)或子回购状态是否脏。

我该怎么做?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-22 12:01:43

大多数mercurial命令都接受-S--subrepos标志。因此,通过调用hg st -S,如果它们的状态与记录在.hgsubstate文件中的状态不同,则将得到所有已更改的文件的列表,其中包括子repos中的文件:

代码语言:javascript
复制
$ cd opengfx/
$ hg st
$ hg id
10065545725a tip
$ cd ..
$ hg st -S
M opengfx/.hgtags
M opengfx/Makefile
A opengfx/lang/japanese.lng
$ cat .hgsubstate 
785bc42adf236f077333c55c58490cce16367e92 opengfx

至于您希望获得的实际修订,这是AFAIK不可能用一个命令。但是,您可以像上面这样检查单个子回购的状态,也可以通过给mercurial另一条操作路径来从主回购中检查它们:

代码语言:javascript
复制
$ hg id -R opengfx
10065545725a tip

为了获得每一次回购的状态,与父回购所需的情况相比,我会使用一些简单的bash:

代码语言:javascript
复制
for i in $(cat .hgsubstate | cut -d\  -f2); do echo $i is at $(hg id -R $i) but parent requires $(cat .hgsubstate | grep $i | cut -d\  -f1); done

它提供的输出类似于

代码语言:javascript
复制
opengfx is at 10065545725a tip but parent requires 785bc42adf236f077333c55c58490cce16367e92

以类似的方式,您还可以检查状态是否通过使用hg st而不是hg id进行修改。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41278063

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档