Team Foundation 버전 제어 명령 참조
버전 제어 명령을 사용하여 Visual Studio에서 수행할 수 있는 거의 모든 작업뿐 아니라 Visual Studio에서 수행할 수 없는 여러 작업도 수행할 수 있습니다. tf.exe 도구를 사용하여 명령 프롬프트 또는 스크립트 내에서 버전 제어 명령을 실행할 수 있습니다.
수행할 작업
명령 실행
개발 컴퓨터 설정
응용 프로그램 개발
작업 일시 중단
작업 참여
파일 관리 및 문제 해결
위험 격리
명령 구문 이해
명령의 영향을 받는 항목 지정
itemspec 인수를 사용하여 영향을 받는 항목 지정
versionspec 인수를 사용하여 영향을 받는 항목 버전 지정
옵션을 사용하여 명령 작동 방식 수정
/noprompt 옵션을 사용하여 데이터 입력 요청을 표시하지 않고 출력 데이터를 명령 프롬프트 창으로 리디렉션
/login 옵션을 사용하여 명령 실행 시 자격 증명 지정
/lock 옵션을 사용하여 잠금 적용 또는 제거
옵션 바로 가기 사용
종료 코드 이해
명령 실행
Visual Studio 명령 프롬프트를 시작하려면 Windows 시작에서 Microsoft Visual Studio 2012, Visual Studio Tools를 차례로 선택하고 명령 프롬프트 바로 가기 중 하나를 선택합니다.
대부분의 경우에는 작업 영역에 매핑된 디렉터리의 컨텍스트에서 버전 제어 명령을 실행합니다. 예를 들어 $/SiteApp/Main/ 명령은 c:\code\SiteApp\Main\ 디렉터리에 매핑됩니다. 작업 영역에 있는 모든 항목의 최신 버전을 가져오려면 다음 명령을 실행합니다.
c:\code\SiteApp\Main\SolutionA>tf get
참고
현재는 일부 항목을 다시 게시하고 있지 않지만이러한 항목의 Visual Studio 2010 버전은 확인할 수 있습니다.
개발 컴퓨터 설정 및 작업 영역 관리
작업 영역은 팀 코드베이스의 로컬 복사본이며, 개발 컴퓨터의 로컬 복사본이므로 작업을 체크 인할 준비가 될 때까지 격리된 상태에서 코드를 개발하고 테스트할 수 있습니다. 작업 영역을 관리하는 몇 가지 명령은 다음과 같습니다.
Proxy Command (Visual Studio 2010)
WorkFold Command (Visual Studio 2010)
Workspace Command (Visual Studio 2010)
Workspaces Command (Visual Studio 2010)
참고 항목: 개발 컴퓨터에 Team Foundation 버전 제어 설정, 작업 영역 만들기 및 사용
응용 프로그램 개발
다음 명령을 사용하여 버전 제어가 적용되는 앱을 팀과 함께 개발할 수 있습니다.
Add 명령
버전 제어에 파일과 폴더를 추가합니다.Checkout(또는 Edit) 명령
파일을 체크 아웃하고 보류 중인 변경 내용 상태를 "편집"으로 변경합니다.Delete 명령(Team Foundation 버전 제어) (Visual Studio 2010)
Get 명령
폴더나 파일 하나 이상의 최신 버전 또는 지정한 버전을 Team Foundation Server에서 작업 영역으로 가져옵니다(다운로드합니다).Rename 명령(Team Foundation 버전 제어) (Visual Studio 2010)
Status 명령
하나 이상의 작업 영역이나 보류 집합에서 보류 중인 파일 및 폴더 항목 변경 내용에 대한 정보를 표시합니다.Undo 명령
파일이나 폴더에 대한 보류 중인 변경 내용을 하나 이상 취소합니다.Undelete Command (Visual Studio 2010)
참고 항목: Team Foundation 버전 제어에서 응용 프로그램 개발
작업 일시 중단
다양한 이유로 진행 중인 작업의 일부 또는 전부를 따로 유지할 필요가 있습니다. 작업을 일시 중단 및 다시 시작하고 보류 집합을 관리하려면 다음 명령을 사용합니다.
Shelve 명령 (Visual Studio 2010)
Shelvesets Command (Visual Studio 2010)
Unshelve 명령 (Visual Studio 2010)
참고 항목: 작업 일시 중단 및 보류 집합 관리.
작업 참여
팀 코드베이스에 코드를 체크 인하는 방법은 다음과 같습니다.
- Checkin 명령
보류 중인 변경 내용을 서버의 폴더나 파일에 체크 인합니다.
참고 항목: 팀의 코드베이스에 작업 체크 인
파일 관리 및 문제 해결
버전 제어 파일 및 폴더 보기/관리
Properties 명령 (Visual Studio 2010)
속성 명령(문서화되어 있지 않음)
Dir Command (Visual Studio 2010)
Destroy Command (Visual Studio 2010)
LocalVersions Command (Visual Studio 2010)
이전 버전 보기 및 관리
Changeset Command (Visual Studio 2010)
History 명령
하나 이상의 파일 또는 폴더에 대한 수정 기록을 표시합니다.Label Command (Visual Studio 2010)
Labels Command (Visual Studio 2010)
Rollback Command (Visual Studio 2010)
Unlabel Command (Visual Studio 2010)
View Command (Visual Studio 2010)
참고 항목: 이전 버전 보기 및 관리
폴더 및 파일 비교
Difference Command (Visual Studio 2010)
Folderdiff Command (Visual Studio 2010)
참고 항목: 이전 버전 보기 및 관리
파일 충돌 해결
Resolve Command(Visual Studio 2010)참고 항목: Team Foundation 버전 제어 충돌 해결.
버전 제어 잠금 작업
Lock Command(Visual Studio 2010)참고 항목: 버전 제어 잠금 작업.
위험 격리
다음 명령을 사용하여 분기를 통해 위험을 격리합니다.
Branch Command (Visual Studio 2010)
Branches Command (Visual Studio 2010)
Merge Command (Visual Studio 2010)
Merges Command (Visual Studio 2010)
참고 항목: Team Foundation 버전 제어에서 분기를 사용하여 위험 격리.
버전 제어 관리
다음 명령을 사용하여 버전 제어 시스템을 관리합니다.
Configure Command (Visual Studio 2010)
Permission Command (Visual Studio 2010)
참고 항목: Team Foundation 버전 제어 관리(Visual Studio 2010)
버전 제어 명령에 대한 도움말 확인
다음 명령을 사용하여 버전 제어 명령에 대한 자세한 내용을 확인합니다.
Help Command (Visual Studio 2010)
Msdn Command (Visual Studio 2010)
명령 구문 이해
각 명령의 구문은 각 참조 항목 위쪽에 표시됩니다.
필수/선택적 인수
괄호가 없는 인수는 필수입니다. **[Brackets]**는 명령을 완료하는 데 반드시 필요하지는 않은 선택적 인수를 나타냅니다. 그러나 옵션을 지정하지 않아도 명령에 기본값이 적용되는 선택적 인수도 있습니다.
단독 인수
여러 옵션이 파이프(|)로 구분되는 경우에는 해당 옵션 중 하나를 지정할 수 있습니다.
축자 및 대체 가능 인수
굵게 표시된 항목은 축자를 포함할 수 있는 옵션입니다. 기울임꼴로 표시된 항목은 명령을 수행하려면 실제 문자로 교체해야 하는 인수입니다.
명령 바로 가기 및 별칭
일부 명령은 바로 가기를 지원합니다. 예를 들어 삭제 명령은 tf delete 또는 tf del을 사용하여 호출할 수 있습니다.
예제
아래 체크 아웃 명령을 예로 살펴보겠습니다.
tf checkout [/lock:( none|checkin|checkout)] [/recursive] itemspec [/login: username,[ password]]
이 예의 인수는 다음과 같습니다.
itemspec: 이 인수는 체크 아웃할 항목을 지정하는 itemspec으로 바꿔야 합니다.
/lock:(none|checkin|checkout): /lock 옵션은 지정하지 않아도 됩니다. 해당 옵션을 지정하지 않으면 시스템에서 기본적으로 /lock:none이 지정됩니다. 그렇지 않으면 잠금 옵션 중 하나를 지정할 수 있습니다.
다음 인수는 선택적 항목이며 입력하지 않으면 명령에 적용되지 않습니다.
/recursive: 폴더의 여러 항목을 재귀적으로 체크 아웃하려면 이 옵션 축자를 지정해야 합니다.
/login:username,password: 명령을 다른 사용자로 실행하려면 /login 옵션 축자를 지정하고 username은 해당 사용자의 이름으로 바꿔야 합니다. 그리고 필요한 경우에는 암호를 입력할 수 있습니다.
명령의 영향을 받는 항목 지정
itemspec 및 versionspec을 사용하여 명령의 영향을 받는 항목을 지정할 수 있습니다.
itemspec 인수를 사용하여 영향을 받는 항목 지정
itemspec(항목 사양)를 사용하여 명령의 영향을 받는 항목을 지정합니다. 항목은 클라이언트 컴퓨터나 Team Foundation Server에서 지정할 수 있습니다. *, ? 등의 와일드카드를 사용할 수 있습니다.
클라이언트 itemspec 인수
클라이언트 itemspec 인수는 폴더(예: c:\code\SiteApp\Main\SolutionA\), 파일(예: c:\code\SiteApp\Main\SolutionA\Project1\program.cs 또는 여러 파일(예: c:\code\SiteApp\Main\SolutionA\*.cs)과 같은 클라이언트 컴퓨터의 항목에 대한 경로를 지정합니다. \\myshare\code\SiteApp\Main 등의 UNC 경로를 지정할 수도 있습니다.
서버 itemspec 인수
서버 itemspec 인수는 폴더(예: $/SiteApp/Main/SolutionA), 파일(예: $/SiteApp/Main/SolutionA/Project1/program.cs 또는 여러 파일(예: $/SiteApp/Main/SolutionA/*.cs)과 같은 Team Foundation Server의 항목에 대한 경로를 지정합니다.
일반적으로 클라이언트 컴퓨터에 없는 항목에 대해 명령을 실행해야 할 때 서버 itemspec 인수를 사용합니다. 개발 컴퓨터에서 작업 중인데 현재 사용 중이지 않은 팀 프로젝트 컬렉션의 일부 항목에 대한 수정 기록 데이터를 확인해야 하는 경우를 예로 들 수 있습니다.
c:\>tf history /collection:http://fabrikam-3:8080/tfs/DefaultCollection
$/SiteApp/Main/SolutionA/Project1/* /recursive
/noprompt
여러 itemspec 인수
여러 itemspec 인수를 지정할 수 있는 명령도 있습니다. 예를 들면 다음과 같습니다.
c:\code\SiteApp\Main\SolutionA\Project1\>tf checkout program1.cs program2.c
program.cs 및 program2.c를 체크 아웃합니다.
versionspec 인수를 사용하여 영향을 받는 항목 버전 지정
versionspec(버전 사양)을 사용하여 명령의 영향을 받는 항목의 버전을 지정합니다. versionspec은 다음과 같이 입력할 수 있습니다.
/version 옵션을 사용합니다. 예: /version:C44
versionspec을 세미콜론으로 구분하여 itemspec에 추가합니다. 예: program1.cs;C44
History 명령 또는 Difference Command을 사용할 때는 버전을 물결표(~)로 구분하여 버전 범위를 지정할 수 있습니다. 예를 들면 다음과 같습니다.
c:\code\SiteApp\Main\SolutionA>tf history /noprompt * /recursive /v:D4/12/2012~D4/24/2012
versionspec을 지정하려면 다음 구문을 사용합니다.
형식 |
구문 |
설명 |
---|---|---|
변경 집합 |
[C]n |
변경 집합 번호를 기준으로 항목을 지정합니다. 범위 내에 있는 항목이 지정한 변경 집합에서 수정되지 않은 경우에 시스템에서는 지정한 변경 집합 전에 적용된 항목의 최신 버전을 가져옵니다. 팁 숫자만 지정하는 경우에는 C를 생략할 수 있습니다. 예제
-- 또는 --
-- 또는 --
변경 집합 8에서 readme.txt가 수정된 경우 해당 파일 버전을 가져옵니다. 그렇지 않으면 버전 8 이전의 최신 readme.txt 버전을 가져옵니다. |
레이블 |
Llabel |
label이 적용된 항목을 지정합니다. 예제
레이블이 JulyHotFix인 readme.txt 버전을 가져옵니다.
자동화된 빌드 프로세스 등의 일부분으로 레이블이 LastKnownGood인 변경 집합이 작성되었을 때의 상태대로 작업 영역에서 레이블이 지정된 모든 항목 버전을 검색하고 레이블이 지정되지 않은 항목은 삭제합니다. |
날짜 및 시간 |
Dyyyy-mm-ddTxx:xx 또는 Dmm/dd/yyyy 또는 모든 .NET Framework 지원 형식입니다. 또는 로컬 컴퓨터에서 지원되는 모든 날짜 형식입니다. |
지정한 날짜와 시간에 작성된 변경 집합을 지정합니다. 예제
2004년 3월 22일 00:00(자정)의 코드베이스와 일치하도록 작업 영역을 업데이트합니다.
2004년 3월 22일 09:00(오전 9시)의 코드베이스와 일치하도록 작업 영역을 업데이트합니다. .NET Framework 지원 날짜 및 시간 형식에 대한 자세한 내용은 DateTime 및 표준 날짜 및 시간 서식 문자열을 참조하세요. |
작업 영역(현재) |
W |
작업 영역의 버전을 지정합니다. |
작업 영역(지정됨) |
Wworkspacename; workspaceowner |
지정된 작업 영역의 버전을 지정합니다. 예를 들면 WResolveRIConflicts;PeterW 같은 형식입니다. |
팁 |
T |
최신 버전을 지정합니다. |
옵션을 사용하여 명령 작동 방식 수정
일부 명령 옵션을 사용하여 명령 작동 방식을 수정할 수 있습니다.
/noprompt 옵션을 사용하여 데이터 입력 요청을 표시하지 않고 출력 데이터를 명령 프롬프트 창으로 리디렉션
/noprompt 옵션을 사용하면 데이터 입력 요청을 표시하지 않고 출력 데이터를 명령 프롬프트 창으로 리디렉션할 수 있습니다. 명령이 사용자의 개입 없이 자동으로 실행되므로 스크립트에서 버전 제어 명령을 사용해야 하며, 해당 스크립트가 구문 분석, 캡처 등의 작업을 수행하기 위한 데이터를 사용할 수 있는 경우에는 이 옵션이 유용할 수 있습니다.
이 옵션을 사용할 때 시스템은 다음 작업을 수행합니다.
모든 입력 요청을 표시하지 않습니다.
명령 프롬프트 창에 질문이 표시되지 않습니다. 예를 들어 Undo 명령에서 이 옵션을 사용하는 경우 변경 내용 실행 취소를 진행할지 확인하는 메시지가 표시되지 않습니다.
창과 대화 상자가 표시되지 않습니다. Checkin 명령에서 이 옵션을 사용하는 경우를 예로 들 수 있습니다. 이 경우 옵션(체크 인할 항목 또는 연결할 작업 항목)을 확인하라는 체크 인 대화 상자가 표시되는 대신 확인 없이 체크 인이 진행됩니다.
명령 프롬프트로 출력 데이터를 리디렉션합니다. History 명령에서 이 옵션을 사용하는 경우를 예로 들 수 있습니다. 이 경우에는 기록 창이 아닌 명령 프롬프트 창에 데이터가 표시됩니다.
/login 옵션을 사용하여 명령 실행 시 자격 증명 지정
명령을 실행할 Team Foundation Server 사용자 계정을 지정하려면 /login 옵션을 사용합니다. 이 옵션은 다른 팀 멤버의 컴퓨터에서 작업할 때 유용할 수 있습니다.
Julia가 Peter의 개발 컴퓨터에서 함께 작업을 하는 경우를 예로 들어 보겠습니다. Julia는 아래의 잠금 명령을 사용하여 이전에 잠근 파일의 잠금을 해제합니다.
c:\code\SiteApp\Main> tf lock /lock:none program.cs /login:JuliaI,JuliaPassword
이 경우 Julia는 명령 프롬프트에 암호가 표시되지 않도록 암호를 포함하지 않고 다음 명령을 입력할 수 있습니다.
c:\code\SiteApp\Main> tf lock /lock:none program.cs /login:JuliaI
이 명령을 입력하면 시스템에서는 입력이 마스킹되는 대화 상자에서 암호를 입력하라는 메시지가 표시됩니다.
/lock 옵션을 사용하여 잠금 적용 또는 제거
중요
/lock 옵션은 신중하게 사용하고 항목을 잠그는 이유와 잠금을 제거할 시기에 대해 팀 동료에게 알리는 것이 좋습니다.
추가 또는 편집 등의 다른 명령을 실행함과 동시에 잠금을 적용하거나 제거하려면 /lock 옵션을 사용합니다.
/lock:(none|checkin|checkout)
None: 항목에 잠금이 적용되지 않습니다. 이미 잠겨 있는 항목의 경우 잠금이 제거됩니다.
Checkin 또는 Checkout: 잠금을 적용합니다. 잠금 형식 이해을 참조하십시오.
참고
드물지만 잠금 작업이 실패하는 경우도 있습니다.
-
다른 사용자가 지정한 항목을 잠근 경우 잠금 작업은 실패합니다.
-
항목에 대한 보류 중인 변경 내용이 이미 있으면 시스템에서 이 스위치를 무시합니다.이러한 경우에는 Lock Command을 사용하여 항목의 잠금을 변경해야 합니다.
옵션 바로 가기 사용
다음 옵션은 약어로 표시할 수 있습니다.
옵션 |
옵션 별칭 |
---|---|
/comment |
-C |
/computer |
-M |
/delete |
-D |
/force |
-P |
/format |
-F |
/help |
-?, -H |
/lock |
-K |
/login |
-Y |
/newname |
-N |
/noprompt |
-I |
/owner |
-O |
/recursive |
-R |
/server |
-S |
/slotmode |
-X |
/template |
-T |
/user |
-U |
/version |
-V |
/workspace |
-W |
종료 코드 이해
버전 제어 명령은 다음 종료 코드를 반환합니다.
종료 코드 |
정의 |
---|---|
0 |
명령 실행 성공 |
1 |
일부분 성공(명령의 일부분이나 전체가 실패함) |
2 |
인식할 수 없는 명령 |
100 |
명령 실행 실패 |
예를 들면 다음과 같습니다.
c:\code\SiteApp\Main\SolutionA\Project1\>tf checkout program1.cs program2.c
체크 아웃하려는 파일 중 하나가 서버에 없으면 위의 명령은 일부분 성공을 나타내는 1을 반환합니다.