Làm cách nào để quay lại đăng ký TFS?


92

Tôi muốn khôi phục một thay đổi mà tôi đã thực hiện gần đây trong TFS. Trong Subversion, điều này khá đơn giản. Tuy nhiên, nó có vẻ là một cơn đau đầu đáng kinh ngạc trong TFS:

Tùy chọn 1: Lấy phiên bản trước

  1. Nhận phiên bản trước của mỗi tệp theo cách thủ công
  2. Kiểm tra để chỉnh sửa
  3. Không thành công - thanh toán (trong VS2008) buộc tôi phải tải phiên bản mới nhất

Tùy chọn 2: Nhận Công cụ điện TFS

  1. Tải xuống Team Foundation Power Tools
  2. Đưa ra lệnh khôi phục từ dòng cmd
  3. Không thành công - nó sẽ không hoạt động nếu có bất kỳ thay đổi nào khác đang chờ xử lý

Tùy chọn 3: Hoàn tác thay đổi theo cách thủ công

  1. hoàn tác thủ công các thay đổi của tôi, sau đó cam kết một tập hợp thay đổi mới

Câu hỏi

Làm cách nào để quay lại tập hợp các thay đổi trước đó trong TFS?


2
VSS không có tính năng hoàn trả. Chúng có một tính năng khác được đặt tên là "rollback" nhưng theo thuật ngữ TFS thì nó thực sự là một Kẻ hủy diệt. (a) bạn chỉ có thể làm điều đó từ đầu; nó sẽ không hoạt động nếu bất kỳ thay đổi bổ sung nào đã được kiểm tra tiếp theo thay đổi bạn muốn quay lại (b) nó VĨNH VIỄN LOẠI BỎ các thay đổi khỏi cơ sở dữ liệu
Richard Berg

1
Ôi bao lâu tôi mới có thể dễ dàng khôi phục VSS.
Greg

2
Tôi đã tình cờ gặp vấn đề này gần đây - tại sao quá khó để quay trở lại TFS. Roll-back nó là một trong những chức năng cơ bản của kiểm soát nguồn
JohnIdol

2
Đây là cách quá đau đớn trong TFS!
Jon Kragh

1
Chuyển sang Mercurial! Tôi đã thay đổi công việc và chuyển mình vào TFS. Tôi đã viết các tập lệnh PowerShell để làm cho nó giống như Hg từ dòng lệnh kể từ đó.
Sumo

Câu trả lời:


63
  1. Tải xuống và cài đặt Team Foundation Power Tools .
  2. Mở dấu nhắc lệnh Visual Studio
  3. Điều hướng đến thư mục trên hệ thống tệp mà TFS được ánh xạ tới. Nếu bạn không làm điều này, bạn sẽ gặp lỗi "Không thể xác định không gian làm việc" khi bạn cố gắng quay trở lại
  4. Đảm bảo mọi thứ khác đã được đăng ký hoặc xếp dỡ
  5. chạy tfpt rollback để hiển thị giao diện.
  6. Chọn các bộ thay đổi bạn muốn khôi phục
  7. Kiểm tra các phiên bản mới của tệp bạn đã khôi phục

Nhược điểm lớn của công cụ là nó sẽ muốn làm mới mọi thứ trong không gian làm việc của bạn trước khi bạn có thể hợp nhất. Tôi đã giải quyết vấn đề này bằng cách tạo một không gian làm việc mới chỉ dành cho quá trình khôi phục được ánh xạ trực tiếp đến vị trí trong cây nguồn nơi chứa các tệp bị ảnh hưởng.

Nếu bạn cần trợ giúp để tìm ra bộ thay đổi nào cần khôi phục, tôi thấy công cụ xem lại mã trong phần bổ trợ miễn phí Team Foundation Side Kicks rất hữu ích.


Bạn có thể thử theo cách này, nhưng được cảnh báo, các công cụ không được ghi chép đầy đủ, và ngay cả khi bạn có thể khắc phục tất cả các lỗi, bạn có thể thực sự khôi phục được hoặc không. (Tôi vừa cố gắng trong 2 giờ)
alchemical

1
Kỹ thuật này đã làm việc cho tôi. Đề xuất không gian làm việc rất tốt (và rất quan trọng nếu bạn đang xử lý một cơ sở mã lớn).
cloggins

1
Cảnh báo ... có một lỗi 22 nếu bạn đang sử dụng các phiên bản TFS và Visual Studio không khớp. Tôi đang sử dụng VS2010 với TFS2008 (một trường hợp cổ điển của CNTT không bắt kịp với nhà phát triển) và TF.EXE với VS2010 hiện đã khôi phục lại ... nhưng nó không hoạt động với TFS2008. Và tfpt 2010 đã gỡ bỏ rollback nên không làm theo cách cũ được.
Simon Gillbee,

7
lệnh 'rollback' đã được chuyển ra khỏi Power Tools cho VS2010, vì vậy bây giờ bạn chỉ cần nhập 'tf rollback': social.msdn.microsoft.com/Forums/en/tfspowertools/thread/…
Dan

