2009-05-02 28 views
5

Tôi không thể sao chép kho lưu trữ của mình qua http:Không thể sao chép kho chứa thủy ngân (hg) qua http

hủy bỏ: 'http://MYREPO' dường như không phải là kho lưu trữ hg!

Trước tiên, tôi đã tạo một repo mới bằng cách hg init MYREPO tiếp theo bằng cách thêm một số tệp và cam kết.

Các dir với repo của tôi là mật khẩu bảo vệ nhưng không có dấu hiệu của vấn đề vì nó, tôi đã thử cả hai phương pháp nhân bản: (trên máy tính địa phương của tôi)

hg bản sao http://MYREPO my_repo

hg bản sao http://user:[email protected] my_repo

Permissions of repo dir là: drwxrwxr-x

Tôi có thể sao chép kho lưu trữ này trên máy từ xa của tôi (cùng một repo được bật) mà không có bất kỳ vấn đề gì.

Điều gì có thể sai?

Trả lời

0

Argh ... Cần phải cẩn thận với cấu hình .htaccess. Trong trường hợp của tôi, tôi cần thêm 'hgwebdir.cgi' vào đường dẫn để sao chép ... Cảm ơn bạn đã trả lời!

SSH có vẻ hợp lý nhưng không hiểu sao tôi không thể sử dụng nó với người dùng khác ngoài địa phương của tôi:

hg bản sao ssh: // MY_REMOTE_USER @ MYREPO từ xa: hủy bỏ: Không có kho Mercurial đây (.hg không tìm)!

10

UPDATE:

Hình như bạn đang nhận được nhầm lẫn giữa kho và hostname

Nếu chạy "hg phục vụ", "hg bản sao http://[email protected]:8000", nơi chủ nhà có thể chỉ IP mà bạn máy hoặc tên máy (loại " tên máy chủ "trên linux hoặc thử" ping localhost "). Bạn có thể thay đổi cổng mặc định từ 8000 bằng cách chuyển một --port #### sang hg phục vụ.

Nếu bạn muốn thực hiện trên ssh, "hg clone ssh: // USER @ HOST // PATH/TO/YOUR/REPOSITORY". Giả sử bạn đã tạo một kho lưu trữ trong thư mục chính của mình có tên là MYREPO thì bạn sẽ làm điều này: "hg clone ssh: // USER @ HOST/~/MYREPO"

Bạn chỉ có thể sao chép repo của mình qua http là thứ đang phục vụ repo đó trên http. Mercurial cung cấp máy chủ http được tích hợp sẵn cho bạn. Chạy "hg serve" trong khi bên trong repo của bạn sau đó cố gắng sao chép nó từ một vị trí khác (hoặc một trình bao lệnh khác). Nếu bạn chỉ muốn một bản sao cục bộ, bạn không cần phải sử dụng http ("hg clone").

Ngoài ra, hãy thử "hg help clone" và "hg help serve" để biết chi tiết.

2

besszero là đúng, nhưng tại sao bạn không sao chép bằng SSH nếu bạn sẽ sử dụng tên người dùng và mật khẩu?

hg bản sao ssh: // machine_ip // bạn/repo/vị trí your_repo

Nó cũng an toàn hơn nếu bạn không muốn để mở một cổng cho máy chủ http lanh lợi và bạn không cần các tính năng hgweb, lưu lượng truy cập cũng được mã hóa. Con duy nhất là bạn phải đăng nhập để kiểm tra, nhưng HTTP không hoạt động để đẩy lùi các thay đổi, ít nhất là không có trong kinh nghiệm của tôi.

+1

Nó hoạt động với push_ssl = false trong hlc của bạn –

3

lạ lùng, nhân bản với ssh yêu cầu dấu gạch chéo bổ sung không trực quan.

này làm việc cho tôi trên một máy chủ với ssh chạy trên cổng 43211

hg clone ssh://example.com:43211//repos/myRepo ./myRepo 

dấu gạch chéo kép sau khi số cổng hoạt động, nhưng một dấu gạch chéo duy nhất có kết quả trong các lỗi ".hg không tìm thấy"

+3

'hg help urls' nói với một dấu gạch chéo bạn truy cập vào nhà của bạn, và với hai gốc. – kay

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