2012-07-30 43 views
7

Tôi đang tìm cách giám sát hoạt động nhân bản trong kho git của mình tuy nhiên tôi không thể tìm thấy bất kỳ thứ gì cho thấy cách thiết lập hoặc cách lấy thông tin này.git kho lưu trữ nhân bản kho

Điều này có thể thực hiện được không? Nếu vậy làm thế nào điều này có thể được thiết lập và cũng làm thế nào để bạn lấy thông tin đăng nhập?

Trả lời

0

Tôi không nghĩ rằng có bất kỳ móc hoặc cái gì đó tương tự chạy ở phía máy chủ của kho lưu trữ trên một bản sao. git có thể chỉ sử dụng giao thức được chỉ định (ssh, http, ...) và tìm nạp các tệp thích hợp. Bạn có thể cố gắng theo dõi hoạt động đó bằng cách nào đó.

2

Bạn có thể sử dụng móc post-checkout để cập nhật cơ sở dữ liệu hoặc tệp trên máy chủ của mình. Hook này chạy trên phía máy khách (nghĩa là, người thực hiện bản sao sẽ thực thi kịch bản), vì vậy bạn cần thiết kế kịch bản của bạn từ phối cảnh đó. Ngoài ra, có thể sao chép kho lưu trữ mà không thực thi móc này bằng cách thêm tùy chọn --no-checkout vào git clone.

Cách tiếp cận đơn giản và đáng tin cậy là để máy chủ chạy một dịch vụ web RESTful nhỏ mà móc của bạn có thể gọi với curl hoặc một số cơ sở tương tự. Ví dụ:

#!/usr/bin/env python 

import socket, sys, urllib, pycurl 

service_url = "https://my.server.dns/service.php" 
data = urllib.urlencode({ 
    'prev': sys.argv[1], 
    'new': sys.argv[2], 
    'branch': sys.argv[3], 
    'host': socket.gethostname() 
    }) 

c = pycurl.Curl() 
c.setopt(pycurl.URL, service_url) 
c.setopt(pycurl.POSTFIELDS, data) 
c.perform() 

Xem http://www.kernel.org/pub/software/scm/git/docs/githooks.html.

0

Tôi sẽ đăng cùng một câu hỏi nhưng tìm ra câu hỏi này. Điều tốt hơn tôi có thể tìm thấy là gói lệnh git-upload-pack để ghi lại cuộc gọi. Điều này sẽ chỉ hoạt động trên ssh mặc dù thấy: pre-fetch hook functionality in git

Nhưng chỉ root mới có thể thực hiện việc này. Nó không có tác dụng với tôi, nhưng có lẽ đó là một giải pháp cho người khác.

Bạn luôn có thể cài đặt "máy chủ git" để kiểm soát quyền truy cập như gitolite (http://sitaramc.github.com/gitolite/master-toc.html). Bạn có thể đăng nhập trực tiếp hoặc bạn có thể mở rộng chức năng của nó.

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