可以“svnlook cat”吗?在提交事务期间被迫输出格式正确的文本?

发布于 2024-09-27 11:47:30 字数 214 浏览 9 评论 0原文

在为 subversion 编写预提交挂钩时,我遇到的情况是,我对 svnlook 的调用导致

MESSAGE=`svnlook cat -t $TXN $REPOS $FILE`

返回的值由单个连续行而不是格式正确的文件组成在尝试提交中发生了变化。这是有问题的,因为源代码的格式对于编译很重要。知道为什么这一切最终都在一行上吗?我错过了什么吗?

In writing a pre-commit hook for subversion, I am in a situation where my call to svnlook as

MESSAGE=`svnlook cat -t $TXN $REPOS $FILE`

results in a returned value which consists of a single, continuous line instead of the properly formatted file(s) that changed in the attempted commit. This is problematic because the formatting of the source is important for compilation. Any idea why it's all ending up on a single line? Am I missing something?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

jJeQQOZ5 2024-10-04 11:47:30

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

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

The formatting is still there, but disappears when you try to use $MESSAGE unquoted. The shell converts all sequences of white space to a single space unless it is protected by quotes. To give an example:

$ var='foo
  bar'
$ echo $var
> foo bar
$ echo "$var"
> foo
> bar
听,心雨的声音 2024-10-04 11:47:30

我刚刚遇到了同样的问题,条件是文件中的行结尾由单个 CR (0x0D) 组成。它与 LF (0x0A) 和 CRLF (0x0D0A) 配合良好。 shell 命令 cat 也有同样的问题。

编辑:如果在 perl 脚本中使用,结果是单个连续行。如果直接在 shell 命令行上使用,结果是整行垂直地混合成一小段。严格来说,这才是正确的结果——没有换行,只有回车。但没有太大的实用价值。

I just ran into the same problem under the condition that line endings in the file consist of a single CR (0x0D). It works well with LF (0x0A) and CRLF (0x0D0A). The shell command cat has the same issue.

Edit: If used in a perl script, the result is a single continuous line. If used directly on the shell command line, the result is that the whole line is vertically mingled into one short line. Strictly technical, that's the proper result - no line feeds, just carriage returns. But it hasn't much practical value.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文