Khoảng nửa năm trước tôi được chỉ định thực hiện một nghiên cứu để trả lời câu hỏi đó. Đây là tóm tắt, dựa trên các tài liệu tham khảo được nghiên cứu (được liệt kê dưới đây)
http://msdn.microsoft.com/en-us/l Library / aa730834% 28v = vs.80% 29.aspx
... Quyết định chiến lược phân nhánh tốt nhất là một hành động cân bằng. Bạn phải đánh đổi tăng năng suất chống lại rủi ro tăng lên. Một cách để xác nhận một chiến lược đã chọn là xem xét một kịch bản thay đổi. Ví dụ: nếu bạn quyết định căn chỉnh các nhánh với kiến trúc hệ thống (ví dụ: nhánh đại diện cho một thành phần hệ thống) và bạn mong đợi các thay đổi kiến trúc quan trọng, bạn có thể phải cơ cấu lại các nhánh của mình và các quy trình và chính sách liên quan với mỗi thay đổi. Việc lựa chọn một chiến lược phân nhánh không đầy đủ có thể gây ra các chi phí quá trình và các chu kỳ phát hành và tích hợp kéo dài gây ra sự bực bội cho toàn đội ...
http://www.cmcrossroads.com/bradapp/acme/branching/
... Sự tích hợp thường xuyên, gia tăng là một trong những dấu hiệu thành công và sự vắng mặt của nó thường là một đặc điểm của sự thất bại. Các phương pháp quản lý dự án hiện tại có xu hướng tránh các mô hình thác nước nghiêm ngặt và nắm lấy các mô hình giống như xoắn ốc của phát triển lặp / tăng dần và phân phối tiến hóa. Các chiến lược tích hợp tăng dần, như Hợp nhất sớm và thường xuyên và các biến thể của nó, là một hình thức quản lý rủi ro cố gắng loại bỏ rủi ro sớm hơn trong vòng đời khi có nhiều thời gian hơn để đáp ứng. Sự đều đặn của nhịp giữa các tích hợp được xem bởi [Booch], [McCarthy] và [McConnell] như là một chỉ số hàng đầu về sức khỏe dự án (như "nhịp đập" hoặc "nhịp tim").
Không chỉ tích hợp sớm và thường xuyên có nguy cơ sớm hơn và trong các "khối nhỏ", nó còn truyền đạt những thay đổi giữa các đồng đội ...
http: //www.codinghorror.com/blog/2007/10/software-branching-and-abul-universes.html
... Trong hầu hết các hệ thống kiểm soát nguồn, bạn có thể tạo hàng trăm nhánh mà không gặp vấn đề gì về hiệu năng; đó là chi phí tinh thần của việc theo dõi tất cả các nhánh mà bạn thực sự cần phải lo lắng ... Phân nhánh là một con thú phức tạp. Có hàng tá cách để phân nhánh và không ai có thể thực sự nói cho bạn biết bạn đang làm đúng hay sai ...
http://www.lostechies.com/bloss/derickbailey/archive/2010/02/24/branching-strargeties-when-to-branch-and-merge.aspx
... Có nhiều khía cạnh của một hệ thống được xem xét khi phân nhánh mã của bạn ... Cuối cùng, mục tiêu là cung cấp một hộp cát cho bối cảnh mà mã được viết. Hiểu các tùy chọn khả dụng, khi mỗi tùy chọn phù hợp nhất với tình huống hiện tại và chi phí của các tùy chọn này sẽ giúp bạn quyết định cách thức và thời điểm phân nhánh ...
http://www.snuffybear.com/ucm_branch.htm
Lưu ý đưa ra các tài liệu tham khảo khác được liệt kê ở đây, tác giả cho rằng "Bài viết này mô tả ba mô hình phân nhánh chính được sử dụng trong các dự án Kỹ thuật phần mềm" có vẻ không hợp lý. Thuật ngữ được sử dụng trông không phổ biến ( EFIX , Model-1,2,3, v.v.).
http://svn.haxx.se/users/archive-2007-10/att-0101/SCMBranchingModels-talkback.pdf
Tham khảo trình bày một ví dụ thú vị về những khó khăn trong việc truyền đạt chiến lược phân nhánh.
http://simpleprogrammer.com/2010/06/04/simple-branching-strargety-part-1-back-to-basics/
... Giữ cho nó đơn giản. Theo tôi, làm việc trực tiếp từ thân cây là cách tiếp cận tốt nhất theo quan điểm của tôi.
Nó gần giống như dị giáo khi tôi thực sự gõ nó lên màn hình của mình, nhưng nếu bạn chịu đựng tôi một lúc, tôi sẽ không chỉ cho bạn thấy lý do tại sao tôi nghĩ rằng điều này rất cần thiết cho quy trình Agile, nhưng tôi sẽ chỉ cho bạn cách để làm cho nó hoạt động ...
... Nếu tôi phải dựa trên lý lẽ của mình dựa trên một lý lẽ chắc chắn, đó sẽ là giá trị của sự tích hợp liên tục. Tôi viết blog về giá trị của CI và thực tiễn tốt nhất trong quá khứ. Tôi là một người ủng hộ khá lớn của CI ...
... Bạn thực sự phải tự hỏi mình một câu hỏi ở đây: "Có phải tất cả các chi phí bạn đang phải gánh chịu từ việc phân nhánh phức tạp và sáp nhập chiến lược dẫn đến một giá trị thực sự mà không tồn tại trên một chiến lược đơn giản hơn?" ...
.. Một chiến lược tôi đã sử dụng hiệu quả trong quá khứ và đã phát triển theo thời gian. Tôi sẽ tóm tắt ngắn gọn ở đây.
- Mọi người làm việc ra khỏi thân cây.
- Chi nhánh khi bạn phát hành mã.
- Chi nhánh phát hành khi bạn cần tạo một bản sửa lỗi cho mã đã phát hành.
- Chi nhánh cho các nguyên mẫu.
...
http://www.codeledit.com/blog/index.php/2009/07/02/a-svn-branching-strargety-that-works/
... Cuối cùng, hãy nhớ rằng không có chiến lược hợp nhất và phân nhánh lý tưởng. Nó phụ thuộc khá nhiều vào môi trường phát triển độc đáo của bạn ...
http://blog.perforce.com/blog/?cat=62
... Trường hợp xấu nhất là bạn đưa ra vấn đề "hợp nhất ngữ nghĩa", trong đó kết quả của hợp nhất tự động là không chính xác, nhưng biên dịch OK và lén lút qua thử nghiệm, thậm chí có thể tồn tại đủ lâu để trở thành một lỗi có thể nhìn thấy của khách hàng. Ôi!
Thêm sự xúc phạm vào thương tích, bởi vì chúng có thể thoát khỏi sự phát hiện lâu hơn, các vấn đề hợp nhất ngữ nghĩa sẽ khó khắc phục hơn sau đó, vì sự thay đổi không còn mới mẻ trong tâm trí của nhà phát triển đã tạo ra sự thay đổi. (Thông thường tốt nhất là hợp nhất các thay đổi ngay sau khi thực hiện, lý tưởng nhất là nhà phát triển đã tạo ra thay đổi nếu điều đó thực tế) ...
https://stackoverflow.com/questions/34975/branching-str Strategies
Các thành viên cộng đồng chia sẻ kinh nghiệm khác nhau trong các dự án khác nhau bằng cách sử dụng các chiến lược phân nhánh khác nhau. Không có sự đồng thuận đồng ý về "tốt nhất" hoặc "tồi tệ nhất".
http://www.stickyminds.com/s.asp?F=S16454_COL_2
Về cơ bản là một bản tóm tắt ngắn gọn về nội dung được trình bày trong http://oreilly.com/catalog/prrealperforce/ch CHƯƠNG / ch07.pdf
- http://www.stickyminds.com/s.asp?F=S16511_COL_2
... Có ba cách tiếp cận phổ biến để quyết định thời điểm và cách phân nhánh:
- Tạo nhánh phát hành khi bạn "hoàn thành tính năng" và lên kế hoạch khắc phục các sự cố vào phút cuối trên dòng mã này. Trong trường hợp này, nhánh phát hành thực sự là một "dòng mã chuẩn bị phát hành", như được mô tả trong Các mẫu quản lý cấu hình phần mềm , vì bạn cho rằng vẫn còn nhiều việc phải làm.
- Thay đổi phong cách làm việc của bạn để tránh công việc tích hợp cuối cùng, hoạt động theo dòng phát triển tích cực.
- Chi nhánh cho công việc mới bằng cách tạo một nhánh nhiệm vụ và hợp nhất công việc đó vào dòng phát triển hoạt động sau khi phát hành hoàn tất.
... Một lý do cho việc phân nhánh là cô lập mã ở cuối bản phát hành để nó có thể ổn định. Sự cô lập thông qua việc phân nhánh thường che giấu một vấn đề chất lượng sẽ tự biểu hiện trong chi phí tăng thêm để duy trì các luồng song song trước khi sản phẩm được phát hành. Sự phân nhánh rất dễ dàng. Thay vào đó, đó là sự hợp nhất và chi phí nhận thức để hiểu cách thay đổi chảy giữa các nhánh khó khăn, vì vậy điều quan trọng là chọn một quy trình giảm thiểu chi phí phân nhánh và sáp nhập ...
http://nvie.com/posts/a-successful-git-branching-model/ Chiến lược định hướng Git.
... Chúng tôi coi nguồn gốc / bản gốc là nhánh chính trong đó mã nguồn của HEAD luôn phản ánh trạng thái sẵn sàng sản xuất .
Chúng tôi coi nguồn gốc / phát triển là nhánh chính trong đó mã nguồn của HEAD luôn phản ánh trạng thái với các thay đổi phát triển được phân phối mới nhất cho lần phát hành tiếp theo. Một số người sẽ gọi đây là "nhánh tích hợp". Đây là nơi mà bất kỳ bản dựng hàng đêm tự động nào được xây dựng từ ....
http://svnbook.red-bean.com/en/1.5/svn.branchmerge.html
... các chính sách dự án rất khác nhau liên quan đến chính xác khi nào phù hợp để tạo một nhánh tính năng. Một số dự án không bao giờ sử dụng các nhánh tính năng: cam kết / trung kế là miễn phí cho tất cả. Ưu điểm của hệ thống này là đơn giản, không ai cần học về phân nhánh hoặc sáp nhập. Nhược điểm là mã thân thường không ổn định hoặc không sử dụng được. Các dự án khác sử dụng các nhánh đến mức cực đoan: không có thay đổi nào được cam kết trực tiếp với thân cây. Ngay cả những thay đổi nhỏ nhất cũng được tạo ra trên một nhánh tồn tại ngắn, được xem xét cẩn thận và sáp nhập vào thân cây. Sau đó, chi nhánh sẽ bị xóa. Hệ thống này đảm bảo một thân cây đặc biệt ổn định và có thể sử dụng mọi lúc, nhưng với chi phí rất lớnquá trình trên không.
Hầu hết các dự án có một cách tiếp cận giữa đường. Họ thường nhấn mạnh rằng / biên dịch thân cây và vượt qua các bài kiểm tra hồi quy mọi lúc. Một nhánh tính năng chỉ được yêu cầu khi một thay đổi đòi hỏi một số lượng lớn các cam kết gây mất ổn định. Một nguyên tắc nhỏ là đặt câu hỏi này: nếu nhà phát triển làm việc trong nhiều ngày một mình và sau đó thực hiện thay đổi lớn cùng một lúc (để / thân cây không bao giờ bị mất ổn định), liệu có phải là một thay đổi quá lớn để xem xét? Nếu câu trả lời cho câu hỏi đó là "có", thì sự thay đổi sẽ được phát triển trên một nhánh tính năng. Khi nhà phát triển cam kết thay đổi gia tăng cho chi nhánh, họ có thể dễ dàng xem xét bởi các đồng nghiệp.
Cuối cùng, có vấn đề làm thế nào để giữ một nhánh tính năng "đồng bộ hóa" tốt nhất với thân cây khi tiến trình công việc. Như chúng tôi đã đề cập trước đó, có một rủi ro lớn khi làm việc trên một chi nhánh trong nhiều tuần hoặc nhiều tháng; thay đổi thân cây có thể tiếp tục đổ vào, đến mức hai dòng phát triển khác nhau đến mức nó có thể trở thành một cơn ác mộng khi cố gắng hợp nhất nhánh trở lại thân cây.
Tình trạng này là tốt nhất để tránh bằng cách thường xuyên hợp nhất thay đổi thân cây với chi nhánh. Tạo một chính sách: mỗi tuần một lần, hợp nhất các thay đổi trung kế trị giá của tuần trước cho chi nhánh ...
http://thedesignspace.net/MT2archives/000680.html
... Phần này trong hướng dẫn CVS của Eclipse dựa trên bài viết của Paul Glezen trên trang web Eclipse: Phân nhánh với Eclipse và CVS , và được sử dụng với sự cho phép của anh ta theo các điều khoản của giấy phép EPL. Những thay đổi tôi đang thực hiện cho phiên bản của anh ấy chủ yếu là mở rộng nó với nhiều hình ảnh và giải thích từng bước hơn, đồng thời tích hợp nó với các hướng dẫn cho người mới bắt đầu của tôi để cố gắng làm cho người mới bắt đầu và nhà thiết kế dễ tiếp cận hơn. Các nhà phát triển có kinh nghiệm có thể sẽ thích làm việc từ phiên bản của Paul ...
http://learnsoftwareprocesses.com/2007/12/29/common-branching-strargeties/
... Dưới đây là một số mô hình phân nhánh phổ biến:
- Mô hình phát hành chi nhánh: Một trong những chiến lược phân nhánh phổ biến nhất là liên kết các chi nhánh với các bản phát hành sản phẩm. Một nhánh giữ tất cả các tài sản phát triển phần mềm cho một bản phát hành. Đôi khi, các bản cập nhật cần được hợp nhất từ bản phát hành này sang bản phát hành khác, nhưng chúng thường không bao giờ hợp nhất. Các chi nhánh sẽ bị ngừng khi phát hành đã nghỉ hưu.
- Chi nhánh cho mỗi khuyến mãi: Một cách tiếp cận rất phổ biến khác là sắp xếp các chi nhánh với các mức khuyến mãi tài sản phần mềm. Một phiên bản phát triển cụ thể được phân nhánh thành một nhánh Thử nghiệm, tại đó tất cả các thử nghiệm tích hợp và hệ thống được thực hiện. Khi bạn hoàn thành thử nghiệm, các tài sản phát triển phần mềm được phân nhánh vào nhánh Sản xuất và cuối cùng được triển khai.
- Chi nhánh trên mỗi nhiệm vụ: Để tránh các nhiệm vụ (hoặc hoạt động) chồng chéo và mất năng suất, bạn có thể cách ly chúng trên một nhánh riêng biệt. Hãy nhớ rằng đây là những nhánh ngắn hạn nên được sáp nhập ngay khi hoàn thành nhiệm vụ, vì nếu không, nỗ lực sáp nhập cần thiết có thể vượt quá lợi ích năng suất của việc tạo ra chúng ở nơi đầu tiên.
- Nhánh trên mỗi thành phần: Bạn có thể căn chỉnh từng nhánh với kiến trúc hệ thống. Trong chiến lược này, bạn phân nhánh các thành phần riêng lẻ (hoặc hệ thống con). Sau đó, mỗi nhóm phát triển một thành phần quyết định khi hợp nhất mã của họ trở lại dòng phát triển đóng vai trò là nhánh tích hợp. Chiến lược này có thể hoạt động tốt nếu kiến trúc hệ thống được đưa ra và các thành phần riêng lẻ có giao diện được xác định rõ. Việc bạn phát triển các thành phần trên các nhánh cho phép kiểm soát chi tiết hơn đối với các tài sản phát triển phần mềm.
- Nhánh trên mỗi công nghệ: Một chiến lược phân nhánh khác phù hợp với kiến trúc hệ thống. Trong trường hợp này, các chi nhánh được liên kết với các nền tảng công nghệ. Mã chung được quản lý trên một nhánh riêng. Do tính chất độc đáo của các tài sản phát triển phần mềm được quản lý trên các chi nhánh, có lẽ chúng không bao giờ hợp nhất ...
http://msdn.microsoft.com/en-us/l Library / bb668955.aspx
... Tham khảo hướng dẫn phân nhánh và hợp nhất trong "Nguyên tắc kiểm soát nguồn" trong hướng dẫn này để biết tóm tắt về hướng dẫn phân nhánh và hợp nhất. ... Khi phân nhánh, hãy xem xét những điều sau đây:
- Không phân nhánh trừ khi nhóm phát triển của bạn cần làm việc trên cùng một tập hợp các tệp. Nếu bạn không chắc chắn về điều này, bạn có thể gắn nhãn một bản dựng và tạo một nhánh từ bản dựng đó vào một thời điểm sau. Việc hợp nhất các nhánh có thể tốn thời gian và phức tạp, đặc biệt nếu có những thay đổi đáng kể giữa chúng.
- Cấu trúc cây nhánh của bạn để bạn chỉ cần hợp nhất dọc theo cấu trúc phân cấp (lên và xuống cây nhánh) chứ không phải qua cấu trúc phân cấp. Phân nhánh trên hệ thống phân cấp yêu cầu bạn sử dụng hợp nhất vô căn cứ, đòi hỏi giải quyết xung đột thủ công nhiều hơn.
- Hệ thống phân cấp nhánh dựa trên nhánh cha và nhánh con, có thể khác với cấu trúc vật lý của mã nguồn trên đĩa. Khi lập kế hoạch hợp nhất của bạn, hãy ghi nhớ cấu trúc nhánh logic hơn là cấu trúc vật lý trên đĩa.
- Đừng phân nhánh quá sâu. Bởi vì cần có thời gian để thực hiện mỗi hợp nhất và giải quyết xung đột, nên cấu trúc phân nhánh sâu có thể có nghĩa là những thay đổi trong nhánh con có thể mất nhiều thời gian để truyền đến nhánh chính. Điều này có thể tác động tiêu cực đến lịch trình dự án và tăng thời gian để sửa lỗi.
- Chi nhánh ở mức cao và bao gồm các tệp cấu hình và nguồn.
- Phát triển cấu trúc phân nhánh của bạn theo thời gian.
- Việc hợp nhất đòi hỏi một hoặc nhiều nhà phát triển để thực hiện hợp nhất và giải quyết xung đột. Nguồn được hợp nhất phải được kiểm tra kỹ lưỡng vì không có gì lạ khi đưa ra các quyết định hợp nhất xấu có thể gây mất ổn định cho việc xây dựng.
- Việc hợp nhất trên hệ thống phân cấp chi nhánh đặc biệt khó khăn và đòi hỏi bạn phải xử lý thủ công nhiều xung đột có thể được xử lý tự động.
Quyết định có tạo chi nhánh có thể được giảm xuống hay không, liệu chi phí sáp nhập xung đột trong thời gian thực có cao hơn chi phí đầu tư của xung đột sáp nhập giữa các chi nhánh ...
http://kashfarooq.wordpress.com/2009/11/23/bazaar-branching-strargety-with-a-subversion-trunk/
http://social.msdn.microsoft.com/Forums/en/tfsversioncontrol/thread/f127676c-8f05-410c-9a30-0eb43a26a9fa
thảo luận về thực tiễn tốt nhất cho chiến lược phân nhánh phát hành trong trường hợp phát triển hệ thống.
http://branchingguidance.codeplex.com/
"Hướng dẫn phân nhánh máy chủ Microsoft Team Foundation" - tài liệu khổng lồ và chi tiết với các đề xuất phù hợp với các dự án khác nhau: phiên bản HTML tại đây . Chứng tỏ rằng Microsoft không tin vào các chiến lược phân nhánh tiếp cận một kích cỡ phù hợp với tất cả.
https://stackoverflow.com/questions/597707/best-branching-strargety-when-doing-continupt-integration
Chiến lược phân nhánh tốt nhất để sử dụng khi bạn muốn thực hiện tích hợp liên tục là gì? ... Câu trả lời phụ thuộc vào quy mô nhóm của bạn và chất lượng kiểm soát nguồn của bạn và khả năng hợp nhất các bộ thay đổi phức tạp chính xác ...
- http://www.zeroturnaround.com/blog/continupt-integration-and-feature-branches/
phân tích chi tiết hơn về tương tác phân nhánh với tích hợp liên tục, dựa trên kinh nghiệm cụ thể với Hudson / Jenkins - cùng với một vài tài liệu tham khảo hữu ích
.. Phát hiện lớn nhất của tôi là mặc dù CI liên quan đến việc cam kết, đẩy và nhận phản hồi thường xuyên (nghĩa là cụm CI cung cấp cho bạn thông tin phản hồi rằng máy trạm của bạn không bao giờ có thể cung cấp cho bạn trong cùng một khoảng thời gian), CI thực sự thuần túy thực sự có thêm một yêu cầu nữa - rằng nhóm cần phải làm việc trên cùng một đường cơ sở ...
Tài liệu được sử dụng
http://codicesoftware.blogspot.com/2010/03/branching-strargeties.html
... CVS và SVN đã không khuyến khích toàn bộ chiến lược phân nhánh / hợp nhất vì họ hoàn toàn không thể làm như vậy ... ... Quy tắc đơn giản: tạo một nhánh nhiệm vụ cho mọi tính năng hoặc lỗi mới mà bạn triển khai ... Nghe có vẻ như quá mức cần thiết cho người dùng SVN / CVS nhưng bạn biết bất kỳ SCM hiện đại nào cũng sẽ cho phép bạn tạo các nhánh trong một giây, do đó không có chi phí thực sự.
Lưu ý quan trọng: nếu bạn nhìn vào nó một cách cẩn thận, bạn sẽ thấy rằng tôi đang nói về việc sử dụng các nhánh nhiệm vụ như những người thay đổi người giàu ...
http://publib.boulder.ibm.com/infocenter/cchelp/v7r0m1/index.jsp?topic=/com.ibm.rational.clearcase.cc_proj.doc/c_bntr_plnbrstrat.htm
... Chính sách chi nhánh bị ảnh hưởng mục tiêu của dự án và cung cấp một cơ chế để kiểm soát sự phát triển của cơ sở mã. Có nhiều biến thể của chính sách phân nhánh như các tổ chức sử dụng kiểm soát phiên bản Rational ClearCase. Nhưng cũng có những điểm tương đồng phản ánh sự tuân thủ phổ biến đối với các thực tiễn tốt nhất ...
http://bloss.open.collab.net/svn/2007/11/branching-strat.html
... Mô hình Subversion (hoặc mô hình nguồn mở chung chính xác hơn) là những gì đang được hiển thị trong mô hình trung kế không ổn định .. .
http://en.wikipedia.org/wiki/Trunk_%28software%29
Trong lĩnh vực phát triển phần mềm, trunk đề cập đến nhánh (phiên bản) không tên của cây tập tin dưới sự kiểm soát sửa đổi . Các thân cây thường có nghĩa là cơ sở của một dự án mà trên đó phát triển tiến triển. Nếu các nhà phát triển đang làm việc độc quyền trên thân cây, nó luôn chứa phiên bản tiên tiến mới nhất của dự án, nhưng do đó cũng có thể là phiên bản không ổn định nhất. Một cách tiếp cận khác là tách một nhánh ra khỏi thân cây, thực hiện các thay đổi trong nhánh đó và hợp nhất các thay đổi trở lại vào thân cây khi nhánh đã được chứng minh là ổn định và hoạt động. Tùy thuộc vào chế độ phát triển và cam kếtchính sách trung kế có thể chứa phiên bản ổn định nhất hoặc kém ổn định nhất hoặc giữa phiên bản.
Thông thường công việc của nhà phát triển chính diễn ra trong thân cây và các phiên bản ổn định được phân nhánh và các bản sửa lỗi thường xuyên được hợp nhất từ các nhánh đến thân cây. Khi việc phát triển các phiên bản trong tương lai được thực hiện trong các nhánh không phải là thân cây, nó thường được thực hiện cho các dự án không thay đổi thường xuyên hoặc khi cần thay đổi trong một thời gian dài để phát triển cho đến khi nó sẵn sàng để kết hợp trong thân cây .. .
http://www.mcqueeney.com/cont/page/tom/20060919
... Đây là những ghi chú từ hội thảo trên web về thực tiễn tốt nhất của Subversion , được thực hiện vào ngày 30 tháng 8 năm 2006 bởi CollabNet. ... Hai chiến lược tổ chức: thân cây không ổn định so với thân cây ổn định ... ... TRƯỚC một thân cây không ổn định khi có thể ...
https://stackoverflow.com/questions/153812/subversion-is-trunk-really-the-best-place-for-the-main-development
Trong SVN, trunk là nơi được đề xuất cho sự phát triển chính và tôi sử dụng quy ước này cho tất cả các dự án của tôi. Tuy nhiên, điều này có nghĩa là thân cây đôi khi không ổn định hoặc thậm chí bị hỏng ... ... sẽ tốt hơn nếu thực hiện "phát triển hoang dã" trên một số nhánh như / nhánh / dev và chỉ hợp nhất với thân cây khi xây dựng hợp lý chất rắn?
- ... Thân cây là nơi phát triển liên tục được cho là sẽ xảy ra. Bạn thực sự không nên có vấn đề với mã "bị hỏng", nếu mọi người đang kiểm tra các thay đổi của họ trước khi cam kết. Một nguyên tắc nhỏ là thực hiện cập nhật (lấy tất cả mã mới nhất từ repos) sau khi bạn đã mã hóa các thay đổi của mình. Sau đó xây dựng và làm một số thử nghiệm đơn vị. Nếu mọi thứ được xây dựng và hoạt động, bạn nên kiểm tra nó trong ...
- ... Thân cây không phải là nơi tốt nhất. Tại tổ chức của chúng tôi, chúng tôi luôn tuân theo cách tiếp cận này: Trunk chứa mã phát hành, vì vậy nó luôn biên dịch. Với mỗi bản phát hành / cột mốc mới, chúng tôi mở một chi nhánh mới. Bất cứ khi nào nhà phát triển sở hữu một vật phẩm, anh ấy / cô ấy sẽ tạo một nhánh mới cho nhánh phát hành này và sáp nhập nó vào một nhánh phát hành chỉ sau khi thử nghiệm nó. Chi nhánh phát hành được sáp nhập vào thân cây sau khi thử nghiệm hệ thống ...
http://blog.yclian.com/2009/03/usiness-on-branches-and-urdy-trunk.html
... Tôi đã từng làm việc trên thân cây vì đối với tất cả các dự án tôi đã làm, đó là tôi nhà phát triển duy nhất hoặc nhóm đảm bảo rằng tất cả mọi người đăng ký mã đã vượt qua các bài kiểm tra cục bộ. Mặt khác, chúng tôi đã tạo (chúng tôi) các nhánh để sửa lỗi, mã lớn cho các tính năng mới, v.v ...
Khoảng 2 tháng trước, tôi có một phiên git ngắn với Kamal và anh ấy đã chia sẻ với tôi ý tưởng về câu chuyện / chi nhánh . Và khi nhóm của tôi bắt đầu phát triển với nhiều người phát triển hơn, tôi cảm thấy cần phải khuyến khích nhiều chi nhánh hơn và bây giờ điều này đã trở thành một quy tắc. Đối với một dự án với các thử nghiệm tự động được xác định với CI được thiết lập, một thân cây ổn định được đảm bảo và thực tiễn này có thể rất phù hợp với nó.
Chúng tôi không sử dụng git nhưng Subversion vì đó là cách chúng tôi bắt đầu và chúng tôi vẫn cảm thấy thoải mái với nó bây giờ (hầu hết thời gian) ...
http://www.ericsink.com/scm/scm_branches.html
Đây là một phần của cuốn sách trực tuyến có tên Source Control HOWTO , hướng dẫn thực hành tốt nhất về kiểm soát nguồn, kiểm soát phiên bản và quản lý cấu hình ...
... Phân nhánh ưa thích của Eric Thực hành ... Giữ một thân cây "về cơ bản không ổn định". Do sự phát triển tích cực của bạn trong thân cây, sự ổn định sẽ tăng lên khi bạn tiếp cận phát hành. Sau khi bạn giao hàng, tạo một chi nhánh bảo trì và luôn giữ cho nó rất ổn định ...
... Trong chương tiếp theo tôi sẽ đi sâu vào chủ đề hợp nhất các chi nhánh ...
http://marc.info/?l=forrest-dev&m=112504297928196&w=2
Thư bắt đầu của chủ đề thảo luận về các chiến lược phân nhánh cho dự án Forrest của Apache
- lưu ý hiện tại dự án dường như sử dụng mô hình thân cây không ổn định với các nhánh phát hành:
- "Công việc phát triển được thực hiện trên thân của SVN ... Có" các nhánh phát hành "của SVN, ví dụ: forrest_07_branch." ( hướng dẫn dự án )
- "Xây dựng gói ứng viên phát hành ... 17. Tạo chi nhánh bảo trì trong SVN ..." ( Cách phát hành )
Tài liệu phân nhánh CVR của O'Reilly:
http://commons.oreilly.com/wiki/index.php/Essential_CVS/Using_CVS/Tagging_and_Branching#Bas Về_ Ổn
- ... Triết lý phân nhánh cơ bản ổn định nói rằng thân cây nên chứa dữ liệu dự án luôn sẵn sàng để phát hành ... ... Các biến thể khoan dung hơn của triết lý này cho phép mọi thứ vượt qua thử nghiệm đơn vị của nhà phát triển được sáp nhập vào Thân cây. Cách tiếp cận thoải mái như vậy đòi hỏi một ứng cử viên phát hành phải được phân nhánh và đưa ra phân tích QA đầy đủ trước khi xuất bản ...
- ... Triết lý cơ bản không ổn định nói rằng thân cây nên chứa mã mới nhất, bất kể tính ổn định của nó và các ứng cử viên phát hành nên được phân nhánh cho QA.
... Các biến thể nhẹ nhàng hơn cũng cho phép phân nhánh cho mã thử nghiệm, tái cấu trúc và mã trường hợp đặc biệt khác. Việc hợp nhất một chi nhánh trở lại vào thân cây được thực hiện bởi các nhà quản lý của chi nhánh. ...
- Lưu ý tài nguyên trên không xuất hiện trong bất kỳ tìm kiếm nào tôi thực hiện (hướng dẫn liên quan đến CVS không còn phổ biến nữa?)
Các thực tiễn tốt nhất trong SCM (bài viết về lực lượng) tại
http://www.perforce.com/perforce/ con / bestpractices.html
... sáu lĩnh vực chung về triển khai SCM và một số thực tiễn tốt nhất chi tiết trong từng lĩnh vực đó. Các chương sau giải thích từng mục ...
Không gian làm việc, Bộ luật, Phân nhánh, Tuyên truyền thay đổi, Bản dựng, Quy trình ...