2010-04-07 25 views
7

Làm thế nào để bạn xử lý phiên bản trong môi trường tích hợp liên tục, nơi có chi nhánh phát triển và chi nhánh phát hành? Tôi đang sử dụng git nên không có phiên bản kho lưu trữ tăng dần để sử dụng. Có vẻ như sẽ có các phiên bản chồng chéo như 1.1.0 trên nhánh dev và 1.1.0 trên nhánh phát hành. Bạn chỉ cần thêm văn bản "dev" hoặc "phát hành"?Xử lý phiên bản trong môi trường tích hợp liên tục

Ngoài ra, khi bạn tạo chi nhánh phát hành, bạn có ngay lập tức tăng chi nhánh phát triển lên số phát hành "được đề xuất" tiếp theo không? Bạn có thể chưa biết số phát hành tiếp theo nhưng nếu bạn không tăng nó thì bạn có 1.1.0 dev chứa công việc mới không có trong bản phát hành 1.1.0.

Vì vậy, câu hỏi chính của tôi là mối quan hệ trong chuỗi phiên bản giữa hai nhánh này là gì?

Xin lưu ý, tôi không hỏi bất kỳ điều gì về cách quyết định sử dụng số phiên bản nào. Tôi đã thử yêu cầu điều này trước và tiếp tục nhận được nhận xét như "gia tăng lớn để thay đổi vi phạm", v.v.

Trả lời

3

Tôi không phiên bản chi nhánh nhà phát triển. Các devline là thân cây và tôi định kỳ chi nhánh từ dev đến một thư mục phát hành mới. Vì vậy, các chi nhánh phát hành có đầy đủ các thư mục đó là cơ bản ảnh chụp nhanh của devline.

IE, dưới gốc Tôi có/dev, /releases/0.1, /releases/0.2, /releases/1.0 vv

Tôi không chắc chắn nếu điều này thực sự trả lời câu hỏi của bạn.

+0

Trải nghiệm của tôi là đây là cách tốt nhất. – NotMe

1

Tôi khuyên bạn nên đặt hoạt động cuối cùng cho môi trường CI của bạn để tạo thẻ. Tôi tin rằng lệnh git trông như thế này: thẻ git -một tên

Chúng tôi sử dụng Major.Minor.Release.BuildNumber

mặc dù một số nơi sử dụng Major.Minor.Release.CheckinNumber

Vì vậy, nếu bạn muốn sử dụng nó sau đó tôi sẽ phiên bản chi nhánh dev của bạn, nếu không chỉ là phiên bản chi nhánh phát hành.

+0

Vì vậy, các số xây dựng cho chi nhánh dev so với chi nhánh phát hành sẽ không có liên quan? –

+0

Major.Minor.Release.BuildNumber chúng không có liên quan Major.Minor.Release.CheckinNumber chúng có liên quan và được ghép đôi –

0

Nếu bạn chỉ có một chi nhánh phát triển, nó sẽ hiệu quả hơn để biến nó thành nhánh và nhánh rẽ nhánh phát hành mỗi khi bạn chỉ muốn ổn định để phát hành. Nếu bạn có nhiều dự án tính năng, bạn có thể có một nhánh cho mỗi dự án với thiết lập CI trên các dự án đó. Một khi chúng được thực hiện, bạn kết hợp chúng từng cái một với thân cây và một khi tất cả được sáp nhập, bạn sẽ đến được kịch bản đầu tiên, nơi bạn phân nhánh nhánh phát hành ra khỏi thân cây một lần nữa.

Trong mọi trường hợp, bạn không giữ cho chi nhánh phát triển giữa các bản phát hành. Bạn muốn kết thúc nó và bắt đầu một cái mới để phát triển cho phiên bản tiếp theo. Bằng cách này, một số tính năng có thể được phân nhánh trong một số bản phát hành nếu chúng mất nhiều thời gian hơn. Nhưng bạn cũng không có quá nhiều mớ hỗn độn trên các nhánh phát triển của mình.

Bạn có thể phân nhánh nhánh phát triển cho phiên bản tiếp theo ngay khi bạn phân nhánh nhánh phát hành hoặc thậm chí trước đó nếu bạn chọn, nhưng thường là một ý tưởng hay khi bạn ổn định phát hành, hợp nhất các thay đổi từ nhánh phát hành vào và từ đó vào các chi nhánh phát triển nếu bạn làm điều đó. Nếu bạn chờ đợi với phân nhánh sau khi phát hành, bạn tránh vài sự hợp nhất ở đó, nhưng bạn làm chậm sự phát triển.

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