Bắt đầu từ phiên bản tháng 8 năm 2011 của TFS Power Tools, để khôi phục, bạn không cần phải sử dụng dòng lệnh nữa.
joerage

24

Giải pháp số 1 của bạn sẽ hoạt động: 1. lấy phiên bản trước của mỗi tệp theo cách thủ công

  1. kiểm tra để chỉnh sửa

  2. Kiểm tra tệp và Bỏ qua các thay đổi của máy chủ khi được nhắc.

Lý do tại sao nó không thành công đối với bạn là vì bạn phải bật tùy chọn "Nhận phiên bản mới nhất của mặt hàng khi thanh toán". Tắt tùy chọn này bằng cách đi tới Công cụ ... Tùy chọn ... Kiểm soát nguồn ... Máy chủ Visual Studio Tema Foundation và bỏ chọn "Tải phiên bản mới nhất của mục khi thanh toán"

Chúc mừng


2
Chỉ làm theo cách này sau khi vật lộn 2 giờ với Power Tools và không đi đến đâu ... wtf là TFS không hỗ trợ chức năng cơ bản này ...
alchemical

Các chức năng được thêm vào để TFS 2010 / Visual Studio 2010.
Robaticus

2
Để rõ ràng đây không phải là một lần quay lại thực sự. Nó đang có một phiên bản cũ hơn. Không giống nhau.
Ryan Cromwell

+1 để chỉ ra vấn đề với cài đặt Nhận phiên bản mới nhất của mặt hàng khi thanh toán !
Sir Crispalot

18

Rollback đã được chuyển từ tfpt.exe sang tf.exe, Công cụ kiểm soát phiên bản Team Foundation.

TF - Team Foundation Version Control Tool, Version 10.0.30319.1
Copyright (c) Microsoft Corporation.  All rights reserved.

Rolls back the changes in a single or a range of changesets:
tf rollback /changeset:changesetfrom~changesetto [itemspec] [/recursive]
            [/lock:none|checkin|checkout] [/version:versionspec]
            [/keepmergehistory] [/noprompt] [/login:username,[password]]

tf rollback /toversion:versionspec itemspec [/recursive]
            [/lock:none|checkin|checkout] [/version:versionspec]
            [/keepmergehistory] [/noprompt] [/login:username,[password]]

1
Có cách nào để thực hiện việc này trực tiếp từ Visual Studio không?
Kyle Delaney

14

Bạn có hai tùy chọn để quay lại (hoàn nguyên) một tập hợp thay đổi trong Điều khiển phiên bản TFS 2010. Tùy chọn đầu tiên là sử dụng Giao diện Người dùng (nếu bạn đã cài đặt phiên bản mới nhất của Công cụ điện TFS 2010 ).

Bộ thay đổi khôi phục trong giao diện người dùng cho TFS 2010

Tùy chọn khác đang sử dụng ứng dụng dòng lệnh điều khiển phiên bản TFS 2010:

tf.exe rollback

Tôi có thông tin về cả hai cách tiếp cận trong bài đăng trên blog của mình tại đây: http://www.edsquared.com/2010/02/02/Rollback+Or+Undo+A+Changeset+In+TFS+2010+Version+Control.aspx


14

Một cách khác để làm cho tùy chọn 1 của bạn hoạt động là đảo ngược thứ tự của các bước:

  1. Kiểm tra các mặt hàng
  2. Tải phiên bản cụ thể về phiên bản cũ
  3. Kiểm tra (bỏ qua hộp thoại "máy chủ cảnh báo phiên bản mới hơn") HOẶC trên phần xung đột của hộp thoại Thay đổi đang chờ xử lý giải quyết xung đột bằng cách giữ phiên bản cục bộ.

Điều này sẽ hoạt động ngay cả khi bạn đã đặt Nhận khi thanh toán mới nhất.


1
Không làm việc cho tôi. Nhưng đó phải là do một số đầu nậu đã thiết lập TFS với những chính sách ngớ ngẩn.
SHODAN

5

Để tham khảo, nếu bạn đang sử dụng TFS 2010 , đây là liên kết đến sổ tay hướng dẫn Rollback Command (Team Foundation Version Control) .

Rollback một đặc biệt changeset , đi đến Visual Studio Command Prompt (2010) , điều hướng đến thư mục TFS không gian làm việc của bạn, và gõ lệnh:

tf rollback /changeset:C12345

số bộ thay đổi 12345của bạn ở đâu . Sau đó, nó sẽ hiển thị cho bạn nhật ký về những gì nó đã làm và bạn sẽ phải sắp xếp các xung đột hợp nhất.



4

Không có tùy chọn khôi phục thực sự là tính năng của TFS;)

Để khôi phục các thay đổi:

  1. Kiểm tra bất kỳ phiên bản thay đổi cụ thể nào bạn muốn
  2. Chỉnh sửa-> Chọn tất cả-> Sao chép văn bản trong tệp
  3. Kiểm tra bất kỳ phiên bản nào của tệp trên máy chủ
  4. Dán tệp và đăng ký.

Và bây giờ tất cả các tập thay đổi trung gian của bạn trước khi khôi phục cũng được lưu! Thật là một tính năng tuyệt vời!


