Bạn muốn sử dụng tính năng tự động để làm điều gì đó tự động khi bạn sao chép một repo (cập nhật móc hoặc cấu hình). Documentation nói rằng điều đó là không thể và đưa ra một số lý do rất tốt:
Hooks do not propagate
In Mercurial, hooks are not revision controlled, and do not propagate when you clone,
or pull from, a repository. The reason for this is simple: a hook is a completely
arbitrary piece of executable code. It runs under your user identity, with your
privilege level, on your machine. No comments
It would be extremely reckless for any distributed revision control system to
implement revision-controlled hooks, as this would offer an easily exploitable way to
subvert the accounts of users of the revision control system. No comments
Vì vậy, rõ ràng, chính nó sẽ không giải quyết được vấn đề của bạn. Bạn nói rõ rằng bạn không muốn gì ngoài việc làm sao để giải quyết vấn đề của bạn, vì vậy câu trả lời là: điều bạn đang yêu cầu là không thể.
Cách duy nhất để giải quyết vấn đề của bạn là tất cả người dùng của bạn sẽ phải chạy/cài đặt ít nhất một lần một tập lệnh nhất định thực hiện các hành động bạn muốn, giống như cài đặt móc phù hợp.
Nếu bạn muốn được thông minh về vấn đề này:
- tạo ra một kịch bản một lần để chạy mà sẽ cài đặt một cái móc để sao chép các cấu hình ngay vào .hg hoặc người dùng
- chắc chắn rằng móc, sau khi cài đặt, có thể cập nhật các kịch bản để phân phối bản cập nhật cấu hình cho người sử dụng
- làm móc thêm một số đặc biệt đánh dấu để viết cam kết
- từ chối trên kho lưu trữ trung ương cam kết rằng không mang thông điệp đặc biệt
Một chút phức tạp, nhưng đó là gần nhất tôi có thể tưởng tượng đến yêu cầu của bạn:
- người dùng chạy một kịch bản một lần và họ quên
- bạn có thể chắc chắn rằng nếu không chạy nó, họ không thể cam kết với repo trung tâm của bạn
Nguồn
2009-05-13 08:09:58
Có, các tập lệnh xây dựng đặc biệt hoặc cấu hình máy chủ xây dựng phổ biến là giải pháp tốt nhất tiếp theo. Tôi chỉ hy vọng rằng có một số chức năng không dễ phát hiện trong HG cho việc này. --- "Tài liệu nói rằng nó là không thể và đưa ra một số lý do rất tốt." Nó nói cái này ở đâu? Nghe có vẻ như tôi muốn đọc. – Deestan
Tôi đã chỉnh sửa mục nhập của mình bằng các liên kết đến tài liệu liên quan. –