プリコミットフックスクリプトのソースコードのsvn:eol-styleプロパティを直接チェックする方法の例が見つかりませんでした。最も近いのはcheck-mime-type.plで、MIMEタイプのプロパティを使用してファイルがテキストファイルかどうかを判断します。
プリコミットスクリプトファイルに挿入された次のスクリプトは、コミットに追加されたすべての.cpp/.hファイルにsvn:eol-styleプロパティセットが設定されていることを確認します。 (ファイル拡張子を確認するために簡単に拡張することができます)。また、どのファイルにsvn:eol-styleプロパティがないかを示すメッセージも表示されます。ファウストの答えは今リリースSubversionのすべてのリポジトリのためではありませんグローバル(リポジトリレベルで使用することができます1.8
のSubversion 1.8の場合は以降の後古くなっているという理由だけで
REPOS="$1"
TXN="$2"
# Get new cpp/h files
ADDFILES=$(${SVNLOOK} changed "$REPOS" -t "$TXN" | sed -n -e '/^A.*\(\.cpp\|\.h\)$/s/^A *//p')
#echo "ADDFILES=$ADDFILES" >&2
# Check files for svn:eol-style property
ESMISSING=''
for f in ${ADDFILES}
do
if [[ "$(${SVNLOOK} pl ${REPOS} -t ${TXN} ${f})" != *svn:eol-style* ]]
then
# output to stderr to include message in svn commit ouput
echo "No svn:eol-style property set on file $f" >&2
ESMISSING=1
fi
done
if [[ -n "$ESMISSING" ]]
then
exit 1
fi
興味深い。リンクありがとう。トランザクションを変更しようとするのではなく、プリコミットフックでトランザクションをチェックし、必要な要件を満たしていない場合はコミットを拒否するほうがはるかに優れています。 – Bart
古くなった答え。 – bahrep
これは時代遅れなのはなぜですか? –