2011-09-01 30 views
6

là có cách nào để cho phép tiếng vang trong móc gitGit móc: enable vọng lại lệnh

/var/git/repositories/project.git/hooks/post-update 

#!/bin/bash 
unset GIT_DIR; 
echo '========post-update hook=========' 

cd /var/project; 
git reset --hard; 
git checkout testing; 
git pull; 
chmod -R 774 ./lib 

update-apps 

mong muốn đầu ra git push trên mashine khác:

#git push 
... 
Writing objects: 100% (10/10), 5.98 KiB, done. 
Total 10 (delta 3), reused 8 (delta 1) 
========post-update hook========= 
cd /var/project 
git reset --hard 
git checkout testing 
git pull 
chmod -R 774 ./lib 
update-apps 

đây chỉ là một ví dụ, chuỗi lệnh thực tế có thể phức tạp hơn

và thất bại ở đâu đó

tôi nên chuyển hướng thiết bị xuất chuẩn để stderr bằng cách nào đó?

CẬP NHẬT

hiện tại tôi có bình thường git push đầu ra và sau đó ========post-update hook========= ... và không có gì

Oh! Phiên bản git là 1.5.6.5

+1

Nhưng đầu ra thực tế của bạn là gì khi bạn thử? –

+1

kiểm tra xem móc có thực thi được không (chmod + x) – sehe

Trả lời

3

Tất cả đầu ra trên stdout hoặc stderr phải được chuyển tiếp. Nó dự kiến ​​sẽ hoạt động với tất cả các loại pre-receive, update, post-receivepost-update móc. Lệnh Echoing được bật với set -x trong vỏ bourne.

+0

set -x: khắc phục sự cố của tôi, cảm ơn – jonny

2

Từ githooks dẫn sử dụng:

Cả hai đầu ra tiêu chuẩn và đầu ra sai số chuẩn được chuyển tiếp đến git gửi-pack ở đầu bên kia, vì vậy bạn có thể chỉ đơn giản là thông điệp vang cho người sử dụng .

Nhưng đã có sự cố đã biết trong một số phiên bản trước của Git và phiên bản cũ hơn của HTTP thông minh, nhờ đó đầu ra không được gửi. Cập nhật phiên bản git của bạn và thử.

Các vấn đề liên quan