2012-04-05 24 views
9

Tôi có một dự án nguồn mở mà tôi muốn đóng gói thành tệp .zip chứa các tệp nhị phân và nguồn. Dự án được lưu trữ trên CodePlex và sử dụng TFS làm điều khiển nguồn. Tôi không chắc chắn làm thế nào để xuất khẩu các dự án để loại bỏ tất cả các ràng buộc kiểm soát nguồn. Bằng cách đó mọi người có thể dễ dàng mở giải pháp cục bộ mà không nhận được lời nhắc đăng nhập. Chức năng này được gọi là Xuất trong Git, nhưng tôi không chắc chắn cách thực hiện điều tương tự trong Nhóm.Nhận giải pháp không được gửi từ TFS

Trả lời

11

This blog post chứa các kịch bản PowerShell sau đó có thể chạy trên thư mục kiểm soát nguồn của bạn và sẽ loại bỏ các ràng buộc kiểm soát nguồn từ các tập tin:

# Remove unnecessary files 
get-childitem . -include *.vssscc,*.user,*.vspscc,*.pdb,Debug -recurse | 
%{ 
    remove-item $_.fullname -force -recurse 
} 

# Remove the bindings from the sln files 
get-childitem . -include *.sln -recurse | 
%{ 
    $file = $_; 
    $inVCSection = $False; 
    get-content $file | 
    %{ 
     $line = $_.Trim(); 
     if ($inVCSection -eq $False -and $line.StartsWith('GlobalSection') -eq $True -and $line.Contains('VersionControl') -eq $True) { 
      $inVCSection = $True 
     } 
     if ($inVCSection -eq $False) { 
      add-content ($file.fullname + '.new') $_ 
     } 
     if ($inVCSection -eq $True -and $line -eq 'EndGlobalSection') { 
      $inVCSection = $False 
     } 
    } 
    mv ($file.fullname + '.new') $file.fullname -force 
} 

# Remove the bindings from the csproj files 
get-childitem . -include *.csproj -recurse | 
%{ 
    $file = $_; 
    get-content $file | 
    %{ 
     $line = $_.Trim(); 
     if ($line.StartsWith('<Scc') -eq $False) { 
      add-content ($file.fullname + '.new') $_ 
     } 
    } 
    mv ($file.fullname + '.new') $file.fullname -force 

} 
+0

Woot Woot! Tôi đã sử dụng kịch bản này để giúp tôi kiểm soát nguồn TFS tốt. – hylander0

+0

Những lời chỉ trích sau đây là nhằm vào MS: đây phải là một tính năng tích hợp.Không cần phải khóa như vậy. –

+0

Kịch bản tuyệt vời! Cảm ơn –

5

Thông tin liên kết kiểm soát nguồn là một phần của tệp Dự án và Giải pháp VS và khó loại bỏ. Tuy nhiên, có hai tùy chọn tôi biết:

Nếu bạn "nhận" dự án, sao chép/di chuyển thư mục nguồn đến một vị trí khác, sau đó mở lại giải pháp, VS sẽ đề nghị xóa các ràng buộc kiểm soát nguồn .

Ngoài ra, để thực hiện việc này tại chỗ, bạn có thể mở giải pháp kiểm soát nguồn trong VS và sau đó nhấp vào Kiểm soát nguồn/kiểm soát nguồn/thay đổi nguồn. Cuộc đối thoại này có nút "Không liên kết" sẽ xóa các ràng buộc cho từng dự án.

(Nhớ lại: thử nghiệm trên VS2010; không chắc chắn bạn đang sử dụng phiên bản nào.)

+1

Tôi đang sử dụng TFS 2010. Một trong những vấn đề với chỉ là không liên kết là tôi muốn tránh sao chép tạo ra obj/và bin/thư mục. –

+0

Vâng, bạn có thể Nhận và không xây dựng trước khi bạn unbind. Có thể thiết lập một không gian làm việc thứ hai trên một máy tính duy nhất, và sau đó sử dụng nó chỉ để mở khóa. (Một chút kịch bản thông minh có lẽ sẽ tự động hóa dễ dàng như vậy.) –

+1

bạn luôn có thể làm sạch chúng trước khi sao chép. Làm sạch trong Visual Studio sẽ nhận được một số các tập tin, nhưng nếu bạn muốn chắc chắn, bạn có thể thêm lệnh này sẽ thêm một tùy chọn nhấp chuột phải trong File Explorer để làm một đệ quy xóa trên bin và obj. Ví dụ này là dành cho các thư mục .svn, nhưng bạn có thể dễ dàng điều chỉnh nó theo nhu cầu của bạn. http://weblogs.asp.net/jongalloway//shell-command-remove-svn-folders –

0

TFS không hỗ trợ xuất mã nguồn mà không ràng buộc. Như Dan Puzey đã đề cập, bạn chỉ có thể tạo một bản sao của điều khiển nguồn và loại bỏ các ràng buộc kiểm soát nguồn.

Đối với dự án cụ thể của mình, tôi chỉ cần sao chép các tệp và xóa mọi thứ liên quan đến TFS. Tôi đã làm điều này như là một phần của cấu hình triển khai mà tôi đã sử dụng với TeamCity cho một dự án mã nguồn mở.

Tôi dự định chuyển dự án này thành Git ngay khi có ý nghĩa.

0

Dưới đây là một câu trả lời khác.

Tôi đã sao chép và dán giải pháp với các dự án từ vị trí này đến vị trí khác và tôi không được nhắc kết nối với điều khiển nguồn khi tôi cố mở nó ở vị trí mới.

Khi tôi đi đến tệp-> kiểm soát nguồn-> nâng cao-> thay đổi kiểm soát nguồn, tôi không có khả năng unbind. Vì vậy, tôi đã mở tệp giải pháp trong trình chỉnh sửa văn bản và xóa phần sau:

GlobalSection(TeamFoundationVersionControl) = preSolution 
.... 
EndGlobalSection 

Dường như đang hoạt động; Tôi hi vọng nó giúp ích cho ai đó.

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