2012-04-04 24 views
9

Tôi đã làm theo lời khuyên trong "Team Development with Visual Studio Team Foundation Server" trên structuring projectssharing code from one team project into another using branching. Vì vậy, cây nguồn của chúng tôi trông giống như sau:Không thể lồng ghép các nhánh TFS, vì vậy việc phân nhánh để chia sẻ mã không hoạt động?

server\instance 
    Shared 
    share 
    Project1 
    Main 
     Product1 
     share (branched into Project1 from Shared) 
    Stories 
     1607 
     1832 

Hoặc ít nhất là cần thiết.

Như bạn có thể thấy, cũng như phân nhánh trong một số mã được chia sẻ, chúng tôi cũng sử dụng nhánh cho mỗi câu chuyện của người dùng.

Vấn đề là, khi tôi cố gắng phân nhánh trong thư mục chia sẻ từ dự án được chia sẻ (Tên chi nhánh nguồn: $/Shared/share; Tên chi nhánh mục tiêu: $/Project1/Main/share), tôi gặp lỗi:

TF203028: You cannot create a branch at $/Project1/Main/share because a branch already exists at $/Project1/Main.

Tài liệu được ghi rằng bạn không thể lồng nhánh trong TFS, do đó, lỗi không đáng ngạc nhiên. Vì vậy, nó xuất hiện mà tôi đang scuppered và cuốn sách phát triển đội là sai. (Cuốn sách ngụ ý rằng điều này sẽ hoạt động.)

Nhưng các lần xuất hiện có thể là lừa đảo và tôi có nhiều khả năng sai hơn các tác giả của cuốn sách. Bất cứ ai có thể giúp tôi hiểu làm thế nào để sửa lỗi này?

(Một giải pháp rõ ràng là làm cho gốc của câu chuyện trở thành anh chị em chia sẻ chứ không phải cha mẹ. Nhưng điều này không có nghĩa là chúng tôi không thể thực hiện được thay đổi mã chia sẻ trong nhánh câu chuyện, thay vì đánh bại đối tượng của nhánh trên mỗi câu chuyện. Điều đó cũng có nghĩa là số lượng công việc thay đổi khá lớn trong các dự án.)

Trả lời

5

Tôi đã tìm ra giải pháp.

TFS hiển thị biểu tượng nhánh chống lại Project1 \ Main, chứ không phải biểu tượng thư mục. Tôi đã đi đến File>Source Control>Branching and Merging>Convert to Folder và chuyển đổi nó trở lại một thư mục. Sau đó tôi có thể chia nhánh thành Project1.

Thật kỳ lạ, Chính vẫn là điểm mà các nhánh câu chuyện được tạo và các nhánh đó vẫn tồn tại.

Giải pháp thực sự là tôi phải tạo những nơi mã chia sẻ được phân nhánh vào thư mục bình thường của dự án, thay vì biểu tượng nhánh. Tôi đã đi đến File>Source Control>Branching and Merging>Convert to Folder và chuyển đổi nó trở lại một thư mục. Sau đó tôi có thể tạo ra các nhánh từ Main.

Nhánh nhánh chính và nhánh câu chuyện vẫn giữ lại biểu tượng nhánh của chúng. chia sẻ bây giờ trông giống như một thư mục thông thường.

+2

Bạn có thể sử dụng Tiện ích mở rộng kiểm soát nguồn TFS cho nhánh vào thư mục, về cơ bản cho phép bạn thực hiện những gì bạn muốn. http://visualstudiogallery.msdn.microsoft.com/c6642e7f-1a58-4ff0-aef9-0322dcc2b28d – jessehouwing