병합 명령(Team Foundation 버전 제어)

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

tf merge 명령은 Team Foundation 버전 제어(TFVC)에서 한 분기의 변경 내용을 다른 분기로 적용합니다.

참고 항목

이 명령의 결과는 검사 작업을 수행할 때까지 Azure DevOps 서버에 반영되지 않습니다. 자세한 내용은 코드 개발 및 보류 중인 변경 내용 관리를 참조 하세요.

필수 조건

이 명령을 사용 merge 하려면 체크 아웃 사용 권한이 포함된 destination작업 영역 폴더에 대해 허용으로 설정되어 있어야 하며, 읽기 권한이 포함된 작업 영역 폴더source에 대해 허용으로 설정해야 합니다. 자세한 내용은 기본 TFVC 권한을 참조 하세요.

구문

tf merge [/recursive] [/force] [/candidate] [/discard] 
[/version:versionspec] [/lock:none|checkin|checkout] [/preview] 
[/baseless] [/nosummary] [/noimplicitbaseless] [/conservative] [/format:(brief|detailed)] [/noprompt] [/login:username,[password]] source destination

매개 변수

인수

Argument

설명

<versionspec>

옵션과 같은 C2/version 값을 제공합니다. TFVC가 버전 사양을 구문 분석하여 범위 내에 있는 항목을 결정하는 방법에 대한 자세한 내용은 Team Foundation 버전 제어 명령 사용을 참조 하세요.

<source>

병합의 원본 역할을 할 파일 또는 폴더를 지정합니다.

<destination>

병합의 대상으로 사용할 파일 또는 폴더를 지정합니다.

<username>

옵션에 값을 /login 제공합니다. 값을 하나 DOMAIN\username 또는 username.으로 지정할 username 수 있습니다.

옵션

옵션

설명

/recursive

source 현재 디렉터리 및 하위 폴더의 항목 사양과 일치합니다.

/force

이전에 일부 또는 모든 변경 내용이 병합된 경우에도 병합 기록을 무시하고 원본에서 지정된 변경 내용을 대상으로 병합합니다.

/candidate

원본에서 아직 대상에 병합되지 않은 모든 변경 집합 목록을 인쇄합니다. 목록에는 병합되지 않은 변경 집합 ID와 해당 변경 집합에 대한 기타 기본 정보가 포함되어야 합니다. 지정된 결과의 별표는 부분적으로 병합되었음을 나타냅니다. 즉, 변경 집합의 일부 변경 내용이 병합되고 다른 변경 내용이 병합되지 않았습니다.

/discard

병합 작업을 수행하지 않지만 병합 기록을 업데이트하여 병합이 발생했음을 추적합니다. 이렇게 하면 변경 집합이 특정 병합에 사용되지 카드.

/version

선택적 병합의 경우 이 옵션은 대상에 병합해야 하는 범위를 지정합니다. 캐치업 병합의 경우 이 매개 변수는 병합되지 않은 모든 변경 내용을 병합해야 하는 이전 버전을 지정합니다.

선택적 병합의 경우 버전 범위는 병합할 변경 내용 집합의 시작점과 끝점을 나타냅니다. 예를 들어 버전을 4~6병합하려고 하면 변경 집합 4, 5 및 6이 병합됩니다.

/lock

잠금 유형을 지정하거나 항목에서 잠금을 제거합니다. 자세한 내용은 잠금 유형 이해(Understand lock types)를 참조 하세요.

잠금 옵션:

  • None: 항목에 잠금을 배치하지 않고 항목에서 기존 잠금을 제거합니다.

  • Checkin: 다른 사용자는 지정된 항목을 검사 수 있지만 검사 수행하여 잠금을 해제할 때까지 수정 버전에서 잠긴 파일에 검사 수 없습니다. 다른 사용자가 지정된 항목 중 하나를 잠근 경우 잠금 작업이 실패합니다.

  • Checkout: 사용자가 잠금을 명시적으로 해제할 때까지 지정된 항목 중 하나를 검사 또는 검사 수 없습니다. 다른 사용자가 지정된 항목 중 하나를 잠근 경우 또는 항목에 대해 보류 중인 기존 변경 내용이 있는 경우 잠금 작업이 실패합니다.

/preview

병합의 미리 보기를 표시합니다.

/baseless

기본 버전 없이 병합을 수행합니다. 즉, 사용자가 병합 관계가 없는 파일 및 폴더를 병합할 수 있습니다. 기본 없는 병합 후에는 병합 관계가 존재하며 이후 병합은 근거 없는 것이 아닙니다.

참고 항목

기본 없는 병합은 대상의 파일을 삭제할 수 없습니다. 이러한 변경 내용을 수동으로 이월할 수 있습니다.

/noimplicitbaseless

