프리 커밋 (pre-commit) 훅 스크립트에서 소스 코드에 대한 svn : eol-style 속성을 직접 확인하는 방법의 예제를 찾을 수 없습니다. 가장 근접한 파일은 mime-type 속성을 사용하여 파일이 텍스트 파일인지 확인하는 check-mime-type.pl입니다.
사전 커밋 스크립트 파일에 삽입 된 다음 스크립트는 커밋에 추가 된 모든 .cpp/.h 파일에 svn : eol-style 속성 집합이 있는지 확인합니다. (파일 확장자를 추가로 확인하기 위해 쉽게 확장 할 수 있습니다). 또한 svn : eol-style 속성이 누락 된 파일을 나타내는 메시지를 제공합니다. 지금 파우스 토 의 대답은 모든 저장소 아니 전 세계적으로 (서브 버전 1.8의 경우 출시 서브 버전 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
왜 구형입니까? –