TFS의 선반이란 무엇입니까?


317

다른 팀 구성원이 소스 코드를 볼 수 있도록 TFS 선반은 소프트 체크인입니까?

즉, 저장된 코드가 올바르게 컴파일되지 않습니까?

답변:


453

선반에는 많은 용도가 있습니다. 주요 내용은 다음과 같습니다.

  1. 컨텍스트 전환 : 현재 작업에 대한 작업을 저장하여 우선 순위가 높은 다른 작업으로 전환 할 수 있습니다. 상사가 출근하고 "아! 버그 버그 버그!" 현재 기능 변경 사항을 삭제하고 버그를 수정해야합니다. 기능에 대한 작업을 보류하고 버그를 수정 한 다음 돌아와서 변경 사항에 대한 작업을 나중에 해제 할 수 있습니다.
  2. 변경 세트 공유 : 코드를 체크인하지 않고 변경 세트를 공유하려는 경우 다른 사용자가 코드를 저장하여 쉽게 액세스 할 수 있습니다. 불완전한 작업을 다른 사람 (가난한 영혼)에게 전달할 때 또는 일종의 테스트 코드가있는 경우 다른 사람이 실행해야한다고 절대 확인하지 않을 수 있습니다. H / t 리뷰이 사용에 대한 다른 반응에, 그것은 아주 좋은 생각입니다.
  3. 진행 상황 저장 : 복잡한 기능을 사용하는 동안 진행 상황을 저장 하려는 '좋은 시점'에 자신을 찾을 수 있습니다. 이것은 코드를 저장하기에 이상적인 시간입니다. CSS / HTML을 해킹하여 렌더링 버그를 수정했다고 가정 해 보겠습니다. 보통 당신은 그것을 쾅쾅하고, 당신이 올바르게 보일 때까지 생각할 수있는 모든 kludge를 반복합니다. 그러나 올바르게 표시되면 마크 업을 정리하기 위해 다시 방문하여 체크인하기 전에 다른 사람이 사용자가 수행 한 작업을 이해할 수 있도록 할 수 있습니다.이 경우 모든 것이 올바르게 렌더링 될 때 코드를 보류 할 수 있습니다. 그런 다음 실수로 마크 업을 다시 중단하면 언제든지 되돌아 가서 변경 집합을 얻을 수 있다는 점을 알고 자유롭게 마크 업을 리팩토링 할 수 있습니다.

다른 용도는?


16
체인지 셋을 선반에 보관할 때 보류중인 변경 사항을 로컬에서 유지하거나 (2 또는 3에 유용) 사용하지 않을 수 있습니다 (1에 유용)
dumbledad

2
선반에 대한 Visual Studio 설명서 에는 몇 가지 추가 컨텍스트와 정보 방법이 있습니다.
전체 론적 개발자

1
또한 최종 빌드가 완료 될 때까지 변경 사항을 저장하기 위해 Gated 빌드에서 사용됩니다.
Tore Østergaard

내가 알아 차린 한 가지는 쉘빙 변경이 반드시 코드를 되돌릴 필요는 없으며 파일 상태를 체크인으로 변경하지도 않는다는 것입니다. 따라서 버그 변경과 같은 작업을 수행하는 동안 버그 변경 코드 커밋을 피하는 방법은 무엇입니까? 당신의 선반 코드?
Jacques

변경 세트를 로컬로 유지하는 옵션을 선택할 때 파일이 체크 아웃 된 상태로 유지됩니다.
Jacques

105

선반은 체크인하지 않고 박스의 모든 변경 사항을 저장하는 방법입니다. 변경 사항은 서버에 유지됩니다. 나중에 언제든지 귀하 또는 팀원이 귀하의 기계 중 하나에 다시 보관을 해제 할 수 있습니다.

검토 목적으로도 좋습니다. 우리 팀은 체크인을 위해 변경 사항을 보류하고 변경 설명과 변경 세트 이름이 포함 된 전자 메일을 보냅니다. 그런 다음 팀원은 변경 세트를보고 피드백을 제공 할 수 있습니다.

참고 : 선반 세트를 검토하는 가장 좋은 방법은 다음 명령을 사용하는 것입니다.

tfpt 검토 / shelveset : shelvesetName; 사용자 이름

tfpt는 Team Foundation Power Tools의 일부입니다.


6
오늘은 수동으로 변경 사항을 저장하고 정보를 전자 메일로 보내야 할 이유가 없습니다. 현대적인 프로세스는 코드 검토를 요청하는 것입니다.
ChiefTwoPencils

34

맞습니다. 서가를 만들면 최신 정보를 얻는 다른 사람들에게 코드가 표시되지 않습니다.

