2012-11-15 29 views
12

Hiện tại chúng tôi sử dụng SVN để kiểm soát nguồn của chúng tôi. Vì các tính năng bổ sung và tích hợp trong môi trường phát triển mà chúng tôi muốn di chuyển sang TFS 2012.Thay thế bên ngoài SVN thay thế trong máy chủ nền tảng nhóm 2012

Chúng tôi có rất nhiều cổng đang chạy được xây dựng trong asp.net. Trong cổng thông tin của chúng tôi, chúng tôi sử dụng rất nhiều thành phần tiêu chuẩn. Hiện tại tất cả các cổng đều sử dụng cùng một cơ sở mã. Điều này có nghĩa là bất cứ khi nào chúng ta thay đổi một cái gì đó trong codebase được chia sẻ thì nó (bất cứ khi nào một cổng được xuất bản) được phân phối tự động. Chúng tôi rất quen với cách làm việc này và chúng tôi biết có nguy cơ phá mã ở các cổng khác. Mặc dù, việc xuất bản các thay đổi trong tất cả các cổng khác sẽ tốn nhiều thời gian. Vì vậy, để làm điều này chúng tôi sử dụng externals trong SVN.

Tôi thực sự muốn duy trì chức năng này. Vì vậy, câu hỏi của tôi là, là có một cách để tạo ra một hệ thống như bên ngoài trong SVN hoặc là có một cách thực sự tốt mà hoạt động chỉ là hiệu quả để thay thế chức năng này.

Trả lời

6

Có một vài gợi ý trong số Visual Studio Team Foundation Server Branching and Merging Guide.

Nếu bạn tải xuống gói "Mọi thứ" và tìm trong "Tất cả các hướng dẫn" zip và đọc "Hướng dẫn kiểm soát phiên bản nâng cao".

Trang 5-19 (phiên bản 2.1) bao gồm Quản lý tài nguyên được chia sẻ, có rất nhiều ở đó và tóm tắt tất cả cho Stack Overflow có thể sẽ làm cho Ranger bất công, vì vậy tôi sẽ chỉ cho bạn ở đó.

-1

Dòng dưới cùng: Không có TFS nào không tương đương với "svn: externals".

Chia sẻ mã là BAD và dẫn đến sao chép mã và không sử dụng lại mã. Hãy phụ thuộc vào mã biên dịch thay thế.

Bạn chỉ nên phụ thuộc vào "đầu ra" của thư viện được chia sẻ chứ không phải trên tệp nguồn. Đối với kịch bản, tôi có thể nghĩ không có kịch bản nào được khuyến khích chia sẻ tệp nguồn giữa các sản phẩm/giải pháp.

Lý do là mọi thứ có thể trở nên phức tạp một cách khó sử dụng rất nhanh. Điều gì sẽ xảy ra nếu bạn di chuyển hơn một người phụ thuộc vào một thư viện được chia sẻ mà tất cả đều thay đổi thành cùng một mã và họ luân phiên nhau. Cách duy nhất xung quanh đó là bắt đầu phân nhánh mã phổ biến của bạn thành các dự án khác mà bây giờ thêm mức phức tạp và tích hợp sẽ không bao giờ được xử lý trong thời gian dài và bạn sẽ kết thúc với ba hoặc nhiều phiên bản của cùng một mã trên thời gian.

Những gì bạn cần làm là có một thành phần cốt lõi được thay đổi và xây dựng để tạo ra đầu ra. Sản lượng này sau đó có thể được kéo theo yêu cầu vào các dự án khác phụ thuộc vào những thay đổi đó hay không. Điều này dẫn đến ít bị vỡ, kiến ​​trúc tốt hơn và nợ kỹ thuật ít hơn.

Bạn thậm chí có thể giới thiệu NuGet vào phương trình bằng cách sử dụng máy chủ nội bộ để xuất bản thành phần chung của bạn và thông báo cho từng người tiêu dùng khi có phiên bản mới.

+2

Tôi hoàn toàn đồng ý với bạn mặc dù hiện tôi đang ở trong một tổ chức hoạt động như thế này và thay đổi điều này cho nhiều cổng thông tin hiện không phải là một tùy chọn. Chúng tôi muốn di chuyển nó trong tương lai. – Patrick

+6

Ngã ba không giống với việc có thể truy cập mã nguồn! Bạn * cần * mã nguồn hoặc là để có thể gỡ lỗi mặc dù nó hoặc có thể xây dựng nó trên một nền tảng khác hoặc với các tính năng đặc biệt được kích hoạt. "svn: externals" không yêu cầu quyền truy cập ghi, vì vậy nó không ngụ ý một ngã ba hoặc trùng lặp mã nguồn. "Xuất bản" được xây dựng nhị phân hoặc xuất bản mã nguồn là gần như cùng một điều, appart từ sự thiếu linh hoạt và dễ sử dụng trong trường hợp trước đây.Câu hỏi là hoàn toàn hợp lệ và vẫn chưa được trả lời: TFS có cung cấp tương đương với thuộc tính "bên ngoài" của SVN không? –

+1

Bạn không cần mã nguồn để gỡ lỗi bạn chỉ cần biểu tượng. TFS sẽ tạo ra các biểu tượng được lập chỉ mục như là một phần của bản dựng và lưu trữ chúng trong một cửa hàng ký hiệu. Sau đó bạn có thể thêm cửa hàng này vào Visual Studio và nó sẽ luôn tải mã đúng để gỡ lỗi. –

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