Subversion の pre-commit フックを作成する際にsvnlook
、
MESSAGE=`svnlook cat -t $TXN $REPOS $FILE`
試行されたコミットで変更された適切にフォーマットされたファイルではなく、単一の連続した行で構成される戻り値になります。ソースのフォーマットはコンパイルにとって重要であるため、これは問題です。すべてが 1 行で終わってしまう理由は何か分かりますか? 何か不足していますか?
Subversion の pre-commit フックを作成する際にsvnlook
、
MESSAGE=`svnlook cat -t $TXN $REPOS $FILE`
試行されたコミットで変更された適切にフォーマットされたファイルではなく、単一の連続した行で構成される戻り値になります。ソースのフォーマットはコンパイルにとって重要であるため、これは問題です。すべてが 1 行で終わってしまう理由は何か分かりますか? 何か不足していますか?
$MESSAGE
書式設定はまだありますが、引用符なしで使用しようとすると消えます。シェルは、引用符で保護されていない限り、空白のすべてのシーケンスを単一のスペースに変換します。例を挙げると:
$ var='foo
bar'
$ echo $var
> foo bar
$ echo "$var"
> foo
> bar
ファイルの行末が単一のCR(0x0D)で構成されているという条件で、同じ問題が発生しました。LF(0x0A)およびCRLF(0x0D0A)でうまく機能します。シェルコマンドcatにも同じ問題があります。
編集:perlスクリプトで使用される場合、結果は単一の連続した行になります。シェルコマンドラインで直接使用すると、行全体が垂直方向に1つの短い行に混ざります。厳密に言えば、これは適切な結果です。改行はなく、キャリッジリターンだけです。しかし、それはあまり実用的な価値がありません。