2012-02-20 22 views
6

Dự án của chúng tôi có một vài subrepos từ xa trong đó và địa chỉ của chúng gần đây đã chuyển từ http://host/path sang http://other_host/path. Làm thế nào có thể quay trở lại một sửa đổi từ, nói rằng, tháng trước, nơi Mercurial nghĩ rằng subrepo có thể được tìm thấy tại http://host/path?Cập nhật các bản sửa đổi Mercurial cũ với subrepos đã di chuyển

$ hg -v up -d 1/20/2012 
Found revision 1091 from Fri Jan 20 10:22:29 2012 -0600 
resolving manifests 
abort: error: No connection could be made because the target machine actively refused it 


$ hg --debug up -d 1/20/2012 
Found revision 1091 from Fri Jan 20 10:22:29 2012 -0600 
resolving manifests 

<snip...> 

subrepo merge 0f0f2b807811+ 0908d5249a6f 0f0f2b807811 
    subrepo external/our_remote_repo: both sides changed, merge with https://old_host/external/our_remote_repo:c66cf52ce1f240193190cec392d889618c09f22b:hg 
using https://old_host/external/our_remote_repo 
sending capabilities command 
using auth.old_host.* for authentication 
abort: error: No connection could be made because the target machine actively refused it 

Trả lời

6

Bạn có thể sử dụng [subpaths] hgrc để remap such urls.

này nắm để xác định địa điểm subrepositories nguồn viết lại quy tắc trong các hình thức của

<pattern> = <replacement> 

nơi mô hình là một biểu thức chính quy phù hợp với các nguồn và thay thế là chuỗi thay thế sử dụng để viết lại nó. Các nhóm có thể được so khớp trong mẫu và được tham chiếu trong các thay thế. Ví dụ:

http://server/(.*)-hg/ = http://hg.server/\1/ 

ghi đè

http://server/foo-hg/ into http://hg.server/foo/. 
+0

tuyệt vời, cảm ơn bạn – moswald

-5

Bạn không thể làm điều đó. Mercurial trả về trong tiểu bang, mà nó đã có chính xác tại phiên bản này (URL của subrepo, sửa đổi trong subrepo)

+2

@michel giải pháp Sznajder sẽ chỉ làm việc tuyệt vời. –

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