2010-11-04 21 views
117

Tôi hiểu rằng nó có thể đóng một chi nhánh có tên trong Mercurial, do đó nó sẽ không xuất hiện trong danh sách hg branches:Có thể mở lại một nhánh đã đóng trong Mercurial không?

hg commit --close-branch -m 'close badbranch, this approach never worked' 

Có thể sau đó lại mở chi nhánh nếu cần thiết?

+13

Bạn chỉ cần thử nó, cách tốt nhất để tìm hiểu là thử nghiệm, và kể từ khi kho có giá rẻ với Hg, chỉ cần đi hoang dã. –

+0

Bí mật nhỏ bẩn: một "nhánh" trong Hg nói chỉ là một cách khác để nói "một nhãn văn bản được liên kết với một cam kết". Một "nhánh" có thể có nhiều đầu khác nhau cho nhiều cam kết khác nhau không liên quan. – user2864740

Trả lời

144

Bạn chỉ có thể hg update cho chi nhánh đã đóng rồi thực hiện một số khác hg commit và nó sẽ tự động mở lại.

Cờ closed chỉ được sử dụng để lọc ra các nhánh đã đóng từ hg brancheshg heads trừ khi bạn sử dụng tùy chọn --closed - nó không ngăn bạn sử dụng các nhánh.

+18

Cam kết sẽ không làm bất cứ điều gì trừ khi có điều gì đó để thực sự cam kết, vì vậy bạn có thể cần phải thực hiện một thay đổi vô cớ để làm cho nó xảy ra. –

+1

Cảm ơn bạn đã chỉ ra - Tôi giả định rằng những thay đổi được ngụ ý bằng cách thực hiện cam kết, nhưng tất nhiên nếu bạn chỉ muốn xóa cờ đã đóng, bạn không thể thay đổi. –

+2

Thẻ đủ để làm cho thẻ có thể thực hiện được. – devlord

14

Bạn có thể mở lại nhánh bằng cách sử dụng cờ "-f" khi tạo 'nhánh'.

Không, lệnh này sẽ tạo nhánh mới có cùng tên.

Chỉ cần quên rằng nó đã đóng. Chuyển sang nhánh, thực hiện các thay đổi và cam kết. Nó sẽ tự động mở cửa trở lại. Khi bạn hoàn tất, bạn có thể đóng lại.

+0

Tôi nghĩ rằng, không giống như Git, Mercurial named branch là vĩnh viễn, và tên nhánh đó không thể được tái sử dụng. Tôi đang bối rối thế nào? Có nhiều đầu cho cùng một chi nhánh mà chúng ta đang nói đến không? –

-1

Hãy thử điều này.

Chuyển sang nhánh đã đóng trước khi thực hiện. (HG lên closed_branch)

hg st

liên lạc một

thêm một

hg commit -m 'mở lại ngành đóng'

này sẽ mở lại các chi nhánh đóng.

+10

Điều này đang thêm một tệp rỗng vô ích vào kho lưu trữ, nó sai. –

1

thử với sau:

hg pull && hg update branch_name 

Bây giờ làm cho một sự thay đổi nhỏ để một trong những tập tin và sau đó cam kết nó

hg commit -m "minor change" 

sau đó đẩy nó

hg push -b . 

Bây giờ bạn sẽ có có thể làm việc bình thường.

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