Mercurial EncodeDecodeFilter临时文件模板没有从sed批处理中获取我的OUTFILE

时间:2012-08-11 20:23:53

标签: mercurial sed mercurial-hook

我目前正在无情地消除这个简单而且看似必要的前提,即如果你遵循文档,事情就会像宣传的那样发挥作用。虽然我确实理解并非总是如此,但最近我一直受到大量此类WTF的困扰。

首先让狙击手高兴的是,是的,这与hg关键词有关。具体来说,确保它们在提交之前总是缩小。我发现hg kwshrink的预先挂起钩子不起作用,因为hg锁定了目录,所以下一个候选者是[encode]过滤器。

[encode]
#1 **.cs = sed -e "s/\$Date.*\$/\$Date\$/g"
#2 **.cs = tempfile: C:\batch\hg-kwshrink.bat INFILE OUTFILE

我从#2开始,但#1也不起作用,而我的批次只是

sed -e "s/\$Date.*\$/\$Date\$/g" %1 > %2
rem sed -e "s/\$Date.*\$/\$Date\$/g" %1 > %1.tmp
rem echo %1 >>C:\temp\sed1.txt
rem echo %2 >>C:\temp\sed2.txt
rem copy %1.tmp C:\temp\sed3.txt
rem copy %1.tmp %2 /y

rems显示我的调查。

看起来一切都正常发生除了hg没有使用我的输出,它只是提交原始文件,好像它从未读过文档应该如何表现。

显然我错过了一个神奇的咒语,或者需要重新评估我在这里的职业选择。

1 个答案:

答案 0 :(得分:0)

尝试

sed -e "s/\\$Date.*\\$/\\$Date\\$/g"

sed -e 's/\$Date.*\$/\$Date\$/g'

通常用双引号替换