2009-07-21 66 views
12

Cách tốt nhất để tạo một dự án hoàn toàn mới trong TFS bằng cách sao chép dự án hiện có là gì?TFS: Tạo một dự án mới từ dự án hiện có trong TFS

Tôi có một dự án ASP.NET sẽ có hơn 50 "bản phát hành" mỗi năm. Mỗi bản phát hành là một thực thể riêng biệt cần phải duy trì độc lập với tất cả những người khác. Sau khi tạo, tôi muốn đảm bảo rằng bất kỳ thay đổi nào đối với một (dự án nguồn hoặc bản sao) không ảnh hưởng đến một dự án khác.

Điều này chỉ dành cho kiểm soát nguồn. Tôi không cần sao chép bất kỳ mục công việc nào.

Trong thế giới trước TFS, tôi sẽ thực hiện việc này bằng cách chỉ cần sao chép thư mục chứa tất cả các tệp dự án. Điều này đã cho tôi 90% con đường đến ứng dụng mới, sau đó tôi có thể điều chỉnh cho bản phát hành mới. Nó là rất hiếm hoi mà tôi cần phải thực sự thêm chức năng cho các ứng dụng cơ sở, và ngay cả khi tôi làm điều đó không bao giờ ảnh hưởng đến các ứng dụng hiện có. Điều này vẫn có thể sử dụng TFS, bằng cách sao chép các thư mục cục bộ của tôi và sau đó thêm bản sao vào TFS như một dự án mới?

Mọi đề xuất? Một nhánh trên mỗi bản phát hành giống như cách "chuẩn" để làm điều này nhưng tôi sẽ nhanh chóng kết thúc với hàng tá nhánh thực sự không liên quan, và tôi muốn giữ cho mỗi dự án mới là dự án riêng biệt của nó, không có cơ hội thay đổi trong một ảnh hưởng đến người khác.

Cảm ơn!

  • Cảm ơn bạn đã trả lời. Tôi nghĩ tất cả các bạn đã cho tôi đủ hiểu biết để bắt đầu. Richard, cảm ơn các chi tiết. Tôi hơi lo ngại rằng có thể quá dễ dàng để vô tình hợp nhất các nhánh.

Trả lời

5

có thực sự hai câu hỏi ở đây:

1) Tốt hơn là sao chép/dán hay chi nhánh?

Tôi muốn mạo hiểm để nói rằng sao chép/dán không bao giờ phù hợp. Trừ khi bạn rất cẩn thận (tối thiểu, chạy 'tfpt treeclean' ngay lập tức trước khi sao chép), có thể bạn sẽ kết thúc việc kiểm tra trong một số tệp không phù hợp với vị trí mới. Ngoài ra, bạn sẽ sử dụng hết dung lượng đĩa FAR trên máy chủ, vì nó phải lưu trữ hơn 50 bản sao đầy đủ thay vì chỉ khác biệt.

Hầu như không có nguy hiểm mà các chi nhánh sẽ "vô tình" trở nên xuống dòng. Việc hợp nhất các nhánh lại với nhau bao gồm ít nhất 3 bước có chủ ý: hủy hợp nhất (chính thuật sĩ 4 trang), sau đó giải quyết tất cả các xung đột, sau đó kiểm tra.

Bạn cũng không bị nhầm lẫn với vị trí của mình trên cây. TFS sử dụng phân nhánh "không gian đường dẫn". Điều đó có nghĩa là các chi nhánh xuất hiện cho người dùng dưới dạng các vị trí thực tế riêng biệt trong cây nguồn, thay vì chỉ các thẻ phiên bản trên cùng một đường dẫn.Vì các nhánh trông giống như các thư mục, bạn có thể thực hiện tất cả các thao tác thư mục bình thường trên chúng: Cloak (không tải chúng về vùng làm việc cục bộ của bạn), Permission (đặc biệt, xóa quyền đọc của ai đó sẽ đảm bảo rằng chúng thậm chí không thể nhìn thấy nó), Xóa hoặc hủy (khi bạn thực sự hoàn thành với chúng).

2) Khi nào là thích hợp để tạo một Dự án nhóm mới?

Đây là chủ đề phức tạp hơn nói chung. Official guidance. My opinion.

Tuy nhiên, tôi muốn nói trường hợp của bạn thật dễ dàng: đừng làm vậy. Team Projects có rất nhiều chi phí. Có một finite number you can create on a server ... bao giờ hết. Đừng quên về các hình thức chi phí khác nữa, như thời gian để quản trị viên dự án chuyển qua tất cả các cài đặt của bạn và thời gian mọi nhà phát triển trong nhóm của bạn dành lại kết nối với Team Explorer của mình.

Tất cả vì mục đích gì? Các liên kết ở trên đi sâu vào chi tiết về các hình thức cấu trúc con có thể được tạo bên trong một dự án nhóm duy nhất. Tóm lại, hầu hết mọi thứ đều có thể. Các khu vực duy nhất mà phần nào còn thiếu là Nhóm Truy vấn và Định nghĩa Xây dựng, được giới hạn trong một thư mục vùng chứa duy nhất và một vài cài đặt như Thanh toán Độc quyền không có gì cả. Trừ khi bạn có một nhóm rất lớn hoặc rất đa dạng, lợi ích của các dự án nhóm riêng biệt trên mỗi bản phát hành rất khó có thể vượt qua những hạn chế.

Tất nhiên, nếu "phát hành" là một sự kiện lớn báo hiệu sự thay đổi trong thực hành SCM của bạn, đó là một câu chuyện hoàn toàn khác. SCM mới => mẫu tiến trình mới => dự án nhóm mới. Nhưng tôi nghi ngờ bạn làm điều đó 50+ lần một năm :)

+0

Liên kết "Hướng dẫn chính thức" đã chết. – HK1

4

Tôi khuyên bạn nên sử dụng phân nhánh. Tạo một nhánh cho mỗi bản phát hành từ nhánh chính. Miễn là bạn không hợp nhất các chi nhánh, chúng sẽ vẫn độc lập. Các thay đổi đối với nhánh chính sẽ chỉ ảnh hưởng đến các bản phát hành được tạo sau khi những thay đổi đó được thực hiện.

Bạn có thể sao chép các tập tin và tạo một dự án mới, nhưng bạn có thể gặp một vài vấn đề:

  • Các dự án "nhớ" rằng họ đã trong TFS, có một chút công việc thủ công để dọn dẹp các file đặc biệt vv
  • TFS có thể làm chậm khi bạn có nhiều dự án, so với một dự án duy nhất với chi nhánh
1

Điều này nghe có vẻ hiển nhiên nhưng bạn chỉ nên tạo dự án mới cho "dự án mới". Nghe có vẻ như những gì bạn đang nói về là các phiên bản khác nhau của cùng một dự án.

Nếu bạn muốn duy trì mã riêng biệt cho các bản phát hành trước đó, như những người trả lời khác đã nói, việc phân nhánh mã là lựa chọn tốt nhất của bạn. Tính năng này hoạt động tốt khi bạn muốn hợp nhất các bản sửa lỗi từ phiên bản mới nhất của mình thành các bản phát hành cũ hơn.

Tuy nhiên, nếu bạn thực sự thực sự phải có dự án mới, bạn vẫn sử dụng phân nhánh theo cách tương tự.

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