2010-11-03 30 views
1

我们试图找到一种方式来了解一个或多个输入修订的整个变更在pretxnchangegroup钩内Mercurial库。我们使用版本1.6.3。pretxnchangegroup钩无法看到整个变更

我们可以用$ HG_NODE得到第一个传入的更改,但hg tip仍然指向最老的已提交的更改,而不是我们即将要处理的更改。同为汞log -rNode:

我们甚至不能似乎得到$ HG_NODE的DIFF在这个钩子,HG日志只是说:“未知版本”

看起来这是关系到http://groups.google.com/group/mercurial_general/browse_thread/thread/9321b94b08ab04b9

有没有人有同样的问题,并以某种方式解决它?

+0

下面我想你的术语是有点过我会去一个答案。你试图“看到整个变更组”,它由许多变更集组成。 $ HG_NODE指向一个变更集。 – 2010-11-03 13:54:07

回答

1

这绝对应该是既tiplog反映到来后信息的情况。你肯定在你运行这些命令的目录是库triggehg克隆hooktest hooktest克隆 环钩?我可以看到,不是这种情况的唯一方法是如果你使用hg -R,你会知道。

这是一个测试脚本,你应该能够粘贴到(UNIX或Cygwin的)外壳:

hg init hooktest 
echo this >> hooktest/afile 
echo -e '[hooks]\npretxnchangegroup = hg log && hg tip' >> hooktest/.hg/hgrc 
hg -R hooktest commit -A -m 'initial commit' 
hg clone hooktest hooktest-clone 
echo more >> hooktest-clone/afile 
hg -R hooktest-clone commit -m 'second commit' 
hg -R hooktest-clone push 

当我粘贴,我得到:

[email protected] [~/hg] % hg init hooktest 
[email protected] [~/hg] %  echo this >> hooktest/afile 
[email protected] [~/hg] %  echo -e '[hooks]\npretxnchangegroup = hg log && hg tip' >> hooktest/.hg/hgrc 
[email protected] [~/hg] %  hg -R hooktest commit -A -m 'initial commit' 
adding afile 
[email protected] [~/hg] %  hg clone hooktest hooktest-clone 
updating working directory 
1 files updated, 0 files merged, 0 files removed, 0 files unresolved 
[email protected] [~/hg] %  echo more >> hooktest-clone/afile 
[email protected] [~/hg] %  hg -R hooktest-clone commit -m 'second commit' 
[email protected] [~/hg] %  hg -R hooktest-clone push 
pushing to /home/msi/ry4an/hg/hooktest 
searching for changes 
adding changesets 
adding manifests 
adding file changes 
added 1 changesets with 1 changes to 1 files 
changeset: 1:ab2cec57f878 
tag:   tip 
user:  Ry4an Brase <[email protected]> 
date:  Wed Nov 03 09:10:40 2010 -0500 
summary:  second commit 

changeset: 0:30db2e527437 
user:  Ry4an Brase <[email protected]> 
date:  Wed Nov 03 09:10:39 2010 -0500 
summary:  initial commit 

changeset: 1:ab2cec57f878 
tag:   tip 
user:  Ry4an Brase <[email protected]> 
date:  Wed Nov 03 09:10:40 2010 -0500 
summary:  second commit 

[email protected] [~/hg] % 

在这里你可以看到,无论是'hg log'和'hg tip'显示钩子中的新变更集。

确实为你试运行?

+0

原来,它必须做一些与回购克隆的路径。它似乎工作正常,如果我克隆ssh:// someserver // some/absolute/path但ssh:// someserver /// some/absolute/path does not。出于某种原因,我们认为我们需要树形斜线。 – zedoo 2010-11-03 16:36:09

+0

哦,顺便说一下,我对此非常模糊,这似乎很奇怪...... – zedoo 2010-11-03 16:36:38

+0

是的,三个斜线会是错误的,但我也会认为无害。那么现在这完全为你工作?如果不是什么具体不? – 2010-11-03 19:13:44