다음을 통해 공유


파일 체크 인 시 병합 및 충돌 해결

다음 조건에서 파일을 체크 인하면 충돌이 발생할 수 있습니다.

  • 파일의 날짜 스탬프 버전이 Team Foundation 서버에 체크 인된 버전보다 이전 버전입니다. 이 경우는 이전 버전을 가져온 다음 체크 인하려고 할 때 발생할 수 있습니다.

  • 사용자가 최신 버전의 파일을 가져온 시간과 이 파일을 체크 인한 시간 사이에 다른 팀원이 변경 내용을 체크 인했습니다. 이 경우 동일한 파일에서도 두 종류의 변경 내용이 발생합니다.

    • 사용자와 다른 팀원이 파일의 서로 다른 줄을 변경한 경우, 이러한 변경은 간단한 변경 내용으로 간주되고 모두 자동 병합 기능을 사용하여 자동으로 병합할 수 잇습니다.

    • 사용자와 다른 팀원이 파일의 동일한 줄을 변경한 경우, 이러한 변경은 충돌로 간주됩니다. 충돌은 보다 더 복잡하고 수동으로 해결해야 합니다.

처음에는 충돌 해결이 복잡해 보일 수 있지만, 다양한 종류의 충돌과 해결책을 이해하는 데 도움이 될 수 있습니다. 자세한 내용은 MSDN의 Understanding File Differences and Conflict Types(파일 차이 및 충돌 유형 이해)를 참조하십시오. 또한 이 항목에서는 Microsoft Expression Blend 또는 Microsoft Visual Studio Team System 2008 Team Explorer에서 충돌을 해결해야 할 때 표시되는 사항을 설명하여 도움을 줍니다.

충돌 해결 대화 상자 사용

체크 인하는 동안 충돌이 발생할 경우 먼저 다음 두 가지 해결 방법을 사용할 수 있습니다.

  • 모두 자동 병합   충돌을 자동으로 병합합니다. 자동 변합 기능이 사용하는 병합 옵션은 Visual Studio 2008 팀 시스템의 Microsoft Team Foundation 서버 관리자가 이전에 설치했어야 합니다.

    병합 프로세스는 간단하기 때문에 사용자와 다른 팀원이 파일의 서로 다른 줄을 변경할 경우에만 자동 병합 기능을 사용할 수 있습니다. 그러지 않은 경우 충돌을 수동으로 해결해야 합니다.

    [!참고]

    이전 버전의 파일을 체크 인하여 충돌이 발생한 경우, 자동 병합 기능의 기본 설정은 가장 최신 파일을 선호하기 때문에 일반적으로 자동 병합 기능은 어떠한 이전 버전의 내용도 사용하지 않습니다. 이전 버전의 피일로 되돌리는 방법에 대한 자세한 내용은 MSDN의 How to: Roll Back a Changeset(방법: Changeset 롤백)를 참조하십시오.

  • 해결   충동을 수동으로 해결합니다. 버전 충돌 해결 대화 상자가 나타나며 다음과 같은 추가 옵션을 제공합니다.

    • 내 변경 내용 병합   자동 병합 기능을 사용합니다. Expression Blend에서 사용자와 다른 팀원이 파일의 동일한 줄을 변경했다는 것을 인식하는 경우 이 옵션은 사용할 수 없습니다.

    • 병합 도구에서 변경 내용 병합   변경 내용의 수락 여부를 묻는 메시지가 나타납니다. 이 옵션을 선택하면 병합 도구가 나타납니다. 다음 섹션인 "병합 도구 사용"을 참조하십시오.

    • 내 로컬 변경 내용 취소   파일의 변경 내용을 제거하고 파일의 콘텐츠(날짜 스탬프는 제외)를 최신 버전의 Team Foundation 서버로 효과적으로 복원합니다.

    • 서버 변경 내용 취소   사용자의 모든 변경 내용만 적용합니다. 파일을 체크 인하면 사용자가 파일을 체크 아웃한 동안 다른 팀원이 변경한 변경 내용을 제거합니다. 이 옵션은 이전 버전의 파일로 되돌리려 하는 경우 사용할 수 있는 옵션입니다. 이전 버전의 피일로 되돌리는 방법에 대한 자세한 내용은 MSDN의 How to: Roll Back a Changeset(방법: Changeset 롤백)를 참조하십시오.

      Ee341461.alert_caution(KO-KR,Expression.30).gif주의:

      이 옵션을 사용하기 전에 다른 팀원에게 그들의 변경 내용이 실행 취소된다는 것을 알려야 합니다.

    • 비교   사용자의 로컬 복사본, 사용자가 체크 아웃하는 동안 다른 팀원이 가장 최근에 체크한 복사본 및 사용자 중 한 사람이 파일을 체크 아웃하기 이전에 있었던 원본 중 두 개의 버전 간에 차이를 비교하는 창이 나타납니다. 버전을 비교하면 로컬 변경 내용을 취소할지, 서버 변경 내용을 취소할지 또는 병합 도구를 사용하여 충돌을 병합하고 해결할지를 결정하는 데 도움이 됩니다.

