2010-09-21 42 views
7

tất cả các câu hỏi tôi đã tìm thấy muốn tránh hết thời gian chờ trong git push/pull. Trong trường hợp của tôi, tôi muốn ép buộc họ. Đẩy của tôi + kéo là tất cả đi qua ssh để máy từ xa mà có thể không có sẵn tại một số điểm trong thời gian. Ví dụ, tôi có một kịch bản đẩy đến hai repo công cộng từ xa. Tôi không muốn rằng kịch bản này treo mãi mãi khi nó đẩy đến repo đầu tiên và máy đó không có sẵn. Thay vào đó, sau một thời gian chờ tôi muốn push thất bại và tiếp tục với repo thứ hai.Buộc hết thời gian chờ trong git push + pull

Mọi tùy chọn ở đây?

Trả lời

10

Tôi không nghĩ rằng bạn có thể thực hiện tự động không thành công với các tính năng được tích hợp sẵn. Nhưng vì Git chỉ sử dụng SSH bên dưới, nên làm việc để thêm tùy chọn ConnectTimeout cho các máy đang được đề cập trong số .ssh/config của bạn. Cf. man ssh_config. Sau đó, một cái gì đó như git push foo || git push bar trong vỏ nên làm những gì bạn muốn.

0

từ https://github.com/git/git/blob/master/Documentation/config.txt (khoảng dòng 1770 tại thời điểm viết bài)

http.lowSpeedLimit, http.lowSpeedTime :: Nếu tốc độ truyền HTTP là ít hơn 'http.lowSpeedLimit' lâu hơn 'http .lowSpeedTime 'giây, quá trình chuyển bị hủy bỏ. Có thể bị ghi đè bởi các biến môi trường 'GIT_HTTP_LOW_SPEED_LIMIT' và 'GIT_HTTP_LOW_SPEED_TIME'.

Tôi gọi nó là tinh chỉnh Codeplex. Thêm nó vào .gitconfig của bạn

[http] lowSpeedLimit = 1000 lowSpeedTime = 20

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