2009-11-09 25 views
6

Tôi đang tìm cách xây dựng và xuất bản tài liệu mủ cao su mỗi lần tôi tiến lên một nhánh cụ thể.Git Hook: Thực hiện hành động khi một chi nhánh được nâng cao

Tôi đang tìm kiếm những gì móc tôi nên đặt kịch bản xây dựng của tôi và những điều kiện tôi cần phải kiểm tra.

+0

Tôi đã suy nghĩ về việc thực hiện chính xác điều tương tự với Git và LaTeX. Nhưng tôi sợ một vài điều: 1. giữ các tệp PDF sẽ làm cho kích thước kho của tôi sưng lên rất nhanh. 2. Lỗi LaTeX trong nguồn. Để đảm bảo mọi thứ chạy đúng, tôi phải kéo lại bản lưu trữ và kiểm tra tệp PDF. Quá nhiều công việc. – Mica

+0

Tôi có một móc trước cam kết từ chối bất kỳ cam kết nào sẽ không xây dựng lỗi miễn phí. Tôi kiểm tra chỉ mục và chạy thử nghiệm của tôi, về cơ bản -draftmode -halt-on-error và chỉ từ chối commit nếu nó không thoát với trạng thái 0. Tôi không giữ bản pdf trong repo. – Flame

Trả lời

14

Có lẽ một chút muộn ... nhưng bạn có thể tìm ra các chi nhánh đã được cam kết bằng cách sử dụng

if [ `git rev-parse --abbrev-ref HEAD` = "master" ]; then 
    ... 
fi 

trong bạn kịch bản khi bạn kiểm tra ra các chi nhánh để thực hiện trong đó.

+0

tôi nhận được "remote: [: 4: master: operator bất ngờ" với lệnh đó. Nó thực sự là một dấu '=' duy nhất. Tôi sẽ thêm vào đó, cho những người mới bắt đầu git như tôi rằng bạn phải sử dụng như thế này: "if [' git rev-parse --abbrev-ref HEAD' = "master"]; sau đó _git hướng dẫn hoặc w/e đây_ fi " – Gab

4

Nếu thay đổi đến thông qua push đến điều khiển từ xa, sau đó trên máy chủ từ xa, bạn sẽ muốn sử dụng móc post-receive (mặc dù nếu bạn sử dụng pre-receive thì bạn có thể từ chối, nếu latex thất bại).

Nếu bạn đang sử dụng kho lưu trữ cục bộ, bạn nên sử dụng post-commit (hoặc pre-commit nếu bạn muốn có thể từ chối cam kết).

Móc được ghi lại trong trang người đàn ông git hooks.

+0

Trong cam kết sau của tôi, làm thế nào để tôi tìm ra nhánh nào đã được cam kết? – Flame

+0

Ồ, điều này có kích hoạt khi hợp nhất hoặc tua đi nhanh không? – Flame

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