2008-09-09 20 views
19

Có thể hợp nhất với một chi nhánh không phải là cha/mẹ trực tiếp trong TFS không? Tôi nghi ngờ rằng câu trả lời là không vì đây là những gì tôi đã trải qua trong khi sử dụng nó. Tuy nhiên, có vẻ như vào những thời điểm nhất định nó sẽ thực sự hữu ích khi có các tính năng khác nhau đang được thực hiện mà có thể có các chu kỳ phê duyệt khác nhau (ví dụ: tính năng có thể được chấp thuận trước khi tính năng hai). Điều này trở nên cực kỳ khó khăn khi chúng tôi có các chi nhánh sản xuất, nơi chúng tôi phải hợp nhất một số tính năng vào một nhánh trước để chúng tôi có thể phát hành trước phiên bản đầy đủ tiếp theo.Hợp nhất chéo trong TFS?

Chiến lược phân nhánh hiện tại của chúng tôi là phát triển trong thân cây (hoặc đường chính khi chúng tôi gọi nó) và tạo chi nhánh để ổn định và phát hành cho sản xuất. Chi nhánh này sau đó có thể được sử dụng để tạo hotfix và những thứ khác trong khi đường chính có thể phân kỳ cho các tính năng sắp tới.

Có thể sử dụng các kỹ thuật nào khác để giảm thiểu tình huống như (các) mô tả ở trên?

+1

heh, cưa một upvote này và đã được nhắc nhở về những ngày của tôi với TFS. Vui mừng khi nói rằng kể từ khi tôi chuyển đến Git khoảng hai năm trước, tôi không phải lo lắng về những thứ như thế này;) –

+3

Joel không chính xác, trong khi bạn không phải lo lắng về những giới hạn kỹ thuật, git tốt hơn khi phân nhánh, bạn vẫn phải lo lắng về những hành vi rối loạn chức năng ... Những công cụ transend này. –

+0

Tôi khuyên bạn nên nâng cấp lên TFS 2013.3/VSO và chuyển sang Dự án nhóm dựa trên Git. –

Trả lời

18

Tôi đồng ý với Harpreet rằng bạn có thể muốn xem lại cách bạn đã thiết lập cấu trúc phân nhánh của bạn.Tuy nhiên bạn nếu bạn thực sự muốn thực hiện kiểu hợp nhất này, bạn có thể thông qua một cái gì đó gọi là một sự hợp nhất không có cơ sở. Nó chạy từ dấu nhắc lệnh tfs,

Tf merge /baseless <<source path>> <<target path>> /recursive 

Thông tin thêm về hòa trộn vô căn cứ có thể được tìm thấy here

Ngoài ra tôi tìm thấy tài liệu này là vô giá khi xây dựng tfs của chúng tôi phân nhánh cấu trúc Microsoft Team Foundation Server Branching Guidance

1

AFAIK bạn có thể thực hiện việc này miễn là các nhánh được tạo ra khỏi cùng một thư mục gốc.

  • trunk/
  • chi nhánh/ -/feature1 (phân nhánh từ thân cây) -/feature2 (phân nhánh từ thân cây)

Nếu bạn làm được điều này thì bạn sẽ có thể kết hợp giữa feature1 và feature2 là tốt.

Mặc dù trải nghiệm phân nhánh/hợp nhất của tôi với TFS khiến tôi muốn nhiều hơn. Tôi ước chúng ta chỉ có SVN.

2

Bạn có thể muốn xem lại chiến lược phân nhánh của mình. Làm thế nào để bạn có được chi nhánh sản xuất? Bạn có đang hợp nhất tất cả các mã từ các nhánh phát triển, thử nghiệm hồi quy và sau đó tạo ra một nhánh sản xuất để sửa lỗi không? Hoặc bạn đang phát triển trên thân cây và sau đó tạo ra các chi nhánh sản xuất để ổn định và phát hành từ? Cách thứ hai tạo ra các vấn đề của loại bạn mô tả. Nếu bạn đang sử dụng cách tiếp cận đầu tiên - thân cây được cho là chỉ dành cho những thứ đã được xây dựng trên các nhánh thử nghiệm và sau đó sáp nhập bạn sẽ chạy vào điều này ít thường xuyên hơn nhiều. Theo cách tiếp cận đó nếu bạn vẫn gặp vấn đề này có thể là do nỗ lực phát triển của bạn rất lớn và bạn có thể cần một chiến lược phân nhánh tương đối phức tạp với các lớp phân nhánh và quảng bá.

1

Vâng, bạn có thể làm việc kết hợp với vô căn cứ, nhưng chỉ từ dòng lệnh (tf.exe).

+1

Bạn có thể kết hợp không âm trầm từ giao diện người dùng trong năm 2012 trở lên ... –

1

TFS sẽ cho phép bạn hợp nhất với chi nhánh không phải là cấp độ gốc/con - chúng được gọi là hợp nhất không có cơ sở. Xem những liên kết này:

From MSDN

From the TFS Team via CodePlex

Chúng tôi thường làm thay đổi lớn hoặc gây bất ổn trên một chi nhánh phát triển. Nếu gần một bản phát hành chính của một trong các sản phẩm của chúng tôi gần như tất cả các thay đổi sẽ được thực hiện trên một chi nhánh.