TFS 체크인을 롤백하려면 어떻게합니까?


92

최근 TFS에서 변경 한 사항을 롤백하고 싶습니다. Subversion에서 이것은 매우 간단했습니다. 그러나 TFS에서는 엄청난 골칫거리 인 것 같습니다.

옵션 1 : 이전 버전 가져 오기

  1. 각 파일의 이전 버전을 수동으로 가져옵니다.
  2. 편집 확인
  3. 실패-체크 아웃 (VS2008에서)으로 인해 최신 버전을 가져 오게됩니다.

옵션 2 : TFS 전동 도구 받기

  1. Team Foundation Power Tools 다운로드
  2. cmd 라인에서 롤백 명령 실행
  3. 실패-다른 보류중인 변경 사항이 있으면 작동하지 않습니다.

옵션 3 : 변경 사항을 수동으로 실행 취소

  1. 수동으로 내 변경 사항을 실행 취소 한 다음 새 변경 집합을 커밋합니다.

질문

TFS에서 이전 변경 집합으로 롤백하려면 어떻게합니까?


2
VSS에는 롤백이 없습니다. "롤백"이라는 또 다른 기능이 있지만 TFS 용어로는 실제로 파괴입니다. (a) 팁에서만 할 수 있습니다. 롤백하려는 변경 사항 이후에 추가 변경 사항이 체크인 된 경우 작동하지 않습니다. (b) 데이터베이스에서 변경 사항을 영구적으로 제거합니다
Richard Berg

1
오, VSS 롤백의 용이성을 얼마나 간절히 바라는지.
Greg

2
최근에이 문제를 발견했습니다. TFS에서 롤백하기가 왜 그렇게 어려운지. 롤 - 다시는 소스 제어의 기본 기능 중 하나
JohnIdol

2
이것은 TFS에서 너무 고통 스럽습니다!
Jon Kragh

1
Mercurial로 전환하십시오! 나는 직업을 바꾸고 TFS에 자신을 묶었습니다. 그 이후로 명령 줄에서 Hg처럼 보이도록 PowerShell 스크립트를 작성했습니다.
Sumo

답변:


63
  1. Team Foundation Power Tools를 다운로드하여 설치 합니다.
  2. Visual Studio 명령 프롬프트를 엽니 다.
  3. TFS가 매핑 된 파일 시스템의 디렉터리로 이동합니다. 이 작업을 수행하지 않으면 롤백을 시도 할 때 "작업 영역을 확인할 수 없습니다"오류가 발생합니다.
  4. 다른 모든 항목이 체크인 또는 보류되었는지 확인하십시오.
  5. tfpt rollback을 실행하여 인터페이스를 불러옵니다.
  6. 롤백 할 변경 세트를 선택하십시오.
  7. 롤백 한 파일의 새 버전을 체크인하십시오.

이 도구의 가장 큰 단점은 병합하기 전에 작업 공간의 모든 항목을 새로 고치려고한다는 것입니다. 영향을받는 파일이있는 소스 트리의 위치에 직접 매핑되는 롤백을위한 새 작업 공간을 만들어이 문제를 해결했습니다.

롤백 할 변경 집합을 파악하는 데 도움이 필요한 경우 무료 Team Foundation Side Kicks 추가 기능 의 코드 검토 도구 가 매우 유용합니다.


