2013-05-28 1 views
3

이 질문은 내가 SVN 및 버전 관리에 일반적으로 익숙하지 않으므로 이해가 부족할 수 있습니다. 따라서 이해의 근본적인 문제에 대해 저에게 전화하십시오! :)Delphi XE4에서 SVN을 사용한 단일 파일 버전 제어

최근 Delphi XE4를 구입했으며 기본 SVN 통합을 위해 사용 사례를 얻으려고합니다. 여기 질문에 대한 시나리오가 있습니다.

의이

TestSVNA.dproj TestSVNB.dproj 디렉토리에서 또한

가의 일부가 아닌 단위입니다 우리는 "프로젝트"디렉토리가 해당 디렉토리 내에서 우리는이 개 테스트 프로젝트

있다고 가정 해 봅시다 중 프로젝트, 우리는 그것을 CommonU.pas라고 부를 것입니다. TestSVNA와 TestSVNB 모두 CommonU.pas를 사용하기 때문에 해당 프로젝트 중 하나에서 파일을 버전 화하는 것은 비현실적이지만 자주 변경되므로 버전이 필요합니다. 나는 SVN에서 그 파일을 어떻게 버전화 하는지를 배우려하고있다. 해당 파일에 대한 완전히 새로운 프로젝트를 만들면 바보가됩니다.

답변

3

공유 파일에 대한 별도의 프로젝트를 만들고이를 사용하는 각 프로젝트에 external으로 추가하십시오. Advanced Topics - Externals Definitions 주제에 대한 정보는 SVN Book에 있습니다.

Subversion은 외관에 대한 지원을 제공합니다 (이 명령 줄 버전을 사용하지만 TortoiseSVN을하거나 IDE 통합을 사용하여 작업을 아주 쉽게 페이지는 또한 프로젝트의 외관을 설정하는 예제가 있습니다.) 정의. 외부 정의는 로컬 디렉토리와 URL (그리고 이상적으로는 특정 개정판)의 버전이 지정된 디렉토리의 매핑입니다. Subversion에서는 svn : externals 속성을 사용하여 외부 정의를 그룹으로 선언합니다. svn propset 또는 svn propedit ("속성 조작"절 참조)을 사용하여이 등록 정보를 만들거나 수정할 수 있습니다. 버전이 지정된 디렉토리에서 설정할 수 있으며 값은 외부 저장소 위치와 해당 위치를 체크 아웃해야하는 클라이언트 측 디렉토리를 모두 설명합니다.

svn : externals 속성의 편리 성은 버전이 지정된 디렉토리에 설정되면 해당 디렉토리로 작업 복사본을 체크 아웃하는 모든 사람도 외부 정의의 이점을 얻게된다는 것입니다. 즉, 한 사람이 중첩 된 작업 복사본 구조를 정의하기 위해 노력한 후에는 아무도 신경 쓰지 않아도됩니다. Subversion은 원본 작업 복사본을 체크 아웃 한 후 자동으로 외부 작업 복사본을 체크 아웃합니다.

아직 작성하지 않았다면 기본 사항 및 고급 주제의 지침서 유형 지침을 따르거나 PDF 버전을 다운로드하여 로컬로 가져올 수 있습니다. 이 책은 꽤 잘 쓰여졌 고 실제로 SVN 자체에서 작업하는 사람들에 의해 업데이트되었습니다.

+0

왜 downvote? – Kromster

+0

나는 투표를하지 않았고 어디에서 왔는지 확신하지 못했습니다. 도움을 주셔서 감사합니다. 이것이 필요한 정보였습니다. 수업을위한 전체 프로젝트를 만드는 데 필요한 무딘 것처럼 보이지만, 그것이 무엇인지 알 수 있습니다. –

+0

이것이 실제로 수행하는 방법입니다. svn : 외관은 고통 스럽네. 귀찮은 한계. 그리고 개정판을 어떻게 지정하는지 조심하십시오. HEAD를 사용하면 한 프로젝트의 변경 사항이 다른 모든 것을 "업그레이드"합니다. 그것은 대개 나쁜 생각입니다. 그래서 특정 개정판을 지정하십시오. 어떤 경우에는 외관을 최신으로 업데이트해야 할 때 지저분합니다. 나는 그것을 할 수있는 스크립트가 있습니다. 전체 지역이 약하다. 내가 볼 수있는 것으로부터, svn은 주류 분산 vcs 시스템보다이 점을 잘 관리합니다. –