Хотя это не было бы применимо к человеку, который первоначально задавал вопрос, мне нужно было сделать что-то похожее ... но мне нужна была числовая ревизия (да, я знаю, что число зависит от хранилища, но в контексте где сценарий привык, это было хорошо). У меня также не было проблем с вызовом hg.exe, потому что везде, где это возможно, можно запустить hg.exe.
Сценарий NAnt, с которым я наконец-то закончил, заключался в следующем:
<exec program="hg.exe" output="CurrentMercurialRevision.txt">
<arg value="id" />
<arg value="-n" />
</exec>
<loadfile file="CurrentMercurialRevision.txt" property="buildNumber" />
К сожалению, в NUnit, похоже, нет способа читать непосредственно в свойство, поэтому мне пришлось использовать промежуточный текстовый файл и обработать его в свойстве с помощью loadfile. Мне также пришлось добавить «CurrentMercurialRevision.txt» в файл .hgignore ... но если вы знакомы с Mercurial, вы, наверное, уже догадались. ; -)
Надеюсь, это кому-нибудь поможет.