문제

우리 팀의 일부 개발자가 지점 A에서 수행한 변경 사항을 보류했다고 가정해 보겠습니다.그리고 저는 B 지점에서 일하고 있습니다.그의 변경 사항을 B 지점으로 보류 취소할 수 있나요?(GUI 또는 명령 프롬프트를 통해)

도움이 되었습니까?

해결책

그만큼 Visual Studio 파워 도구 당신이 이것을 할 수 있도록 해야 합니다.

C:\src\2\Merlin\Main>tfpt unshelve /?
tfpt unshelve - Unshelve into workspace with pending changes

Allows a shelveset to be unshelved into a workspace with pending changes.
Merges content between local and shelved changes. Allows migration of shelved
changes from one branch into another by rewriting server paths.

Usage: tfpt unshelve [shelvesetname[;username]] [/nobackup]
                     [/migrate /source:serverpath /target:serverpath]

 shelvesetname          The name of the shelveset to unshelve
 /nobackup              Skip the creation of a backup shelveset
 /migrate               Rewrite the server paths of the shelved items
                        (for example to unshelve into another branch)
 /source:serverpath     Source location for path rewrite (supply with /migrate)
 /target:serverpath     Target location for path rewrite (supply with /migrate)
 /nobackup              Skip the creation of a backup shelveset

예를 들어 Branch1에서 생성된 "Shelve Set Name"이라는 선반 세트를 Branch2에 병합하려면 다음을 사용합니다.

>tfpt unshelve "Shelve Set Name";domain\userName /migrate /source:"$/Project/Branch1/" /target:"$/Project/Branch2/"

다른 팁

각 파일을 수동으로 병합할 필요가 없는 tfpt의 대체 솔루션

tfs 전동 공구의 문제점은 다음과 같습니다. '근거 없는 병합'을 수행 중이므로 모든 파일을 확인해야 합니다..나는 800개 이상의 파일로 구성된 선반 세트를 가지고 있었고 '자동 병합' 버튼을 결코 신뢰하지 않았고 각 파일을 차례로 검토하고 싶지 않았습니다. 그래서 다른 방법을 찾아야 했습니다!

  • 다운로드 및 설치 TFS 선반 세트 조수.
  • 이 도구는 VS2010의 '도구' 아래에 나타납니다.
  • 'Shelvesset Sidekick' 도구를 실행하고 검색을 클릭하면 선반세트가 표시됩니다.
  • 선반세트를 마우스 오른쪽 버튼으로 클릭하고 '선반세트 내보내기'를 선택하세요.
  • 다음과 같은 빈 위치에 저장하세요. C:\temp\shelveset-name
  • 이제 새 파일만 포함된 완전한 디렉토리 구조를 갖습니다.

(메모:내보낼 때 진행률 표시줄이 없습니다. 따라서 내보내는 데 시간이 오래 걸리는 큰 보류 세트가 있는 경우 Windows 탐색기(파일>속성>크기)에서 파일이 멈췄다고 생각되면 파일이 계속 내려오고 있는지 확인해야 합니다. ).

이제 Windows 탐색기를 사용하여 새 분기에 복사하기만 하면 됩니다.

이것은 나를 위해 일했습니다.

  • 먼저 전체 솔루션 확인(새 브랜치에서)
  • 해당 솔루션을 닫습니다.
  • VS 내에서 TFS를 오프라인으로 전환(이를 수행하는 도구) - 이것이 왜 중요한지는 아래를 참조하세요...
  • Windows 탐색기에서 파일을 복사합니다.디렉토리 구조 c:\temp\shelveset-name 새 지점에 맞게 이름을 바꿔야 합니다. 팁:올바른 위치에 복사했는지 확인하세요!!!
  • VS를 온라인으로 전환
  • 모든 변경 사항을 찾아 새 파일을 추가해야 합니다.
  • 소스 제어를 바인딩하라는 메시지가 표시되면 새 분기에 대한 경로가 올바른지 확인하십시오.
  • 테스트 - 새 파일을 체크인한 다음

중요한:먼저 TFS를 오프라인으로 전환하지 않으면 새 파일(보관 변경 집합의)이 작은 빨간색 확인 표시 없이 표시되게 되며 해당 파일을 제외하고 다시 포함해야 한다는 사실을 발견했습니다. 추가할 수 있습니다.누구든지 이 문제에 대한 대체 솔루션을 갖고 있다면 알고 싶습니다. 새로 고침이 작동하지 않는 것 같습니다.

선반 정보에는 이동하는 특정 경로가 포함됩니다.불행히도 나는 그것이 보류된 위치가 아닌 다른 위치로 보류를 해제하는 자동 방법을 모릅니다.이 작업을 수행하려면 새 분기에서 해당 파일을 확인하고 이전 분기에서 보류를 해제한 다음 파일을 수동으로 복사해야 했습니다.

편집하다:글쎄요, 제가 그 일을 힘들게 하고 있었던 것 같아요.Curt의 솔루션을 시험해 봐야겠습니다.:)

이 작업을 수행하는 데 많은 시간을 보냈고 극복해야 할 문제가 거의 없었습니다.가능하지만 여기에는 이러한 문제를 방지하기 위해 따라야 할 몇 가지 문제와 규칙이 있습니다.

오류:

작업 공간을 결정할 수 없습니다

이 특정 문제는 다음에서 명령을 실행하여 해결되었습니다. 원천 분기 루트 폴더.이것은 "대상" 분기를 사용한다고 말하는 SO에 대한 일부 답변과 반대입니다. 아니요, "소스"를 사용하십시오.

cd [your !!source!! branch root]
tfpt unshelve /migrate /source:"$/MyCollection/Development/Maint1.1" /target:"$/MyCollection/Development/Maint1.2" "myShelveset;UserName"

이에 이어 두 번째 이슈가 등장했다.TFS 서버에 연결할 수 없는 것 같습니다.내가 깨달은 것은 여러 VS가 설치되어 있고 다른 TFS 서버에 연결되어 있다는 것입니다.저는 VS12를 사용하고 있었고 작업 공간과 서버 연결이 있었습니다.그러나 TFPT2013이 작동하려면 VS13에서 동일한 연결을 복제해야 한다는 것을 깨닫지 못했습니다.동일한 서버와 작업 공간에 연결됩니다.

TFPT2015를 사용하여 시도해 보았으나 설치했는데 TFPT.exe가 설치되지 않아 쓸모가 없었습니다.그래서 TFPT2013에서 TFS2015까지 시도했는데 이 특정 명령에 작동했습니다.VS12/13이 TFS2015에 대해 잘 작동한다면 왜 안 될까요?

요약

  • CMD 또는 DevCMD 사용 - 중요하지 않음
  • 다음에서 명령을 실행하세요. 원천 분기 루트 폴더
  • 특정 VS에 대한 팀 탐색기 서버 연결 확인
  • TF Power Tools 2013은 최소한 TFS v15에서 작동합니다. 이주하다 옵션이 작동합니다
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top