来自tortoisehg的powershell钩子中的hg命令

时间:2013-03-23 18:13:10

标签: powershell mercurial tortoisehg mercurial-hook

我创建了一个powershell脚本,作为提交挂钩运行,将用户名写入文件。我在powershell中用来提取用户名的命令是:

$repodir = "C:\Users\Administrator\Documents\Visual Studio 2012\Projects\testRepo"
cd $repodir
$hguser = hg --cwd $repodir tip | grep user

其中$ repodir是存储库的目录。当我从powershell命令行提交时,钩子执行根据需要提取用户名。当我从tortoisehg工作台内部提交钩子时执行(我可以看到输出文件中的更改)但是$ hguser中没有信息,其他hg命令也没有影响。从tortoisehg中执行hg是否需要特殊的语法,它是否在正确的路径中执行?

1 个答案:

答案 0 :(得分:1)

它似乎对我有用。

<强> .hg / hgrc

[hooks]
commit = powershell.exe -File "C:\users\andy\desktop\test\test.ps1"

<强> test.ps1

$repodir = "C:\Users\andy\Desktop\Test"
cd $repodir
$hguser = (hg tip) | ? {$_ -match '^user:\s+([\w\s]+\w)'} | % {$matches[1]}
$hguser | Out-File user.txt -Encoding ASCII

user.txt通过TortoiseHg / hg.exe提交填充。使用TortoiseHg 2.7。