2012-10-12 38 views
5

Tôi có một môi trường với các thiết lập phân nhánh sau TFSkho NuGet mỗi chi nhánh với TFS

  • Dev - chi nhánh làm việc tiểu học cho các nhà phát triển
  • Main - Ổn định, chi nhánh releasable
  • Hotfix - Đối với các bản sửa lỗi để sản xuất mã mà không phải là một phần của một chu kỳ phát hành bình thường

Chúng tôi đang thiết lập để sử dụng mình NuGet, và tôi muốn cấu hình những việc như vậy mà mã trong chi nhánh Dev kéo gói từ ' Kho lưu trữ Dev 'nuget, chính từ kho lưu trữ' Chính ', v.v.

Bây giờ, tôi đã tìm ra được điểm mà tôi có một tệp duy nhất nằm ở gốc nhánh của tôi, thông báo cho nuget.exe biết kho lưu trữ đến sử dụng.

Tôi hiện đang cố gắng tìm ra cách để nội dung của các tệp đó khác nhau trong từng nhánh đó. Tôi có thể kiểm tra chúng trong từng chi nhánh riêng biệt, nhưng điều đó sẽ giới thiệu các vấn đề với việc sáp nhập từ Dev-> Main và Main-> HotFix. Vì vậy, tôi nghĩ rằng những gì tôi muốn làm là bằng cách nào đó loại trừ tập tin cấu hình cụ thể này từ một phần của việc sáp nhập từ Dev-> Main, vv Bất kỳ cách nào để làm điều đó? Hoặc, theo cách khác, có cách nào khác để thực hiện những gì tôi muốn làm với Nuget, về mặt chỉ nó đến kho lưu trữ nuget khác nhau cho các ngành khác nhau không? Không.

+0

Tôi có thể hỏi những gì bạn đang đạt được từ việc này không? – Betty

+0

Từ việc có các kho lưu trữ khác nhau cho các chi nhánh khác nhau? Vâng, chúng tôi muốn sử dụng nuget để hỗ trợ tài liệu tham khảo giữa các dự án nhóm TFS khác nhau. Vì vậy, khi một nhà phát triển đang làm việc trên Component A (có tham chiếu đến Component B trong một dự án nhóm khác) trong nhánh Dev, chúng tôi muốn tham chiếu nuget của họ trỏ đến phiên bản Dev. Khi làm việc từ nhánh HotFix, chúng tôi muốn tham chiếu đó trỏ đến phiên bản Prod. Điều đó có hợp lý không? –

+0

Vì vậy, khi phát hành thành phần A có thể bị phá vỡ vì nó phụ thuộc vào chức năng chưa được phát hành trong Hợp phần B? hoặc bạn có thả tất cả chúng cùng một lúc không? – Betty

Trả lời

5

Bạn sẽ phải làm một số thủ đoạn gian trá ...

  • Có một thức ăn khác nhau cho mỗi chi nhánh. Một cách dễ dàng để thiết lập nhiều nguồn cấp dữ liệu là www.myget.org
  • Bật khôi phục gói NuGet trong các giải pháp bạn muốn đăng ký trong hành vi này
  • Trong tệp .nuget \ nuget.config của giải pháp, thêm như sau:
<configuration> 
    <packageSources> 
    <add key="Branch X packages" value="http://www.myget.org/F/corpxyzbranchxyz" /> 
    </packageSources> 
    <disabledPackageSources /> 
    <activePackageSource> 
    <add key="Branch X packages" value="http://www.myget.org/F/corpxyzbranchxyz" /> 
    </activePackageSource> 
</configuration> 

này có nghĩa là bạn sẽ cần phải có một tập tin nuget.config khác nhau cho mỗi chi nhánh và rằng bạn nên cẩn thận khi sáp nhập/nhánh.

+0

Cảm ơn bạn. Đó là khá nhiều nơi tôi đã kết thúc, mặc dù tôi không biết về nút activePackageSource. Tôi đã hy vọng cho một cách để ngăn chặn những sai lầm dễ dàng khi sáp nhập giữa các chi nhánh, nhưng có vẻ như đó là tốt như chúng ta sẽ nhận được. –

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