我试图编写一个Powershell脚本来执行一些与我从Mercurial日志命令中获得的输出有关的事情。下面是我到目前为止有:为什么Mercurial忽略了我在Powershell中给出的回购路径?
param([string] $Path, [string] $From, [string] $To)
$file_list = hg log -R ${Path} -r ${From}:${To} --style fileList
$file_list
当我运行从一个提示这个脚本名为.psl(当前工作目录是我的桌面),我收到以下错误:
hg.exe : abort: :tip not under root
我加周围的命令引号,所以我可以看到什么是越来越像这样运行:
param([string] $Path, [string] $From, [string] $To)
$file_list = "hg log -R ${Path} -r ${From}:${To} --style fileList"
$file_list
当我这样称呼它:
.\MyScript.ps1 -Path .\Projects\MyProject -From 80 -To tip
输出正是我想要的东西:
hg log -R .\Projects\MyProject -r 80:tip --style fileList
如果我复制和输出直接粘贴到我的命令行,log命令可以正常工作。
我找不到关于此错误消息的任何好文档。我知道这个目录是回购。它实际上没有使用我为repo root指定的目录吗? Powershell正在对我传递的路径做些什么?
我们实际上试图从命令行参数中推断出'-R'标志。所以如果你在一个仓库之外,那么你可以做'hg log my-repo/foo'。如果你已经在另一个回购站内,那么你会被告知'abort:my-repo/foo不在root下'。所以我不确定这是什么问题。 – 2012-01-27 16:03:07
我实际上也尝试过,并收到错误消息。看修改后的问题。不是争论,但我没有-R运行该命令,它运行良好。你确定它不是位置参数吗?编辑:看起来像马丁证实。很高兴我不疯狂。 – 2012-01-27 16:05:39