1

Subversion の pre-commit フックを作成する際にsvnlook

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

試行されたコミットで変更された適切にフォーマットされたファイルではなく、単一の連続した行で構成される戻り値になります。ソースのフォーマットはコンパイルにとって重要であるため、これは問題です。すべてが 1 行で終わってしまう理由は何か分かりますか? 何か不足していますか?

4

2 に答える 2

1

$MESSAGE書式設定はまだありますが、引用符なしで使用しようとすると消えます。シェルは、引用符で保護されていない限り、空白のすべてのシーケンスを単一のスペースに変換します。例を挙げると:

$ var='foo
  bar'
$ echo $var
> foo bar
$ echo "$var"
> foo
> bar
于 2010-10-14T06:55:50.680 に答える
0

ファイルの行末が単一のCR(0x0D)で構成されているという条件で、同じ問題が発生しました。LF(0x0A)およびCRLF(0x0D0A)でうまく機能します。シェルコマンドcatにも同じ問題があります。

編集:perlスクリプトで使用される場合、結果は単一の連続した行になります。シェルコマンドラインで直接使用すると、行全体が垂直方向に1つの短い行に混ざります。厳密に言えば、これは適切な結果です。改行はなく、キャリッジリターンだけです。しかし、それはあまり実用的な価値がありません。

于 2010-10-22T15:25:00.680 に答える