2010-08-02 27 views
26

tôi nhân bản kho Centeral quahg: làm cách nào để đẩy chi nhánh mới được tạo trở lại vào kho lưu trữ trung tâm?

hg clone my_project my_project_1 

sau đó sau khi chuyển sang một repo mới được tạo ra tôi đánh dấu là một chi nhánh mới

hg branch v1 

Trong khi bên trong bản sao mới I ban hành

hg ci -m "branch created" 

nhưng khi tôi cố gắng đẩy các thay đổi trở lại kho lưu trữ ban đầu, tôi nhân bản từ Tôi gặp lỗi này:

abort: push creates new remote branches: v1! 

Làm cách nào để đẩy chi nhánh vào kho lưu trữ gốc? Tôi đang làm điều đúng đắn bằng cách cố gắng đẩy chi nhánh vào repo gốc? Tôi chỉ muốn có một kho lưu trữ tập trung mà sẽ chứa các chi nhánh và từ đó tôi sẽ có thể kiểm tra các chi nhánh. Cách tốt nhất để giải quyết vấn đề này là gì? Cảm ơn bạn.

+0

Với kiểm soát phiên bản phân tán bạn (thông thường) hãy kiểm tra tất cả mọi thứ, không chỉ là một chi nhánh. Ngoài ra: "một kho lưu trữ tập trung" là có thể nhưng mọi nhà phát triển kiểm tra kho lưu trữ đều có bản sao của kho lưu trữ trung tâm. –

Trả lời

52

Nó phụ thuộc vào phiên bản Mercurial mà bạn đang sử dụng. Lệnh được sử dụng là hg push -f ... hoặc hg push --force ... để buộc tạo một nhánh mới trong kho lưu trữ từ xa (thường là OK).

Tuy nhiên, sử dụng -f cũng cho phép bạn tạo ra người đứng đầu mới trong kho từ xa (thường không OK), do đó các phiên bản hiện tại của Mercurial (1.6 trở lên) có một lựa chọn --new-branch-hg push cho phép bạn tạo ra một chi nhánh , nhưng không tạo ra một cái đầu mới, vì vậy lệnh này là:

hg push --new-branch 

bạn cũng có thể hạn chế push để chỉ các chi nhánh mà bạn đang làm việc trên với -b cờ, vì vậy:

hg push --new-branch -b v1 
+2

Có vẻ như không giống như git, bạn phải tạo một cam kết để có thể đẩy: 'hg ci -m" Tạo một nhánh "' – NoBugs

+0

@NoBugs Trong câu hỏi, OP cho biết họ đã làm điều đó. –

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