이 방법을 시도 할 수 있지만 경고를 받으면 도구가 잘 문서화되어 있지 않으며 모든 오류를 통과 할 수 있더라도 실제로 롤백 할 수도 있고 그렇지 않을 수도 있습니다. (방금
alchemical

1
이 기술은 저에게 효과적이었습니다. 작업 공간 제안은 매우 좋았습니다 (그리고 대규모 코드 기반을 다루는 경우 중요합니다).
cloggins 2010

1
경고 ... TFS 및 Visual Studio의 일치하지 않는 버전을 사용하는 경우 catch 22가 있습니다. 나는 TFS2008과 함께 VS2010을 사용하고 있고 (IT가 dev를 따라 잡지 못하는 고전적인 경우) VS2010과 함께 TF.EXE는 이제 롤백이 있지만 TFS2008에 대해서는 작동하지 않습니다. 그리고 tfpt 2010은 롤백이 제거되었으므로 이전 방식으로 할 수 없습니다.
Simon Gillbee 2011

7
'rollback'명령이 VS2010 용 Power Tools에서 이동되었으므로 이제 'tf rollback'을 입력하면됩니다. social.msdn.microsoft.com/Forums/en/tfspowertools/thread/…
Dan

TFS Power Tools 2011 년 8 월 버전부터 롤백하기 위해 더 이상 명령 줄을 사용할 필요가 없습니다.
joerage

24

솔루션 # 1이 작동합니다. 1. 각 파일의 이전 버전을 수동으로 가져옵니다.

  1. 편집을 위해 체크 아웃

  2. 파일을 체크인하고 메시지가 표시되면 서버 변경 사항 무시하십시오.

실패한 이유는 "체크 아웃시 최신 버전의 항목 가져 오기"옵션이 켜져 있어야하기 때문입니다. 도구 ... 옵션 ... 소스 제어 ... Visual Studio Tema Foundation Server로 이동하여 "체크 아웃시 최신 버전의 항목 가져 오기"를 선택 취소하여이 옵션을 끕니다.

건배


2
Power Tools를 사용하여 2 시간 동안 고생하고 아무데도 가지 못한 후에 이렇게했습니다 ... wtf는 TFS가이 기본 기능을 지원하지 않습니다 ...
alchemical

이 기능은 TFS 2010 / Visual Studio 2010에 추가되었습니다.
Robaticus

2
분명히 이것은 진정한 롤백이 아닙니다. 이전 버전을 받고 있습니다. 같은 것이 아닙니다.
Ryan Cromwell

결제시 최신 버전의 항목 가져 오기 설정 문제를 지적 해 주신 +1 !
Sir Crispalot 2013 년

18

롤백이 tfpt.exe에서 Team Foundation 버전 제어 도구 인 tf.exe로 이동되었습니다.

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
Visual Studio에서 직접이 작업을 수행 할 수있는 방법이 있습니까?
Kyle Delaney

14

TFS 2010 버전 제어에서 변경 집합을 롤백 (되돌리기)하는 두 가지 옵션이 있습니다. 첫 번째 옵션은 사용자 인터페이스를 사용하는 것입니다 (최신 버전의 TFS 2010 Power Tools가 설치된 경우).

TFS 2010 용 UI의 롤백 변경 집합

다른 옵션은 TFS 2010 버전 제어 명령 줄 응용 프로그램을 사용하는 것입니다.

tf.exe rollback

블로그 게시물 에 두 가지 접근 방식에 대한 정보가 있습니다. http://www.edsquared.com/2010/02/02/Rollback+Or+Undo+A+Changeset+In+TFS+2010+Version+Control.aspx


14

옵션 1을 작동시키는 또 다른 방법은 단계의 순서를 바꾸는 것입니다.

  1. 항목 확인
  2. 특정 버전을 이전 버전으로 가져 오기
  3. 체크인 ( "경고 서버 버전이 최신 버전 임"대화 상자 무시) 또는 보류중인 변경 사항 대화 상자의 충돌 섹션에서 로컬 버전을 유지하여 충돌을 해결하십시오.

이것은 체크 아웃시 최신 정보 가져 오기를 설정 한 경우에도 작동합니다.


1
나를 위해 일하지 않았습니다. 그러나 그것은 일부 핀 헤드가 어리석은 정책으로 TFS를 설정했기 때문일 것입니다.
SHODAN

5

참고로 TFS 2010을 사용하는 경우 Rollback Command (Team Foundation Version Control) 링크가 있습니다. 매뉴얼 있습니다.

특정 롤백 변경 집합을 로 이동 프롬프트 비주얼 스튜디오 명령 (2010) 당신의 TFS 작업 공간 디렉토리, 탐색 및 명령을 입력 :

tf rollback /changeset:C12345

12345변경 세트 번호는 어디에 있습니까 ? 그 후, 그것이 한 일에 대한 로그를 보여줄 것이며 병합 충돌을 분류해야 할 것입니다.



4

롤백 옵션이없는 것은 실제로 TFS의 기능입니다.)

변경 사항을 롤백하려면 :

  1. 원하는 특정 버전의 변경 사항을 확인하십시오.
  2. 편집-> 모두 선택-> 파일의 텍스트 복사
  3. 서버에있는 파일의 모든 버전을 체크 아웃하십시오.
  4. 파일 위에 붙여넣고 체크인하십시오.

