2011-02-04 26 views
8

Tôi đang ở giữa việc tạo tập lệnh để thực hiện số lượng lớn di chuyển trong phiên bản TFS của mình. Tôi có các lệnh ghép ngắn tfs có sẵn với các công cụ TFS Power 2010, nhưng tài liệu nhận trợ giúp cho chúng rất thưa thớt. Cụ thể, Add-TfsPendingChange dường như không hỗ trợ đổi tên, điều này buộc tôi phải sử dụng "đổi tên tf.exe" thay thế.Powershell và TFS: tf.exe so với Power tools TFS cmdlets?

Trước hết: tôi đã bỏ lỡ tài liệu hướng dẫn cho các lệnh ghép ngắn chưa? Tôi đã thử nhận trợ giúp về các lệnh, nhưng chúng không hỗ trợ cờ -detailed hoặc -examples. Có bất kỳ thứ gì khả dụng hơn không?

Thứ hai: lý do nào khiến tôi phải thích bất kỳ lệnh ghép ngắn nào hơn tf.exe thông thường? Có lợi ích nào khác ngoài việc truyền vật thể qua đường ống khi thực hiện các chức năng tương tự không?

Trả lời

6

Lệnh ghép ngắn TF là một chút về cung cấp tối giản tại thời điểm này và bao gồm tài liệu được cung cấp. Nói chung tôi sẽ sử dụng các lệnh ghép ngắn TF nơi chúng hỗ trợ những gì tôi đang cố gắng làm - đặc biệt nếu bạn có bất kỳ truy vấn nào. Việc xử lý đầu ra của các lệnh ghép ngắn truy vấn dễ dàng hơn nhiều vì chúng cung cấp cho bạn các đối tượng phong phú thay vì dòng văn bản mà bạn phải phân tích khi sử dụng một cái gì đó như tf status . /r.

Cũng lưu ý rằng trên hệ thống Windows x64, các lệnh ghép ngắn TF chỉ hoạt động trong máy chủ PowerShell 32 bit.

+1

đẹp cuộc gọi trên x86 giao diện điều khiển điều. Tôi đã tìm thấy tập tin dll-Help.xml, nhưng đọc nó với get-help là đẹp hơn nhiều. Cảm ơn! – bwerks

+0

Wow, dường như các lệnh ghép ngắn hoàn toàn không có khả năng phát hiện/xử lý các thay đổi hợp nhất. Quay lại tf.exe tôi có vẻ như vậy. – bwerks

+0

Trong tương lai, hãy xem xét việc sử dụng các hội đồng công cộng TFS từ bên trong PowerShell (xem mã mẫu trong câu trả lời của tôi). – weir

6

Lệnh ghép ngắn tf không chính xác, nhưng ... chúng tôi đã quyết định không sử dụng chúng trong môi trường xây dựng ngay bây giờ, mặc dù nó có nghĩa là phân tích văn bản.

Ngoài điều x64, có rất nhiều missing commands (nhờ @Keith) và các tham số còn thiếu và quan trọng nhất là, chúng không hoạt động trong các phiên từ xa!

3

Tùy chọn thứ ba là sử dụng cụm công khai TFS từ trong PowerShell. Khi thực hiện điều này, bạn có thể truy cập tất cả các khả năng của máy khách TFS và vẫn sử dụng các lệnh ghép ngắn TFS. Cho dù bạn chọn cách tiếp cận này trên tf.exe và các thực thi dòng lệnh TFS khác phụ thuộc vào môi trường kịch bản bạn thích.

Đây là lệnh PowerShell để tham chiếu các hội đồng công cộng TFS 2013 (cho TFS 2012 hoặc 2010 chỉ cần thay đổi Version=12.0.0.0 thành Version=11.0.0.0 hoặc Version=10.0.0.0).

'Microsoft.TeamFoundation.Client', 'Microsoft.TeamFoundation.Common', 'Microsoft.TeamFoundation.VersionControl.Client' | 
    ForEach-Object { 
     Add-Type -AssemblyName "$_, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 
    } 

Ví dụ đổi tên của bạn, bạn có thể sau đó:

  1. Sử dụng Get-TfsWorkspace cmdlet để tạo một đối tượng Microsoft.TeamFoundation.VersionControl.Client.Workspace.
  2. Gọi các phương thức PendRename, GetPendingChangesCheckin của đối tượng.

Something như thế này:

$workspace = Get-Workspace 
$workspace.PendRename($oldItemPath, $newItemPath) 
$pendingChange = $workspace.GetPendingChanges($oldItemPath) 
$workspace.Checkin($pendingChange, $comment) 
Các vấn đề liên quan