2009-07-20 26 views

Trả lời

57
hg update -r<REV> 

Lệnh update sẽ chuyển sang bản sửa đổi được chỉ định.

+20

Chỉ cần một lưu ý: nếu bạn sử dụng tên (nội bộ) các chi nhánh, bạn có thể chuyển sang tên chi nhánh bằng -r cũng: 'hg update -r ' – quark

+2

Tôi nghĩ rằng điều này cần phải được cập nhật hg -C , chứ không phải là -r. Như @Danmar nói trong câu trả lời của mình, các nhánh nhánh hg và hg cũng hữu ích. – andybuckley

+0

Lỗi mới bắt đầu, hãy chắc chắn bạn đã thực hiện lệnh kéo đầu tiên (để bạn có chi nhánh tại địa phương để chuyển sang) –

33

Lệnh switch không có hai điều trong Subversion:

  1. Cập nhật bản sao làm việc để phản ánh một URL mới trong kho. Hành vi này tương tự như 'svn update' và là cách để di chuyển bản sao làm việc tới một chi nhánh hoặc thẻ trong cùng một kho lưu trữ.

  2. Ghi lại siêu dữ liệu URL bản sao làm việc để chỉ phản ánh thay đổi cú pháp. Điều này được sử dụng khi thay đổi URL gốc của kho lưu trữ (chẳng hạn như lược đồ hoặc thay đổi tên máy chủ) nhưng bản sao làm việc của bạn vẫn phản ánh cùng một thư mục trong cùng một kho lưu trữ.

Lệnh hg update foo phù hợp với cựu chặt chẽ nhất nếu bạn chuyển từ, nói, /trunk để /branches/foo trong Subversion.

Nếu bạn muốn thực hiện việc sau, sau đó chỉ cần chỉnh sửa .hg/hgrc. Bạn sẽ tìm thấy một phần [paths] trông như thế này:

 
[paths] 
default = http://example.net/something 

và bạn có thể thay đổi mặc định này đẩy/kéo URL để cái gì khác như bạn thấy phù hợp. Bạn cũng có thể thêm các mục nhập khác vào phần này nếu bạn thường cần phải đẩy/kéo từ các vị trí khác. Nếu bạn muốn kéo từ một vị trí, nhưng đẩy đến vị trí khác, sau đó thêm mục nhập default-push.

0

Câu trả lời thay thế, trong trường hợp là "chi nhánh", bạn có nghĩa là "một bản sao khác của repo sống ở một số vị trí tùy ý trên mạng": bạn không thể.

Nói cách khác, cho một repo tại hg.a.com, và một bản sao về điều đó repo hg.b.com, không có lệnh như

hg switch hg.b.com . 

(sử dụng svn cách nói đó, giả sử bạn thư mục hiện tại là gốc của một bản sao của hg.a.com).

Tuy nhiên, bạn có thể sao chép hg.a.com, sao chép cục bộ bản sao đó (tương đối rẻ), sau đó kéo từ hg.b.com để nhận thêm bất kỳ thay đổi nào có thể sống ở đó.

+0

Tôi thấy dễ dàng hơn khi thêm một đường dẫn khác vào phần '[đường dẫn]' trong '.hg/hgrc' hoặc chỉ cần thay đổi đường dẫn mặc định được liệt kê ở đó. Xem 'hg help paths' để biết thêm thông tin. –

23

tôi bạn muốn chuyển ngành, thực hiện như sau:

Đầu tiên kiểm tra những gì các chi nhánh có sẵn, loại hg branches. Điều này sẽ liệt kê tất cả các nhánh có sẵn.

Tiếp theo xác định nhánh bạn hiện đang làm việc, nhập hg branch. Điều này sẽ cho bạn biết chi nhánh hiện tại của bạn là gì.

Cuối cùng để chuyển đổi chi nhánh (và xóa tất cả các thay đổi cục bộ), hãy nhập hg update -C name-of-branch. Thao tác này sẽ chuyển bạn sang tên chi nhánh bạn đã chỉ định.

Xác minh bằng cách nhập lại hg branch.

+2

Lưu ý ngay cả khi bạn loại trừ tùy chọn làm sạch -C, mọi thay đổi không được cam kết cục bộ sẽ bị xóa khi thực hiện việc này. Nếu bạn muốn giữ các thay đổi không được cam kết, hãy đặt chúng trước: o) –

1

Để chuyển sang một chi nhánh từ xa 'tip':

hg pull -u <remote_branch> 

Đối với chi nhánh địa phương (đã được up-to-date) chỉ:

hg update -r <local_branch> 
Các vấn đề liên quan