2010-02-09 5 views
12

현재 소스 제어로 TFS를 사용하는 프로젝트 작업 중입니다. 나는 기능을 구현하는 중이지만 외부 리소스에 의해 수행되어야하는 작업에 의해 차단됩니다. 기능이 완전히 완료되지 않았기 때문에 빌드를 손상시키지 않고 변경 사항을 체크인 할 수 없습니다. 차단 작업이 끝난 후 며칠을 기다리는 대신 몇 가지 결함에 대해 작업하고 싶습니다.선반 대 TFS의 작업 공간

다른 변경 사항과 별도로이 작업을 수행하려면 방금 만든 두 번째 작업 공간에서 결함을 처리하고 있습니다.

두 번째 작업 영역을 사용하여 변경 사항을 격리 한 후 동료가 내 변경 내용을 저장하지 않은 이유를 묻습니다. 선반 위에서 약간의 독서를 한 후에, 이것은 내 것과 같은 상황에 대해 선호되는 해결책 인 것처럼 보입니다. 제 질문은 어떤 경우에 여러 작업 공간을 만들고 어떤 상황에서 쉘빙을 사용해야합니까?shelving에 대한 게시물이 있지만 작업 영역을 많이 보지 못했습니다.

덧붙여서, 나는 두 번째 작업 공간을 만들기위한 아이디어가 있습니다 here.

답변

11

새로운 지점이 아마도 가장 좋은 방법 일 것입니다. 그러나 질문에 대답하기 위해 선반 작업과 다른 작업 영역을 사용하는 것의 주요 차이점 중 하나는 선반에 코드를 TFS로 다시 보내서 백업한다는 것입니다. 작업 공간에있는 것이 무엇이든간에 컴퓨터에있는 것입니다. 잃어 버리면 사라집니다.

우리는 내 가게에서 분기를 많이 사용하며, 결과적으로 나는 선반 용으로 많은 용도를 보지 못했습니다.

그러나 나는 매우 유용했던 한 사례를 발견했다. 나는 종종 서로 다른 2 대의 개발 기계 (사무실에서 하나, 집에서 하나, VPN을 통해 연결됨) 사이를 돌아 다닌다. 제가 일하고 있다면 집에서 일로, 또는 그 반대로 옮기고 싶을 때, 저는 종종 선반을 사용합니다. 나는 한 기계에서 그것을 선반에 얹고 다른 기계에서 선을 뺄 수 있습니다. 나는 변화의 한가운데에있을 때 이것을하고, 체크인은 빌드를 망가 뜨리거나 다른 개발자들을 방해 할 것이다.

+0

아, 적어도 변경 사항을 백업하려면 원래 작업 공간에 내 변경 사항을 저장해야합니다. 또한 선반을 사용하여 PC간에 변경 사항을 이동하는 것이 중요합니다. 나는 그것이 매우 유용하다는 것을 알 수 있었다. – JChristian

1

선반 작업이 이상적인 옵션입니다. 선반 작업을 통해 일반 빌드 외부의 TFS에서 일괄 적으로 변경하고 나중에 이름별로 검색 할 수 있습니다. 여러 작업 영역은 현재 수행중인 작업에 대한 솔루션이 아닙니다. 서로 다른 버전의 제품을 유지 관리하고 작업해야하는 경우 여러 작업 공간이 좋습니다. 4.0 및 5.0 제품이 있고 두 버전 모두에 보안 수정 사항을 적용해야한다고 가정 해 보겠습니다. 선반은 변경을 원하지만 즉시 적용하지 않으려 고 할 때 유용합니다.

+0

분기가 다중 버전 작업에 사용되지 않습니까? 또는 개인이 각 지점에 대해 별도의 작업 공간을 갖고 있습니까? – JChristian

+0

예, 각 지사에 다른 작업 공간을 사용합니다. –

3

두 가지 완전히 다른 개념에 대해 이야기하고 있습니다. 코드를 선반에 보관하면 TFS에 저장되지만 특정 분기에는 코드가 저장되지 않습니다. 다른 작업 공간을 만들면 개발 컴퓨터에 새 로컬 폴더가 설정되고 거기에있는 지점에 파일이 저장됩니다. 체크인을 할 때 여전히 충돌이있을 수 있습니다.

코드의 새 분기를 만드는 것이 어떨까요? 해당 분기에서 작업하고 다른 사람의 변경을 밟지 않고 체크인 할 수 있습니다. 코드의 고유 분기에 체크인하기 때문입니다. 그런 다음 변경 사항을 완료하고 다른 사람이 메인 브랜치에서 작업을 완료하면 변경 사항을 메인 브랜치에 병합 할 수 있습니다.

+0

다른 지점을 만들 생각도하지 않았습니다. 내가 작업하고 있던 차단 된 기능에 대해 두 번째 분기를 작성한 다음 주 분기를 사용하여 결함을 해결해야한다고 제안 했습니까? – JChristian

+1

@JChristian - 내가해야한다고 말하는 것은 아닙니다. 그러나 대안은 작업 할 외부 리소스가 작업 할 지점을 만들고 나서 수행 할 때 함께 병합하는 것이 었습니다. 필자는 현재 릴리스에서 변경하려는 내용이 중요한 경우 응용 프로그램의 다음 릴리스에서 작업 할 때 또는이 작업을 격리하여 작업 할 때이 작업을 자주 수행했습니다. –