2011-04-16 6 views
21

Giả sử bạn "sở hữu" một kho lưu trữ Mercurial thì tốt hơn là chi nhánh hoặc nĩa kho lưu trữ khi bắt tay vào mã thử nghiệm?Tốt hơn là chi nhánh hoặc ngã ba một kho lưu trữ Mercurial?

Trong trường hợp của tôi, tôi là một nhà phát triển đơn độc và sắp bắt tay vào một số mã thử nghiệm. Tôi hy vọng thử nghiệm này mất từ ​​4 đến 6 giờ. Nếu tôi xem xét thử nghiệm một thất bại thì rất khó tôi sẽ không bao giờ muốn nhắc lại nó nữa.

Tôi cam kết thường xuyên và đẩy thường xuyên. Trong thử nghiệm, tôi chỉ có thể cam kết và sau đó quăng repo địa phương. Tuy nhiên tôi đẩy thường xuyên chủ yếu là phương tiện sao lưu. Kho lưu trữ được lưu trữ trên bitbucket.

Trong trường hợp này, tôi nên chia nhánh hoặc chia nhỏ kho lưu trữ?

Trả lời

18

Là người hâm mộ của các chi nhánh được đặt tên cho tất cả công việc (chi nhánh mỗi tác vụ, v.v.) Tôi khuyên bạn nên ... làm cả hai.

Sao chép repo gốc và trong repo mới tạo nhánh mới có tên cho công việc thử nghiệm.

Nếu bạn quyết định duy trì công việc thử nghiệm, hãy đẩy nó trở lại repo gốc (thực hiện hợp nhất khi thích hợp).

Nếu bạn quyết định không duy trì công việc thử nghiệm, chỉ cần đẩy repo thử nghiệm đi.

+0

Khi bạn nói 'Sao chép bản gốc repo', bạn có ý định Nĩa nó không? –

+7

Nhân bản và forking trong Mercurial (và DVCS) khác là điều tương tự. Thuật ngữ "ngã ba" thường được sử dụng để chỉ một bản sao được dự định luôn luôn có phần khác biệt với bản gốc (ví dụ: chỉ bao giờ hợp nhất * từ * bản gốc, chứ không phải nó), trong khi "bản sao" ngụ ý rằng các repos là đồng nghiệp và ý định là chúng không đồng bộ nhiều hơn. –

3

Nếu tôi xem xét thử nghiệm thất bại thì rất có thể tôi sẽ không bao giờ muốn tham chiếu lại lần nữa.

Bạn đã trả lời câu hỏi của riêng mình, chia nhỏ câu hỏi tại địa phương rồi kéo các thay đổi của bạn vào kho lưu trữ chính nếu thành công.

Mặc dù tôi không nghĩ rằng bạn sẽ tạo ra nội dung quá nhiều trong 4-6 giờ đó sẽ tạo ra một ngành vô dụng khó chịu ...

+1

Điều gì tạo nên một nhánh vô dụng khó chịu? –

+4

Đó là kích thước, nếu nó chiếm một tỷ lệ phần trăm đáng kể của kho lưu trữ. Thats một trường hợp hiếm hoi, và thậm chí sau đó nó chỉ là một chút bất tiện không phải là một vấn đề. Đây là lý do tại sao tôi không cảm thấy rằng phân nhánh cho các thí nghiệm nên tránh, làm sao bạn có thể chắc chắn rằng lịch sử của thử nghiệm thất bại sẽ không hữu ích vào một ngày nào đó? –

3

Tôi muốn nói nó không thực sự quan trọng. Trong cả hai trường hợp, điều này phụ thuộc vào thời điểm xóa thử nghiệm của bạn cho dù bạn có thể tham khảo sau này hay không.

Khi bạn thực hiện các nhánh thử nghiệm, sau này bạn có thể loại bỏ chúng bằng cách sử dụng lệnh strip, là một phần của các tiện ích mở rộng mq. Hoặc bạn có thể sử dụng convert từ một hg đến một kho lưu trữ hg để loại bỏ các cành chết. Bạn thậm chí có thể đơn giản sao chép và bỏ qua các nhánh.

Khi bạn ngã ba nhánh thử nghiệm, bạn có thể obvioulsy hợp nhất chúng sau này nếu bạn muốn tham khảo nó.

Do đó, tất cả sẽ được giải thích cho câu hỏi: Bạn muốn giữ các nhánh thử nghiệm trong bao lâu và bạn muốn lưu trữ chúng ở đâu?

3

Hãy xem chi nhánh là tài liệu. Bạn và những người khác có thể tham khảo ý tưởng và những thay đổi sau này. Nắm bắt tình huống mà bạn nói "Ồ, tôi đã thử một lần trong một chi nhánh ... nhưng đã xóa nó." Chi phí duy nhất là một không gian đĩa nhỏ.