2013-04-22 21 views

Trả lời

6

Bạn có thể sử dụng hg identify cho điều này: nó có thể chạy với một kho lưu trữ từ xa và Mercurial sẽ hủy bỏ với một mã thoát 255 nếu đường dẫn không phải là một kho lưu trữ. kho này tồn tại:

$ hg identify https://bitbucket.org/mg/mercurial-talk; echo $? 
7788b512c5bd 
0 

Cái này không:

$ hg identify https://bitbucket.org/mg/git-talk; echo $? 
abort: HTTP Error 404: Not Found 
255 

Bạn có lẽ sẽ muốn chuyển hướng cả stdout và stderr để /dev/null.

+0

Martin, tôi có thể yêu cầu bạn thêm ít nhất một số câu trả lời của bạn làm chủ đề bổ sung trong Mercurial Tips & Tricks (hoặc - tạo danh sách gợi ý riêng) không? Cụ thể: điều này, sáp nhập .hgtags với mergetool riêng, thử nghiệm nếu hợp nhất là tầm thường bằng cách sử dụng "nội bộ: không" –

+0

Tuyệt vời. Điều này chính xác trả lời câu hỏi của tôi. –

+0

@LazyBadger, bạn đang nói về [trang wiki] (http://mercurial.selenic.com/wiki/TipsAndTricks)? Sẽ rất tuyệt khi liên kết các câu trả lời ở đó, nhưng tôi rất buồn khi nói rằng tôi không dành nhiều thời gian để cập nhật wiki trong những ngày này. Xin vui lòng thêm các liên kết như bạn thấy phù hợp, mặc dù! –

0

AFAIK, ls-remote (được sử dụng bên trong repo) với Git-URL hiển thị tham chiếu đến URL này từ địa phương, phải không?

Nếu bạn muốn biết cho Mercurial, mà kho từ xa nó biết (không được sử dụng cho push | kéo, chỉ biết), bạn có thể sử dụng hg paths

Nếu bạn muốn cho một số URL ngẫu nhiên xác định, là nó Mercurial repo hay không, bạn có thể ít nhất để thử clone từ URL này

+0

git ls-remote có thể được sử dụng bên ngoài repo git. 'git ls-remote $ url' trả về true nếu' $ url' trỏ đến một repo git hợp lệ. Tôi đang tìm một cái gì đó tương tự cho mercurial, mà không cần phải tạo ra một bản sao. –

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