TFVC가 관련이 없는 두 버전 제어 트리에서 상대 이름이 같은 두 항목 간에 암시적 근거 없는 병합을 수행하지 않도록 지정합니다.

/nosummary

충돌, 오류 및 경고의 요약을 생략합니다.

/noprompt

입력에 대한 프롬프트를 표시하지 않습니다.

/conservative

한 분기를 다른 분기로 병합하면 충돌이 더 발생합니다.

/format

요약 병합 충돌 형식을 지정합니다.

  • Brief (기본값): 총 충돌, 경고 및 오류 수만 요약합니다.
  • Detailed: 총 충돌, 경고 및 오류 수뿐만 아니라 각 충돌에 대한 세부 정보도 요약합니다.

참고 항목

이 옵션은 출력에 충돌 요약이 포함된 경우에만 적용됩니다. 옵션을 사용하거나 병합으로 인해 10개 미만의 충돌, 경고 및 오류가 발생한 경우 /nosummary 요약을 표시할 수 없습니다.

/login

Azure DevOps를 사용하여 사용자를 인증할 사용자 이름과 암호를 지정합니다.

설명

명령줄 유틸리티의 명령을 사용하여 merge 기존 원본 분기의 tf 변경 내용을 기존 대상 분기에 적용할 수 있습니다. 개별 수정 버전 또는 전체 변경 집합을 대상 분기에 병합할 수 있습니다. 원본에서 대상 분기로 또는 대상에서 원본 분기로 변경 내용을 병합할 수 있습니다.

또한 이 merge 명령을 사용하면 대상 분기로 마이그레이션되지 않은 원본 분기의 변경 내용을 쿼리할 수 있습니다. 또한 이 명령을 사용하면 특정 변경 내용이 원본에서 대상으로 병합되지 않으며 더 이상 병합 작업의 후보로 표시되지 않음을 나타낼 수 있습니다.

명령줄 유틸리티를 사용하는 tf 방법에 대한 자세한 내용은 Team Foundation 버전 제어 명령 사용을 참조 하세요.

기본 없는 병합

근거 없는 병합을 사용하여 서로 직접 분기되지 않은 항목을 병합합니다. 기본 없는 병합을 수행하려면 이 명령을 사용해야 tf merge 합니다. 근거 없는 병합을 수행하는 경우 TFVC에는 분기의 파일 관계에 대한 정보가 없습니다. 근거 없는 병합에서는 수동 충돌 해결을 수행해야 합니다. 근거 없는 병합을 수행하고 충돌을 해결한 후 TFVC는 병합 기록을 기록하고 폴더와 파일 간의 관계를 설정합니다.

실행할 tf merge때 TFVC는 이전에 관련된 두 개의 버전 제어 트리에서 동일한 상대 이름을 가진 항목 간에 암시적 근거 없는 병합을 수행합니다. 예를 들어 관련 분기 $SRC$TGT. 두 분기 모두 a.txt 이름이 지정된 관련 없는 파일을 포함합니다. 실행할 tf merge때 TFVC는 두 파일이 동일하고 FIPS 규격 암호화가 비활성화되고 원본 파일이 대상의 다른 파일과 관련이 없는 경우 두 a.txt 파일 간에 관계를 설정합니다.

옵션 집합을 사용하여 실행하는 tf merge 경우 TFVC가 두 분기를 병합하려고 하면 두 a.txt 파일이 변경 내용을 검사 때 네임스페이스 충돌이 발생 /noimplicitbaseless 합니다. 충돌을 해결하려면 파일 중 하나의 이름을 바꿔야 합니다.

예제

다음 예제에서는 MyFile_RTM 병합되지 않은 MyFile_beta1 변경 내용을 병합합니다.

c:\projects>tf merge MyFile_beta1 MyFile_RTM /recursive

다음은 변경 집합 137을 branch2로 병합하는 예제입니다.

c:\projects>tf merge /version:C137~C137 branch1 branch2 /recursive

다음 예제에서는 변경 집합 137까지 모든 변경 집합을 branch2병합합니다.

c:\projects>tf merge /version:C137 branch1 branch2 /recursive

다음은 branch2에 병합되지 않은 branch1의 변경 집합 목록을 인쇄하는 예제입니다.

c:\projects>tf merge /candidate branch1 branch2 /recursive

다음은 branch1에 다시 병합되지 않은 branch2의 변경 집합 목록을 인쇄하는 예제입니다.

c:\projects>tf merge /candidate branch2 branch1 /recursive

다음 예제에서는 branch2병합할 후보로 변경 집합 137을 카드.

c:\projects>tf merge /discard /version:C137~C137 branch1 branch2 /recursive

다음 예제에서는 모든 변경 집합을 branch2병합할 후보로 변경 집합 137까지 카드.

c:\projects>tf merge /discard /version:C137 branch1 branch2 /recursive