Ee341461.alert_tip(KO-KR,Expression.30).gif팁:

실행(F5) 후 체크 인하거나 충돌을 해결한 후와 다른 원본 제어 작업을 수행하기 전에 보류 중인 파일의 변경 내용을 취소하는 것이 가장 좋습니다. 예를 들어 충돌을 해결했지만 특정 버전의 파일을 체크 인하기 전에 해당 파일을 가져오려고 할 경우 충동을 해결할 것인지를 묻는 메시지가 표시되며, 충돌 해결 대화 상자에 "충돌하는 보류 중인 변경 내용이 있습니다."라는 충돌 설명이 표시됩니다.

병합 도구 사용

병합 도구에서는 충돌하는 각 줄을 선택하여 이를 병합된 파일에 적용하거나 해당 파일에서 제거할 수 있기 때문에 대부분의 제어가 가능합니다.

병합 도구의 맨 위에 있는 두 개의 창에 다른 버전의 파일이 표시됩니다. 사용자가 체크 아웃하는 동안 다른 팀원이 체크 인한 버전이 왼쪽에 표시되고 아직 체크 인하지 않은 사용자의 로컬 복사본이 오른쪽에 표시됩니다. 각 창에서는 색을 통해 다른 팀원이 자신이 변경 내용을 체크 인하기 전에 있었던 파일의 원본 버전에서 변경된 줄을 식별합니다. 빨간색 줄은 삭제된 텍스트를, 녹색 줄은 삽입된 텍스트를 그리고 파란색 줄은 수정된 텍스트를 나타냅니다. 맨 위 두 개의 창에 있는 두 파일의 같은 줄에 변경 내용이 있는 경우 이 변경 내용은 충돌로 간주됩니다.

병합 도구의 아래쪽에 세 번째 창이 있습니다. 처음에 이 아래쪽 창에는 맨 위 두 개 파일의 충돌하지 않는 변경 내용이 적용된 파일의 원본 버전이 표시됩니다.

Ee341461.e39a4383-0828-40ee-9167-8c623611364e(KO-KR,Expression.30).png

Ee341461.25182a96-9a69-478a-9cfe-5b360e6a9bea(KO-KR,Expression.30).png

사용자의 로컬 버전과 현재 체크 인된 버전 모두에서 변경된 한 줄은 충돌을 발생시키며 수동으로 해결해야 합니다.

Ee341461.05fe4b1d-f584-4bd2-99b6-8bc2d735a89d(KO-KR,Expression.30).png

충돌하는 원본 버전의 줄입니다.

Ee341461.095c13e8-6ed8-4572-9bd2-b2d6bdfdf199(KO-KR,Expression.30).png

사용자가 추가하고 아래의 병합된 파일에 이미 적용된 줄입니다.

Ee341461.e1a62fcf-2f5c-4263-95fe-a9bf97616b85(KO-KR,Expression.30).png

사용자의 변경 내용과 충돌하지 않는 가장 최신 체크 인 버전의 변경된 줄입니다. 이 줄은 이미 아래의 병합된 파일에 적용되었기 때문에 제거할 수 없습니다.

Ee341461.b36987f6-e914-4b58-99f2-a76c47128837(KO-KR,Expression.30).png

