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