Tôi có một cái móc sau bản cập nhật trên máy chủ của tôi, như vậy mà khi tôiNgười dùng nào sử dụng git hook?
git push
nó hoạt động kéo vào thư mục web sống. Tuy nhiên, trong khi push luôn thành công, hook post-update đôi khi thất bại.
Các móc là khá đơn giản:
#!/bin/sh
#
# An example hook script to prepare a packed repository for use over
# dumb transports.
#
# To enable this hook, rename this file to "post-update".
cd /var/www
env -i git pull
Tôi đẩy cập nhật từ nhiều nơi, nhưng đôi khi tôi phải đăng nhập với quyền root trên máy chủ và manuall làm một
env -i git pull
Tôi chỉ phải làm điều đó 20% thời gian. Bất kỳ ý tưởng tại sao nó sẽ thất bại ngẫu nhiên? Ngoài ra, làm thế nào tôi sẽ nhận được nó để đăng nhập thông báo lỗi, vì nó có thể chạy như một người không thể ghi vào hệ thống tập tin?
Bạn đang đẩy theo cùng một cách từ tất cả những nơi đó? Đó là, URL từ xa giống nhau cho tất cả chúng? (cụ thể, phần tên người dùng @ tên máy chủ) – Cascabel
Ngoài ra, khi bạn nói nó không thành công, bạn có thực sự có nghĩa là nó không thành công với một quyền bị từ chối lỗi cho biết nó đang chạy với tư cách người dùng không có đủ đặc quyền? Hoặc là nó không cho một số lý do hoàn toàn không liên quan, không có gì để làm với uid chạy nó? – Cascabel
Tôi thực sự đang đẩy từ những nơi khác nhau: đôi khi đó là user1 @ tên máy chủ, thời gian khác, user2 @ tên máy chủ, v.v. (tất cả đều có vấn đề này). Không thành công mà không có thông báo lỗi mà tôi có thể thấy và tôi không chắc chắn cách nhận thông báo lỗi. Trong bài đăng của tôi-cập nhật, tôi đã thêm,> echo $ USER> /log.txt, nhưng không có gì được viết ở đó (cũng không phải là tệp được tạo). Điều này khiến tôi nghĩ người dùng đang đẩy, không có quyền. Nhưng nếu tôi thậm chí không thể viết một thông báo lỗi, tôi sẽ biết như thế nào? – ash