현재 체크 인된 버전의 제거된 줄입니다. 사용자의 로컬 버전과 충돌하지 않기 때문에 이 변경 내용을 취소할 수 없습니다.

아래쪽 창에서 경계 상자로 식별되는 충돌은 수동으로 해결해야 합니다. 맨 위에 있는 두 개의 파일 중 하나의 변경 내용을 적용하려면 다음 중 하나를 수행하십시오.

  • 아래쪽에 있는 파일에 적용할 변경 내용의 줄을 클릭합니다(다음 그림 참조).

  • 적용할 변경 내용의 줄을 마우스 오른쪽 단추로 클릭한 다음 변경 내용 적용을 클릭합니다.

  • 이래쪽에 있는 파일의 원본 줄을 마우스 오른쪽 단추로 클릭한 다음 왼쪽의 변경 내용 적용 또는 오른쪽의 변경 내용 적용을 클릭합니다.

적용한 변경 내용을 제거하려면 다음 중 하나를 수행합니다.

  • 맨 위에 있는 파일 중 하나에서 이미 적용된 변경 내용의 줄을 클릭합니다.

  • 맨 위에 있는 파일 중 하나에서 이미 적용된 변경 내용의 줄을 마우스 오른쪽 단추로 클릭한 다음 변경 내용 제거를 클릭합니다.

  • 아래쪽에 있는 파일의 원본 줄을 마우스 오른쪽 단추로 클릭한 다음 이 충돌에 대한 변경 내용 제거를 클릭합니다.

맨 위 두 개 창에서 충돌을 적용하거나 제거하면 선택 결과를 표시하기 위해 아래쪽 창이 업데이트됩니다.

Ee341461.0e425bcd-05cb-4dc5-adb0-7b7daf195889(KO-KR,Expression.30).png

Ee341461.095c13e8-6ed8-4572-9bd2-b2d6bdfdf199(KO-KR,Expression.30).png

출동하는 줄 중 하나입니다. 변합된 파일에 적용할 줄을 클릭합니다.

Ee341461.e1a62fcf-2f5c-4263-95fe-a9bf97616b85(KO-KR,Expression.30).png

충돌하는 줄의 업데이트 버전입니다.

변경 내용 모두 적용을 선택하면, 두 줄이 아래쪽 창에 나타나고 빌드 오류가 발생할 수 있지만 이렇게 하면 아래쪽 창에서 두 줄을 시각적으로 비교하려는 경우 유용합니다. 비교를 마친 경우 언제라도 아래쪽 창에서 줄 중 하나를 제거할 수 있습니다.

언제든지 병합 도구의 내부를 마우스 오른쪽 단추로 클릭하고 모든 충돌 해결을 가리킨 다음 왼쪽의 변경 내용 또는 오른쪽의 변경 내용을 선택하여 파일의 서버 버전 또는 사용자의 로컬 파일에서 충돌하는 모든 줄을 적용할 수 있습니다. 이렇게 하면 충돌하는 줄만 적용되고 충돌하지 않는 변경된 줄은 제거하지 않습니다.

확인을 클릭하여 병합 도구를 끝낸 다음 를 클릭하여 파일 저장하고 닫기를 클릭하여 충돌 해결 대화 상자를 끝낸 후 파일을 체크 인하기 전에 반드시 사용자 솔루션을 빌드(Ctrl+Shift+B)하거나 실행(F5)하여 병합된 파일을 테스트해야 합니다.

MSDN의 How to: Resolve Conflicts Between Two Files(방법: 두 파일 간의 충돌 해결)에서 병합 도구를 사용하는 간단한 절차를 참조할 수 있습니다.

충돌이 있는 파일 목록 보기

파일을 체크 인한 다음 충돌을 해결하지 않고 충돌 해결 대화 상자를 닫으면 원본 제어 시스템이 이러한 파일을 추적합니다. 언제든지 프로젝트 패널에서 솔루션을 마우스 오른쪽 단추로 클릭한 다음 충돌 해결을 클릭하여 아직 해결되지 않은 충돌이 있는 모든 파일을 볼 수 있습니다.

참조

작업

파일 변경 내용 보기 또는 비교

파일 체크 인 및 체크 아웃