Lúc đầu, tôi nghĩ rằng điều này là mỉa mai, nhưng giải pháp này thực sự có thể hiệu quả đối với những người trong chúng ta, những người không đủ may mắn được cấp phép khôi phục.
EBarr

Trừ khi các thay đổi sau đó được thực hiện đối với cùng các tệp mà bạn thực sự muốn giữ lại.
Robert Jeppesen

Thô nhưng đây là cách duy nhất tôi có thể thực hiện điều này trong TFS. Nếu tôi làm một kiểm tra sau đó lấy phiên bản TFS cũ sẽ AutoMerge lên phiên bản mới nhất bất cứ khi nào tôi cố gắng để chọn lại.
Steve

1

Nếu bạn đã thực hiện 1 lần đăng ký và bạn chỉ muốn hoàn tác nó, điều đó có bộ thay đổi # được liên kết với nó. Thực hiện lịch sử trên thư mục được đề cập để xem tập hợp các thay đổi xấu. Mở nó lên để xem chi tiết (tất cả các tệp đã thay đổi, v.v.).

Tôi tin rằng bạn có thể khôi phục hoặc hoàn tác một tập hợp thay đổi từ màn hình đó, nhưng Visual Studio của tôi vừa gặp sự cố khi tôi cố gắng thực hiện việc này. / thở dài - Tôi chắc chắn chia sẻ nỗi đau của bạn.

Tôi downmod TFS trên trang này ở đâu?


Không, khôi phục từ giao diện người dùng Lịch sử chỉ được thêm vào TFS 2010.
Richard Berg

1

Tôi nghĩ rằng Team Foundation Power Tools là cách để đi. Nếu có những thay đổi đang chờ xử lý, bạn có thể di chuyển chúng vào một bộ giá sau đó hoàn tác hoặc kiểm tra tất cả các thay đổi đang chờ xử lý trước khi chạy lệnh khôi phục. Xem http://www.codeplex.com/VSTSGuidance/Wiki/View.aspx?title=How%20to%20undo%20a%20check-in&referringTitle=Source%20Control%20Practices%20at%20a%20Glance để biết thêm thông tin.


1

Ben Scheirman - hộp thoại Chi tiết thay đổi không có chức năng khôi phục.


1

Một tùy chọn khác là TFSPlus . Addin Visual Studio này thêm (trong số những người khác) lệnh Get This Version vào cửa sổ lịch sử. Nếu bạn đã kiểm tra tệp, nó sẽ thay thế nó bằng phiên bản đó. Nếu bạn thực hiện kiểm tra sau đó, bạn sẽ thực hiện khôi phục phiên bản đó một cách hiệu quả.

Tuy nhiên, nó hoạt động trên các tệp riêng lẻ thay vì các bộ thay đổi hoàn chỉnh.



1

Nhận phiên bản cụ thể

Trong Loại phiên bản thả xuống, chọn Loại là changeset

Sử dụng nút Changeset ... để tìm Changeset của bạn hoặc chỉ cần nhập, nếu bạn biết số này.

Sau khi bạn có Bộ thay đổi cụ thể.

Thủ tục thanh toán

Đăng ký vào


0

Không có giải pháp nào trong số này phù hợp với tôi. Giải pháp của Dave Roberts là giải pháp gần nhất với những gì tôi thực sự làm được. Tôi chưa bật Nhận phiên bản mới nhất của mặt hàng khi thanh toán, tuy nhiên, nó có vẻ là một chính sách máy chủ.

Giải pháp của tôi cho điều này là kiểm tra tệp để chỉnh sửa, lấy phiên bản cụ thể, sau đó khi xung đột được phát hiện, hãy sử dụng công cụ hợp nhất (và hợp nhất theo cách thủ công không có thay đổi nào) để tệp ở tình trạng ban đầu.

Tôi sẽ so sánh với phiên bản cụ thể và sao chép toàn bộ tệp sau đó chỉ cần dán nó lên trên cùng của tệp cũ.

Vẫn có một cách dễ dàng hơn để làm điều này!


0

Giải pháp trên là dành cho TFS2008. TFS2010 được tích hợp tính năng quay lui. thấy này bài viết để biết chi tiết.


Ngoại trừ việc VS2010 (tf) không hoạt động với TFS2008 và kể từ khi TFPT 2010 không có khả năng khôi phục nữa, bạn sẽ gặp khó khăn.
Simon Gillbee vào

0

Cài đặt phiên bản mới nhất của TFS Power Tools (tháng 8 năm 2011) và bạn có thể chỉ cần nhấp chuột phải vào tập hợp thay đổi và chọn "Rollback Entire Changeset". Nó không trở nên dễ dàng hơn thế.

Nó có sẵn tại đây: http://visualstudiogallery.msdn.microsoft.com/c255a1e4-04ba-4f68-8f4e-cd473d6b971f

Nó được gợi ý trong Các cải tiến của Team Explorer trên trang trên:

Điểm mới trong bản phát hành này là khả năng [..] dễ dàng khôi phục các thay đổi trong kiểm soát phiên bản.

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.