2012-02-01 5 views
2

며칠 전에 추가 된 서랍장을 미루고 싶었습니다. 한편, 다른 누군가가 shelveset에 포함 된 파일의 새 버전을 성공적으로 체크인했습니다. 최신 버전과 shelveset 사이에 내 파일에 충돌이 있기 때문에 (다른 기본 변경 집합이 있기 때문에), shelveset에서 사용하는이 특정 버전으로 코드 기반을 되돌리고 싶습니다.TFS에서 오래된 Shelvesets을 뺄 때 올바른 버전을 얻으려면 어떻게해야합니까?

이제 선반 세트의 기본 버전이 사용되었는지 확인할 수 있습니까? 불행히도, "세부 정보"에는이 정보가 없습니다 - 선반 셋의 정보.

답변

5

쉘브 셋 세부 정보 대화 상자에서 쉘빙 된 변경 사항의 버전을 볼 수 있습니다. 파일을 마우스 오른쪽 버튼으로 클릭하면 쉘브 버전과 최신 버전을 보여주는 "속성"을 선택할 수 있습니다.

그러나 unshelve는 최신 버전에 대한 새로운 변경 사항을 보류하지 않으며 대신 shelved 버전을 체크 아웃합니다. 이 시나리오를 상상해보십시오 :

버전 5에서 $/A에 대한 변경을 보류합니다. 선반 세트 foo을 생성하고 보류중인 변경 사항을 취소합니다.

다른 사용자는 $/A의 새 버전을 확인합니다. 당신은 당신이 보류중인 변경 버전 5 이후 당신이 최신받을 경우 foo unshelve, 당신은 지금 버전 5에서 보류중인 변경이있을 것이다한다면 당신의 $/A이 버전 6

으로 업데이트되어 이제 최신을 얻고, 버전 충돌이 발생하고 충돌을 해결하여 보류중인 변경 사항을 버전 6까지 가져올 수 있습니다.

0

나는 그렇게 생각하지 않습니다.
VersionControlServer.QueryShelvesets을 사용하여 Shelveset을 TFS-SDK와 함께 사용해도 그 방향에는 아무 것도 없습니다.

Shelveset에는 여러 분기, 폴더, 팀 프로젝트의 항목이 포함될 수 있으므로 실제로는 의미가 있습니다. 따라서 변경 세트 & 변경 집합간에 항상 "일대일"관계가있는 것은 아닙니다.

당신의 자리에 서 나는 간단하게 덧글에 정보를 추가 할 것입니다 (손으로 : 추악하지만 작동 할 것입니다)