lock blocked by pre-lock hook (exit code 1) with no output
이 메시지는 output을 별도로 입력 안 하거나 표준 입력인 경우에 기본적으로 표시되는 문구인데요, 수정을 하려면 파일 디스크립터를 추가해 주세요.
SVN의 훅 스크립트에서 출력이 필요할 때, 파일 디스크립터를 활용하여 출력을 조정할 수 있어요. 특히, 디스크립터를 사용하여 출력 위치를 명확히 지정하면 디버깅이 훨씬 쉬워질 수도 있답니다.
파일 디스크립터 정의
- 0 (표준 입력):
standard input을 의미하며, 사용자 입력이나 외부 데이터를 받을 때 사용해요. - 1 (표준 출력):
standard output을 의미하며, 일반적인 정보나 로그 메시지를 출력할 때 사용해요. - 2 (표준 에러):
standard error를 의미하며, 오류 메시지나 예외 상황을 출력할 때 사용해요.
SVN 훅에서 파일 디스크립터 사용하기
SVN 훅에서 echo 명령어와 함께 파일 디스크립터를 추가하여 출력을 원하는 대로 설정할 수 있습니다. 예를 들어, 오류 메시지를 표준 오류로 출력하고 싶다면 2번 디스크립터를 사용해야 합니다.
REM 표준 출력으로 메시지 출력
echo Lock attempt successful. >&1
REM 표준 오류로 오류 메시지 출력
echo Lock is blocked because the file is restricted. >&2
위에서 >&1은 표준 출력으로 메시지를 보내겠다는 의미이며, >&2는 표준 오류로 메시지를 보내겠다는 뜻입니다.
이처럼, SVN 훅 스크립트에서 echo 명령어 뒤에 파일 디스크립터를 추가하여 출력을 원하는 대로 조정할 수 있습니다.
