首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >汞嵌套子表(subrepos,subrepos中的subrepos)不是递归地执行吗?

汞嵌套子表(subrepos,subrepos中的subrepos)不是递归地执行吗?
EN

Stack Overflow用户
提问于 2010-06-18 21:17:24
回答 1查看 557关注 0票数 2

我有这样一个变化莫测的回购,在另一个子回购里面有个子回购:

代码语言:javascript
复制
Root 
  .hg 
  .hgsub 
  .hgsubstate 
  Nested
    .hg 
    .hgsub 
    .hgsubstate 
    foo.txt 
    FurtherNested 
     .hg 
     bar.txt

如果我更改了foo.txt和bar.txt,并从根内部提交,那么一切都很好,所有嵌套的子目录都提交了。但是,如果我只更改bar.txt并从根提交,那么Hg认为什么都不会改变。我必须从内部嵌套提交,以便在只有FurtherNested更改的情况下才能提交。看来,为了使嵌套子表工作,每个嵌套级别都必须包含更改才能使递归工作。

我在关于subrepos的Mercurial文档中所读到的任何内容似乎都意味着,subrepo提交只有在发生更改时才会传播。事实上,它说的正好相反:

当我们提交时,Mercurial将尝试在所有定义的子defined中递归提交.

因此,我的问题是,这是预期的,还是什么东西坏了,或只是还没有做(在Windows上的1.5.4变化无常)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-07-27 18:46:42

在我看来这只是个坏东西。相关的源代码(在subrepo.py中)似乎没有恢复到子级,即:

代码语言:javascript
复制
def dirty(self):
    r = self._state[1]
    if r == '':
        return True
    w = self._repo[None]
    if w.p1() != self._repo[r]: # version checked out change
        return True
    return w.dirty() # working directory changed

虽然我对代码的了解还不够深入,但修复起来可能不会太困难。这可能是值得在汞邮寄名单上张贴和/或归档一个错误。我怀疑马特和贝努伊特正在读这篇文章,但他们确实读了所有张贴在那里的东西。

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

https://stackoverflow.com/questions/3073149

复制
相关文章

相似问题

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