모든 .cpp 파일에 대해 git 커밋 전에 코드 스타일 서식을 설정하고 싶습니다. 나는이 작업을 수행하는 작은 스크립트 (이름 codeformat)를 만들어쉘 스 크립트를 통해 .cpp 파일을 처리하기 위해 smudge/clean 필터를 사용하는 git 속성. 파일 이름을 찾을 수 없습니다.
(또한 $ 1 %의 F를 replaing 시도)
#! /bin/bash
clang-format -style=file %f | diff %f -**
if [ $? -ne 0 ]; then
echo "ERROR: codeformat not correct"
exit 1
fi
한 설정 자식 설정과 * .CPP 필터 = codeformat와 업데이트 .gitattributes,
git config --global filter.codeformat.clean codeformat
git config --global filter.codeformat.smudge codeformat
스크립트가 실행중인 것처럼 보이지만 파일 이름을 가져 오지 못했습니다. 왜 이런거야?
참조 추가 예제를 작업. 난 당신이 다른 짓을하지만, 내 스크립트 파일로 호출 모르겠어요 name :/tmp의 로그 파일에 표시된대로. – torek
이것은 이전에 git config를 실행하는 데 실패했습니다. git config - global을 실행했지만, 전역 적으로 "git config"만 실행하여 .git/config에서 업데이트를 얻지 않으면 ~ /에서 업데이트됩니다. gitconfig. 지금, 그 파일 이름을 인쇄, 나는 지금 내 코드 형식의 명령을 가지고 놀 필요가있다. – Ramana
우리는 화면에 오류 메시지를 쓸 수 있습니까?,/tmp/dotest_log에서 내용을 말할 수 있습니까? 내가 로그에 리디렉션 대신 에코 명령을 가지고, 그것은 로그를 작성하지 않습니다, 그것은 단지 메시지 오류 필터를 제공합니다 ... 목표는 사용자가 따라갈 수있는 메시지를 제공하는 것입니다 또한, 스크립트 내부 종료 자식 작동, 내 자식 add가 성공하더라도 스크립트가 실패하더라도 계속 고칠 때까지 git add 명령을 실패 할 수 있습니까? – Ramana