在提交事务期间,“svnlook cat”是否可以强制输出格式正确的文本?

时间:2010-10-13 18:58:42

标签: svn pre-commit svnlook

在为subversion编写预提交钩子时,我处于svnlook调用

的情况
MESSAGE=`svnlook cat -t $TXN $REPOS $FILE`

会返回一个返回值,该值由单个连续行组成,而不是在尝试提交中更改的格式正确的文件。这是有问题的,因为源的格式化对于编译很重要。知道为什么它们都以一条线结束了吗?我错过了什么吗?

2 个答案:

答案 0 :(得分:1)

格式化仍然存在,但当您尝试使用$MESSAGE不加引号时,格式化将消失。除非受引号保护,否则shell会将所有空白序列转换为单个空格。举个例子:

$ var='foo
  bar'
$ echo $var
> foo bar
$ echo "$var"
> foo
> bar

答案 1 :(得分:0)

在文件中的行结尾由单个CR(0x0D)组成的条件下,我遇到了同样的问题。它适用于LF(0x0A)和CRLF(0x0D0A)。 shell命令cat有同样的问题。

编辑:如果在perl脚本中使用,结果是一条连续的行。如果直接在shell命令行上使用,结果是整条线垂直混合成一条短线。严格技术性,这是正确的结果 - 没有换行,只有回车。但它没有多大实际价值。