코드 변경 사항을 서버에 저장하므로 업무용 PC보다 백업하는 것이 좋습니다.

집에서 일하고 싶은 충동을 느끼면 다른 컴퓨터에서 변경 사항을 적용 할 수 있습니다.

다른 사람들은 선반을 볼 수 있지만 (선택 사항 일 수도 있지만) 체크인 전에 코드를 검토 할 수 있습니다.


맞습니다. 서가를 만들면 최신 정보를 얻는 다른 사람들에게 코드가 표시되지 않습니다. 그것은 1) 내가 TFS에 코드를 체크인 할 때 내 팀원은 자신의 systen에서 코드가 최신 상태가되면 볼 수 있음을 의미합니다. 2) 따라서 어떤 계정으로 코드를 선반에 넣었는지 의미합니다. 같은 계정에서만 선반 코드를 볼 수 있습니까? 내가 틀렸다면 저를 바로 잡으십시오
Krish

원한다면 다른 사람들의 선반을 볼 수 있습니다.
teedyay

3
더 정확하게하기 위해, "최신 정보를 얻는 다른 사람들은 코드를 다운로드 하지 않습니다 "
sergiol

18

이러한 많은 논의에서 빠뜨린 한 가지 요점은 변경 사항을 저장 한 SAME 머신으로 되 돌리는 방법입니다. 아마도 대부분에게 분명하지만 나에게는 그렇지 않았습니다. Undo Pending Changes를 수행한다고 생각합니다. 맞습니까?

다음과 같은 과정을 이해합니다.

  1. 현재 보류중인 변경 사항을 보류하려면 프로젝트 선반을 마우스 오른쪽 단추로 클릭하고 선반 이름을 추가하십시오.
  2. 그러면 서버에 대한 변경 사항이 저장되거나 저장됩니다 (아무도 볼 수 없음)
  3. 그런 다음 보류중인 변경 내용 실행 취소를 수행하여 코드를 마지막 체크인 지점으로 되돌립니다.
  4. 그런 다음 되 돌린 코드 기준선으로 필요한 작업을 수행 할 수 있습니다.
  5. 언제든지 변경 사항을 취소 할 수 있습니다 (일부 병합 충돌이 필요할 수 있음)

따라서 보류해야 할 작업을 시작하려는 경우, 체크인 지점이 위의 보류중인 변경 사항 취소 단계를 수행 할 때 리턴되는 위치이므로 시작하기 전에 체크인해야합니다.


8
선반 세트를 만들 때 "로컬 보류중인 변경 내용 유지"확인란의 선택을 취소하면 보류중인 변경 취소 단계를 건너 뛸 수 있습니다.
Michael J.

14

나는 항상 이것을 보았으므로 지점에 관한 보충 정보 :

여러 분기로 작업하는 경우 선반 세트는 해당 분기를 만든 특정 분기에 연결됩니다. 따라서 선반에서 체인지 세트를 너무 오랫동안 녹슬 게하고 다른 지사에 선반을 놓아야한다면 7 월에 출시 된 전동 공구를 사용해야합니다.

tfpt unshelve /migrate

주제를 벗어난 것이지만 사실 :-)
Tore Østergaard

2
이 의견은이 :-) 스택 오버플로 응답 ettiquete가 설립되기 전에 너무 오래된 하였다됩니다
joshua.ewer

2

선반은 기존 변경에 영향을주지 않고 변경 사항이 소스 컨트롤에 저장된 것과 같습니다. 소스 제어에서 파일을 체크인하면 기존 파일을 수정하지만 선반은 변경 사항을 소스 제어에 저장하는 것과 같지만 실제 변경은 수정하지 않습니다.


1

@JaredPar : 예. 검토를 위해 선반 세트를 사용할 수 있지만 선반 세트는 자신 / 다른 사람이 겹쳐 쓸 수 있으므로 장기적으로 안정적이지 않습니다. 따라서 규제 관련 검토를 위해 Shelveset을 기본으로 사용하지 말고 체크인 (Changeset)으로 사용해야합니다. 비공식 검토의 경우 괜찮지 만 공식 (예 : FTA 관련) 검토에는 적합하지 않습니다!


0

게이트 빌드를 사용하는 경우 빌드가 트리거되면 빌드를 위해 제출 된 작업 공간의 선반 세트를 작성합니다. 빌드가 실패하면 선반 세트가 거부됩니다. 빌드가 성공하면 변경 세트가 작성되어 TFS에 커미트됩니다. 두 경우 모두 체크인 / 빌드를 수행하는 사람은 작업 공간을 조정해야합니다. 작업 공간은 최근에 가져 오기를 수행하는 것처럼 간단합니다.

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