답변:
비주얼 스튜디오 전동 공구는 이 작업을 수행 할 수 있도록해야한다.
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"이라는 shelve 세트를 Branch2에 병합하려면 다음을 사용합니다.
>tfpt unshelve "Shelve Set Name";domain\userName /migrate /source:"$/Project/Branch1/" /target:"$/Project/Branch2/"
각 파일을 수동으로 병합 할 필요가없는 tfpt의 대체 솔루션
tfs 전동 도구의 문제 는 '근거없는 병합'을 수행하고 있으므로 모든 파일을 확인해야한다는 것 입니다. 800 개가 넘는 파일로 구성된 쉘프 셋을 가지고 있었고 '자동 병합'버튼을 믿지 않았고 각 파일을 차례로 살펴보고 싶지 않았기 때문에 다른 방법을 찾아야했습니다!
C:\temp\shelveset-name
(참고 : 내보낼 때 진행률 표시 줄이 없습니다. 따라서 내보내는 데 시간이 오래 걸리는 큰 선반 세트가있는 경우 Windows 탐색기 (파일> 속성> 크기)에서 파일이 여전히 다운되고 있는지 확인해야합니다. 얼 었다고 생각하십시오).
이제 Windows 탐색기를 사용하여 새 분기로 복사하기 만하면됩니다.
이것은 나를 위해 일했습니다.
c:\temp\shelveset-name
는 새 분기에 해당하도록 이름을 변경해야합니다.팁 : 올바른 위치에 복사하십시오 !!!중요 : 먼저 TFS를 오프라인으로 전환하지 않으면 작은 빨간색 확인 표시없이 새 파일 (보관되지 않은 변경 집합의)이 표시되며이를 제외하고 다시 포함해야합니다. 추가 할 수 있습니다. 이 문제에 대한 대안이있는 사람이 있다면 알고 싶습니다. 새로 고침이 작동하지 않는 것 같습니다.
이 작업을 수행하는 데 많은 시간을 보냈고 극복해야 할 문제가 거의 없었습니다. 가능하지만 여기에서는 이러한 문제를 해결하기 위해 따라야 할 몇 가지 문제와 규칙이 거의 없습니다.
오류:
작업 공간을 결정할 수 없습니다
이 특정 문제는 소스 분기 루트 폴더 에서 명령을 실행하여 해결되었습니다 . 이것은 "target"branch를 사용하라고 말하는 SO에 대한 일부 답변과 상반됩니다-no, use "source":
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에 대해 잘 작동하는지 궁금합니다.
요약
다음 단계는 작은 크기의 선반 세트 (~ 20 개 이하의 파일)에 사용할 수 있습니다.