이제 롤백 이전의 모든 중간 변경 세트도 저장됩니다! 정말 대단한 기능입니다!


처음에는 이것이 비꼬는 것이라고 생각했지만이 솔루션은 실제로 롤백 권한을 부여받을만큼 운이 좋지 않은 사람들에게 효과적 일 수 있습니다.
EBarr 2010

나중에 실제로 유지하려는 동일한 파일을 변경하지 않는 한.
Robert Jeppesen

조잡하지만 이것이 TFS에서 이것을 수행 할 수있는 유일한 방법이었습니다. 체크 아웃하면 이전 버전을 검색하면 다시 체크인을 시도 할 때마다 TFS가 마지막 버전으로 자동 병합됩니다.
Steve

1

체크인을 한 번 수행하고 실행 취소하려는 경우 연결된 변경 세트 번호가 있습니다. 잘못된 변경 집합을 보려면 해당 폴더에 대한 기록을 수행하십시오. 세부 정보 (모든 파일 변경 등)를 보려면 파일을 엽니 다.

해당 화면에서 변경 집합을 복원하거나 실행 취소 할 수 있다고 생각하지만이 작업을 수행하려고 할 때 Visual Studio가 중단되었습니다. / 한숨-나는 분명히 당신의 고통을 공유합니다.

이 사이트에서 TFS를 어디에서 다운 모드합니까?


아니, 역사 UI에서 롤백은 TFS 2010에서 추가되었다
리처드 버그


1

Ben Scheirman-Changeset Details 대화 상자에는 롤백 기능이 없습니다.


1

또 다른 옵션은 TFSPlus 입니다. 이 Visual Studio 추가 기능은 (다른 것들 중에서)이 버전 가져 오기 명령을 기록 창에 추가합니다. 파일을 체크 아웃 한 경우 해당 버전으로 대체됩니다. 나중에 체크인하면 해당 버전으로 효과적으로 롤백 할 수 있습니다.

그러나 완전한 변경 세트 대신 개별 파일에서 작동합니다.



1

특정 버전 받기

에서 버전 유형 으로 선택 유형 드롭 다운 변경 집합

변경 세트 ... 버튼을 사용하여 변경 세트를 찾거나이 번호를 알고있는 경우 입력하십시오.

특정 Changeset을 얻은 후.

체크 아웃

체크인


0

이러한 솔루션 중 어느 것도 저에게 효과적이지 않았습니다. Dave Roberts 솔루션은 제가 실제로 작업 한 것과 가장 근접했습니다. 체크 아웃시 최신 버전의 항목 가져 오기가 활성화되어 있지 않지만 서버 정책 인 것 같습니다.

이에 대한 나의 해결책은 편집을 위해 파일을 체크 아웃하고 특정 버전을 가져온 다음 충돌이 감지되면 병합 도구를 사용하고 변경 사항을 수동으로 병합하여 파일이 원래 상태가되도록하는 것입니다.

특정 버전과 비교하여 전체 파일을 복사 한 다음 이전 파일 위에 붙여 넣으려고했습니다.

이 작업을 수행하는 더 쉬운 방법이 있어야합니다!


0

위의 솔루션은 TFS2008 용입니다. TFS2010에는 기본 제공 롤백 기능이 있습니다. 자세한 내용은 기사를 참조하십시오.


VS2010 (tf)이 TFS2008에 대해 작동하지 않는다는 점을 제외하고 TFPT 2010에는 더 이상 롤백이 없기 때문에 당신은 푹 빠져 있습니다.
Simon Gillbee 2011

0

설치 TFS 전동 공구의 최신 버전 (2011 년 8 월), 당신은 할 수 변경 세트를 마우스 오른쪽 버튼으로 클릭 하고 "롤백 전체 변경 집합"을 선택합니다. 그것보다 훨씬 쉬워지지는 않습니다.

http://visualstudiogallery.msdn.microsoft.com/c255a1e4-04ba-4f68-8f4e-cd473d6b971f 에서 사용할 수 있습니다.

위 페이지의 Team Explorer Enhancements 아래에 암시되어 있습니다 .

이 릴리스의 새로운 기능은 버전 제어의 변경 사항을 쉽게 롤백하는 [..] 기능입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.