команды hg в хуке powershell от tortoisehg

Я создал сценарий 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 также не влияют. Требуется ли специальный синтаксис для выполнения hg из tortoisehg, выполняется ли он по правильному пути?


person kieferm    schedule 23.03.2013    source источник
comment
Где установлен $repodir?   -  person manojlds    schedule 23.03.2013
comment
Я отредактировал исходный вопрос, чтобы показать, где он установлен   -  person kieferm    schedule 23.03.2013


Ответы (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.

person Andy Arismendi    schedule 24.03.2013
comment
Это сработало. Я посмотрю, почему он работал изнутри powershell, а не tortoisehg. Спасибо! - person kieferm; 24.03.2013
comment
Является ли grep псевдонимом powershell или внешней программой? Это не встроенный псевдоним, поэтому, если это настраиваемый псевдоним, это может означать, что ваш профиль powershell не загружается через TortoiseHg, или если это внешняя программа, это может означать, что ее нет в пути в TortoiseHg. - person Andy Arismendi; 24.03.2013
comment
Да, в профиле, который загружает TortoiseHg, нет grep. Я ожидал, что у него будет плохое значение выхода, если он вызовет отсутствующую функцию. - person kieferm; 25.03.2013