다음을 통해 공유


소스 제어 통합 개요

이 섹션에서는 Visual Studio 소스 제어에 통합하는 두 가지 방법인 소스 제어 플러그 인과 소스 제어 솔루션을 제공하고 새 소스 제어 기능을 강조 표시하는 VSPackage를 비교합니다. Visual Studio에서는 소스 제어 VSPackage와 소스 제어 플러그 인 간에 자동 솔루션 기반 전환뿐만 아니라 수동 전환도 가능합니다.

원본 제어 통합

Visual Studio는 두 가지 유형의 소스 제어 통합 옵션을 지원합니다. Visual Studio의 모든 버전에서, Visual Studio 소스 제어 UI(사용자 인터페이스)를 사용할 때 기본 소스 제어 기능을 제공하는 소스 제어 플러그 인 API(이전에는 MSSCCI API라고도 함)를 기반으로 플러그 인을 통합할 수 있습니다. 반면, 소스 제어 VSPackage는 소스 제어 모델에서 고도의 정교성 및 자율성을 요구하는 소스 제어 통합에 적합한 새로운 심층 통합 Visual Studio SDK 경로를 제공합니다.

Source Control Overview

소스 제어 플러그 인

Visual Studio의 모든 버전은 통합 경로로 소스 제어 플러그 인 API 사양 버전 1.2를 지원합니다. 소스 제어 플러그 인 구현자는 소스 제어 플러그 인 만들기에 설명된 대로 소스 제어 통합 및 등록을 위한 소스 제어 플러그 인 API 함수를 구현하는 DLL을 작성합니다. 이 방법에서 IDE(통합 개발 환경)는 체크 인, 체크 아웃, 도구/옵션 속성 페이지, 도구 모음, 소스 제어 문자 모양과 같은 대화 상자에 Visual Studio UI를 사용합니다. 소스 제어 플러그 인 API를 엄격하게 준수하면 Visual Studio에 쉽게 통합되고 사용자에게 문제가 없는 환경이 보장됩니다. 즉, 소스 제어 플러그 인이 API에 자세히 설명된 대부분의 함수 및 콜백을 구현해야 합니다.

소스 제어 플러그 인 API를 사용하여 소스 제어 플러그 인을 구현하려면 다음 단계를 수행합니다.

  1. 소스 제어 플러그 인에 지정된 함수를 구현하는 DLL을 만듭니다.

  2. 적절한 레지스트리 항목을 만들어 DLL을 등록합니다(방법: 소스 제어 플러그 인 설치 참조).

  3. 도우미 UI를 만들어 소스 제어 어댑터 패키지(소스 제어 플러그 인을 통해 소스 제어 기능을 처리하는 Visual Studio 구성 요소)의 메시지가 나타나면 표시합니다.

    소스 제어 명령에 대한 응답으로 Visual Studio IDE는 기본 작업에 대한 표준 UI를 제공하고 소스 제어 플러그 인 API에 정의된 함수를 통해 정보를 소스 제어 플러그 인에 전달합니다. 소스 제어 프로젝트 검색과 같은 고급 옵션의 경우 소스 제어 플러그 인이 호출되어 자체 UI를 표시할 수 있습니다. 즉, 소스 제어를 처리할 때 Visual Studio에서 제공하는 UI와 소스 제어 플러그 인이 제공하는 UI의 두 가지 스타일이 사용자에게 표시될 수 있습니다. 이는 고급 소스 제어 작업에서 가장 두드러집니다.

소스 제어 플러그 인 구현의 단점

  • 고급 기능의 경우 사용자에게 두 가지 인터페이스 스타일이 표시되어 혼동이 발생할 수 있습니다.

  • 소스 제어 플러그 인은 소스 제어 플러그 인 API에 암시된 소스 제어 모델로 제한됩니다.

  • 소스 제어 플러그 인 API는 일부 소스 제어 시나리오에 너무 제한적일 수 있습니다.

소스 제어 플러그 인 구현의 장점

  • Visual Studio는 소스 제어 플러그 인이 잠재적으로 복잡한 UI를 구현할 필요가 없도록 모든 기본 소스 제어 작업에 대한 UI를 모두 제공합니다.

  • 엄격한 API 때문에 소스 제어 플러그 인은 외부 소스 제어 프로그램과 쉽게 상호 작용하여 보다 광범위한 기능을 제공할 수 있습니다. Visual Studio는 소스 제어 기능이 수행되는 방식은 크게 신경 쓰지 않고 소스 제어 플러그인 API에 따라 수행된다는 점만 고려합니다.

  • 소스 제어 플러그 인은 구현하기가 소스 제어 VSPackage보다 쉽습니다.

소스 제어 VSPackage

Visual Studio SDK를 사용하면 소스 제어 기능을 완전히 제어하고 Visual Studio에서 제공하는 소스 제어 사용자 인터페이스를 완전히 대체하여 Visual Studio에 심층 통합할 수 있습니다. 소스 제어 VSPackage는 Visual Studio에 등록되며 소스 제어 기능을 제공합니다. 여러 소스 제어 VSPackage를 Visual Studio에 등록할 수 있지만 한 번에 하나만 활성화할 수 있습니다. 소스 제어 VSPackage는 활성 상태인 동안 Visual Studio의 소스 제어 기능 및 모양을 완전히 제어할 수 있습니다. 시스템에 등록되었을 수 있는 다른 모든 소스 제어 VSPackage는 비활성 상태이며 UI를 전혀 표시하지 않습니다.

소스 제어 VSPackage를 구현하려면 "전부 또는 전혀" 전략이 필요합니다. 소스 제어 VSPackage의 작성자는 전체 소스 제어 기능을 포함하기 위해 많은 소스 제어 인터페이스 및 새 UI 요소(대화 상자, 메뉴 및 도구 모음)를 구현하는 데 상당한 노력을 기울여야 합니다. 자세한 내용은 소스 제어 VSPackage 만들기를 참조하세요.

소스 제어 VSPackage 구현의 단점

  • VSPackage는 Visual Studio와 성공적으로 통합하기 위해 복잡한 인터페이스를 다수 구현해야 합니다.

  • VSPackage는 소스 제어에 필요한 모든 UI를 제공해야 합니다. Visual Studio는 이 영역에 대한 지원을 제공하지 않습니다.

  • 소스 제어 VSPackage는 Visual Studio와 긴밀하게 결합되어 독립 실행형 프로그램으로 작동할 수 없으므로 기능을 외부 버전의 소스 제어 프로그램과 쉽게 공유할 수 없습니다.

소스 제어 VSPackage 구현의 장점

  • VSPackage는 소스 제어 UI 및 기능을 완전히 제어하므로 사용자에게 소스 제어를 위한 원활한 인터페이스를 제공합니다.

  • VSPackage는 특정 소스 제어 모델에 국한되지 않습니다.