Mercurial:如果subrepos脏了,阻止提交?

时间:2011-01-18 22:09:29

标签: mercurial mercurial-subrepos

是否有任何简单的方法可以阻止提交到存储库,如果它有脏的子目录?

当subrepo意外地与父存储库一起提交时,真的很烦人。

2 个答案:

答案 0 :(得分:1)

我不知道简单的行在哪里,但你可以这样做一个钩子:

for subrepo in $(find $(hg root) -type d -name .hg) ; do
  if [ "$(hg --repository ${subrepo$$.hg} status -mard)" != "" ] ; then
    echo Uncommitted subrepo changes in ${subrepo%%.hg}
    exit 1
  fi
done

将其保存在~/bin/dirtysubrepos之类的内容中,然后将其添加到~/.hgrc

[hooks]
precommit.dirtysuprepos = ~/bin/dirtysubrepos

免责声明:此代码从未在除此文本框之外的任何位置输入,因此几乎肯定会出现语法错误。

答案 1 :(得分:0)

由于某种原因,我不能评论Ry4an的答案(没有“添加评论”链接供我点击),但他的答案中有一个小错字:${subrepo$$.hg}应该是${subrepo%%.hg} }}