다음을 통해 공유


프로젝트 및 편집기에 대한 추가 원본 제어 지침

원본 제어를 지원하기 위해 프로젝트 및 편집기에서 준수해야 하는 다양한 지침이 있습니다.

지침

또한 프로젝트 또는 편집기가 원본 제어를 지원하려면 다음도 수행해야 합니다.

영역 Project 편집기 세부 정보
파일의 프라이빗 복사본 X 환경에서는 파일의 프라이빗 복사본을 지원합니다. 즉, 프로젝트에 참여하는 사용자는 각기 해당 프로젝트의 파일에 대해 자신의 복사본을 가지고 있습니다.
ANSI/유니코드 지속성 X X 지속성 코드를 작성하는 경우 대부분의 원본 제어 프로그램이 현재는 유니코드를 지원하지 않으므로 ANSI 형식으로 파일을 유지합니다.
파일 열거 X 프로젝트는 내부에 반드시 모든 파일의 구체적인 목록을 갖추어야 하며 IVsSccProject2 또는 GetProperty(VSH_PROPID_First_Child/Next_Sibling)를 사용해 파일 목록을 열거할 수 있어야 합니다. 또한 프로젝트는 GetMkDocument 구현을 통해 항목 이름을 노출하고 IsDocumentInProject 구현을 통해서는 특수 파일을 비롯한 이름 조회를 지원해야 합니다.
텍스트 서식 X X 서로 다른 버전의 병합을 지원하기 위해, 가능한 경우 파일은 텍스트 형식이어야 합니다. 텍스트 형식이 아닌 파일은 나중에 다른 버전의 파일과 병합할 수 없습니다. 기본 설정 텍스트 형식은 XML입니다.
참조 기반 X 참조 기반 프로젝트는 원본 제어에서 쉽게 지원됩니다. 그러나 디스크에 파일이 있는지 여부에 관계없이 프로젝트가 요청 시 파일 목록을 생성할 수 있는 한 디렉터리 기반 프로젝트도 원본 제어에서 지원됩니다. 원본 제어에서 프로젝트를 열면 프로젝트 파일을 해당 파일보다 먼저 가져옵니다.
예측 가능한 순서로 개체 및 속성 유지 X X 병합을 용이하게 하기 위해 사전순과 같은 예측 가능한 순서로 파일을 유지합니다.
다시 로드 X X 디스크에서 파일이 변경되면 편집기에서 파일을 다시 로드할 수 있어야 합니다. 원본 제어에 참여하면 환경에서 ReloadDocData 구현을 호출하여 데이터를 다시 로드합니다. IVsQueryEditQuerySave::QueryEditFiles를 호출했고 정보를 처리하는 도중에 체크 아웃이 발생하는 경우가 다시 로드하기 가장 어려운 경우입니다. 그러나 이 상황에서 다시 로드 코드를 실행할 수 있어야 합니다.

환경에서 프로젝트 파일을 자동으로 다시 로드합니다. 그러나 중첩된 프로젝트 파일을 다시 로드하는 작업을 지원하기 위해 중첩된 계층이 있는 경우 프로젝트에서는 IVsPersistHierarchyItem2를 구현해야 합니다.