trac에 git를 사용하고 있습니다. 내가이 일을 할 수 할 푸시 후 : 특별한 문구에서 ("# 1 참조"와 같은) 커밋 메시지가있는 경우여러 명령이 git post-receive에서 작동하지 않습니다.
- 이 사랑하는
- 와 개발 팀에 이메일 보내기, 그때는 커밋 메시지를 원하는 trac 티켓에 넣을 수 있습니다.
먼저 git-commit-notifier가 해결합니다. http://trac-hacks.org/wiki/GitPlugin#post-receivehookscripts에서 discribed로
#!/bin/sh /var/lib/gems/1.8/bin/git-commit-notifier /etc/git-commit-notifier.yml
내 두 번째 요구 사항이 해결 될 수있다 : 그것은 내가 만든 후 훅을 포스트 - 수신 완벽하게 작동합니다. 또한 이러한 후 수신 후크와 완벽하게 작동합니다.
#!/bin/sh /var/trac/testgit/commit-updater
둘 모두 분리되어 있으면 작동합니다. 하지만 그들을 결합해야합니다. 그래서 후 수신 후크를 만들었습니다 :
#!/bin/sh /var/trac/testgit/commit-updater /var/lib/gems/1.8/bin/git-commit-notifier /etc/git-commit-notifier.yml
매우 재미 있지만 작동하지 않습니다. 명령은 별도로 실행될 때 완벽하게 실행되지만 포스트 후크 후크에 배치 될 때 첫 번째 명령 만 작동합니다. 나는 그런 후크가있는 경우
:
#!/bin/sh /var/trac/testgit/commit-updater /var/lib/gems/1.8/bin/git-commit-notifier /etc/git-commit-notifier.yml
을 나는 다음과 같은 오류가 발생 할
/var/lib/gems/1.8/gems/git-commit-notifier-0.8.0/bin/git-commit-notifier:12: undefined method `strip' for nil:NilClass (NoMethodError) from /var/lib/gems/1.8/bin/git-commit-notifier:19:in `load' from /var/lib/gems/1.8/bin/git-commit-notifier:19
하지만이 두 명령의 순서를 변경하면 나는 어떤 오류가 발생하지 않지만 단지 첫 번째 명령이 작동합니다.
어떤 도움을 주셔서 감사합니다. 나는이 문제를 오랫동안 해결하려고 노력하고 있으며 아이디어가 없습니다.
#!/bin/sh
FILE=`mktemp`
cat - > $FILE
cat $FILE | /var/trac/testgit/commit-updater
cat $FILE | /var/lib/gems/1.8/bin/git-commit-notifier /etc/git-commit-notifier.yml
rm $FILE
@bessarabov : STDIN에서 읽으려고하는 것처럼 보이지만, 첫 줄이 모든 것을 읽었을 수는 없습니다. – ngoozeff
ngoozeff가 맞다면 stdout을 임시 파일로 복사 한 다음 그 임시 파일을 두 개의 명령 각각으로 리디렉션하십시오. – bstpierre
@ngoozeff 감사합니다. 귀하의 제안은 100 % 정확합니다. =) @bstpierre 덕분에 모든 것이 지금 작동 중입니다! – bessarabov