Nhận id tập hợp thay đổi hiện tại trên không gian làm việc cho TFS


80

Làm cách nào để tìm ra tập hợp thay đổi mà tôi hiện có trong không gian làm việc cục bộ của mình?

Chắc chắn, tôi có thể chọn một tệp và xem lịch sử của nó. Tuy nhiên, nếu tệp đó không được cập nhật gần đây, tập thay đổi của nó có thể cũ hơn các tệp được cập nhật gần đây hơn trong cùng một giải pháp.

Một sai lầm có thể xảy ra mà chúng tôi có thể mắc phải là chúng tôi xem lịch sử trên tệp giải pháp, tuy nhiên tệp giải pháp hiếm khi thay đổi trừ khi bạn đang thêm một dự án mới / thực hiện các thay đổi cấp giải pháp.

Cuối cùng để tìm ra tập thay đổi, tôi cần nhớ những tệp mới nhất đã được thay đổi và xem lịch sử của chúng.

Có cách nào tốt hơn để làm điều này?


Tại sao bạn muốn biết bộ thay đổi hiện tại của mình?
Ewald Hofman 13/10/11

Điều gì xảy ra khi không gian làm việc của bạn không đại diện cho một tập hợp các thay đổi? Hãy xem xét rằng bạn đã $/Aánh xạ, và bạn đã truy xuất tập thay đổi A, và bạn đã $/Bánh xạ, và bạn đã truy xuất tập thay đổi B. Không gian làm việc của bạn ở tập hợp thay đổi nào?
Edward Thomson,

8
@Ewald Cân nhắc quay ngược thời gian để tìm thời điểm lỗi bắt đầu xảy ra. Điều này có thể yêu cầu thực hiện các thao tác "Lấy phiên bản cụ thể" nhiều lần trên không gian làm việc của bạn để chuyển đến các tập hợp thay đổi trước đó có thể rất tẻ nhạt, dài dòng và dễ xảy ra lỗi. Có thể cho biết Changeset chính xác nào hiện đang ở trên không gian làm việc là cực kỳ hữu ích để tránh bất kỳ lỗi phân tán nào và xác nhận thủ phạm. Tôi rất vui vì tôi đã tìm thấy lệnh đó hôm nay.
Louis

1
Tôi khen ngợi câu hỏi này!
Fernando Espinosa

Chào mừng đến với hơn 5 năm sau. Để trả lời câu hỏi của @ EwaldHofman, trong kịch bản của tôi, tôi đã thực hiện một số thay đổi trong không gian làm việc của mình và tôi muốn xem những gì đã thay đổi trên máy chủ kể từ lần cuối cùng tôi thực hiện 'get'. Trong trường hợp của tôi, tôi không biết phiên bản cuối cùng tôi 'nhận được'.
JMD

Câu trả lời:



4

Câu trả lời phổ biến là sử dụng tf.exe history . /rtrực tiếp có hiệu quả, nhưng nó có thể chậm kinh khủng. Trong trường hợp của chúng tôi, nó mất 10-15 giây. Bây giờ tôi sử dụng kiểm tra hai giai đoạn, đầu tiên kiểm tra bản sửa đổi của một số tệp tùy ý (tôi đang sử dụng các tệp trong thư mục gốc).

Với powershell:

$tfexepath = "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\tf.exe"
$localpath = "C:\some\tfs\directory"

$result = & $tfexepath history $localpath /noprompt /stopafter:1 /version:W 
"$result" -match "\d+" | out-null
$id = $matches[0]

Sau đó, tìm kiếm từ gốc bằng cách sử dụng cờ / r, nhưng giới hạn tìm kiếm bắt đầu từ bản sửa đổi được tìm thấy ở trên:

$result2 = & $tfexepath history $localpath /r /noprompt /stopafter:1 /version:$id~W        
"$result2" -match "\d+" | out-null
$id2 =  $matches[0]

#result:
Write-Host $id2 

Đối với cơ sở mã của chúng tôi, điều này làm giảm tổng thời gian từ 10-15 xuống 1,4-1,5 giây.

Theo như tôi hiểu thì không có nhược điểm hoặc hạn chế nào, nhưng tôi cho rằng nó có thể chậm hơn trong một kho lưu trữ nhỏ. - Tôi rất vui được biết.


1
Thay thế tuyệt vời. Giảm thời gian chạy của tôi từ 55 giây xuống 1,5 giây. Cảm ơn!
bobroxsox 19/09/18

1
.... khi nhìn lại - ngạc nhiên rằng tôi có thể sống với msvc và vui mừng vì đó là điều mà tôi chỉ phải đối mặt trong quá khứ.
Johan Lundberg

3

Chạy Visual Studio CMD (trong trường hợp của tôi, đối với VS2015 được gọi là: "Developer Command Promp for VS2015") rồi vào thư mục dự án của bạn và thực hiện lệnh sau:

tf history . /r /noprompt /stopafter:1 /version:W

2
Cảm ơn bạn! Nếu không có câu trả lời đó, tôi vẫn sẽ tự hỏi tại sao lệnh không hoạt động trong ngăn "cửa sổ lệnh" trong Visual Studio.
ojdo

1

Nếu bạn muốn sử dụng PowerShell ( xem thêm ; tương đương với câu trả lời của @kroonwijk ):

  1. bật snapin tfs (một lần, nếu chưa)

    add-pssnapin Microsoft.TeamFoundation.PowerShell

  2. sử dụng lệnh ghép ngắn tfs để lấy id tập thay đổi hiện tại

    Get-TfsItemHistory <PATH_TO_PROJECT> -Recurse -Stopafter 1 -Version W


0

Nếu bạn thực sự không biết mình có phiên bản nào, bạn nên sử dụng một trong các phương pháp được đề xuất khác. Nếu bạn không chắc mình có phiên bản cụ thể hay không hoặc bạn không chắc chắn giữa một số bộ thay đổi và bạn thích làm việc từ VS TFS GUI, bạn có thể bỏ qua các bước sau:

  1. Chọn nhóm thay đổi mà bạn muốn chắc chắn và thực hiện so sánh: nhập mô tả hình ảnh ở đây
  2. Nếu bạn không có sự khác biệt: nhập mô tả hình ảnh ở đây

    hoặc nếu các tệp duy nhất khác nhau là các tệp mà bạn có các thay đổi đang chờ xử lý: nhập mô tả hình ảnh ở đây

Điều đó có nghĩa là bạn đã cập nhật phiên bản được đề cập.

  1. ** Nếu bạn không chắc liệu tệp có thay đổi đang chờ xử lý có thực sự không được cập nhật hay không, bạn có thể kiểm tra phiên bản tệp đó với các thuộc tính: nhập mô tả hình ảnh ở đây
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.