문제

나는 분기와 병합의 기본 개념을 이해합니다. 내가 찾은 모든 설명은 전체 트렁크를 분기하여 지점 프로젝트를 만들고 작업 한 다음 다시 합병하는 것에 대해 이야기합니다. 프로젝트의 하위 집합을 분기 할 수 있습니까?

예를 들어, 내가하고 싶은 일을 가장 잘 설명하는 데 도움이 될 것이라고 생각합니다. 파일 10을 통해 10 개의 파일 파일이있는 응용 프로그램이 있다고 가정합니다. 모든 파일은 상호 의존적이며 하나의 파일을 테스트 할 수 있도록 다른 모든 파일을 빌드에 포함시켜야합니다. File0에서 작업하고 싶지만 File1을 통해 File1을 변경할 필요는 없습니다. File0에 커밋 된 변경 사항이 File0에 커지면 MyRepos/Branch/A-Branch/File0과 같은 것을 업데이트 할 수 있지만 작업 사본의 다른 모든 파일은 단순히 트렁크에서 나옵니까?

내가 이것을하고 싶은 이유는 수만 개의 파일로 거대한 J2EE 애플리케이션을 진행하고 있기 때문에 전체를 분기하는 데 정말 오랜 시간이 걸릴 것 같습니다. 또한, 나는 서브 클립과 함께 이클립스를 사용하고 있습니다 (그리고 이것에 대해 잘못 될 수 있습니다). Eclipse에서 프로젝트를 분기하면 지점을 가리키기 위해 새로운 Eclipse 프로젝트를 설정해야합니다. 불행히도이 특정 프로젝트를 SVN에서 Eclipse로 가져 오면 응용 프로그램의 크기로 인해 몇 시간이 걸립니다. 이 시간을 많이 보내는 것은 현실적이지 않습니다.

나는 개념을 잘못 할 수 있다고 생각합니다. 아마도 전체 프로젝트를 분기하면 새로운 작업 사본이 전혀 필요하지 않습니까?

이 문제에 대한 조명에 감사드립니다.

도움이 되었습니까?

해결책

전복에 전체 (짝수) 매우 큰 나무를 분기하는 것은 매우 저렴한 운영, 게으른 (O (1) 시간) 파일 복사를합니다.

하나의 변경된 파일만으로 작업하기 위해 전체 작업 사본을 변경할 필요는 없습니다. 당신이 사용할 수있는 SVN 스위치 작업 복사본에서 하나의 파일 또는 하나의 디렉토리를 전환하려면 브랜치에서 파일의 체크 아웃 버전으로 전환합니다.

다른 팁

파괴적으로, 지점을 만드는 것은 단순히 디렉토리의 계층 구조 사본을 만드는 것입니다. 따라서 서브 세트를 분기 할 수 있지만 해당 하위 집합이 디렉토리의 계층에 의해 정의 될 수있는 경우에만 해당됩니다.

File0에 커밋 된 변경 사항이 File0에 커지면 MyRepos/Branch/A-Branch/File0과 같은 것을 업데이트 할 수 있지만 작업 사본의 다른 모든 파일은 단순히 트렁크에서 나옵니까?

이 질문에 답하기 위해 : 아니요, 단일 파일을 분기 할 수 없습니다. 그러나 대신 당신이하고 싶은 것은 지점을 만들고 일하는 것입니다. file0 거기. 당신이 변경할 때 trunk 파일, 당신은 간단합니다 그것들을 당신의 지점으로 병합하십시오 당신이 일하는 곳 file0.

이런 식으로 항상 최신 정보를 얻을 수 있습니다. trunk, 테스트 할 수 있습니다 file0 트렁크와 독립적으로 변경됩니다. 그런 다음 사용할 수 있습니다 svn switch 트렁크와 분기 사이에 "파일 렌즈"를 이동하려면 (그러나 일식은 그러한 shenanigans에 대해 불평 할 수 있습니다).

SVN 분기는 게으른 사본 메커니즘을 기반으로하므로 모든 프로젝트를 안전하게 분기 할 수 있습니다. 오래 걸리지 않습니다.

질문에서 언급했듯이 "SVN에서 개별 파일을 어떻게 분기합니까?", 당신은 서브 세트를 분기 할 수 있지만, 나는 이것이 위험 할 것이라고 생각합니다. SVN : Merginfo 특성 메커니즘: 부동산이 프로젝트의 루트에서 설정되어 있다는 것이 더 잘 작동합니다.

SVN의 분기는 O (1) 작업입니다. 또한 SVN은 내부적으로 게으른 복사를 사용하므로 변경 사항에 대한 공간 페널티 만 지불합니다.

따라서 확실하지 않다면 왜 전체 프로젝트를 분기하지 않겠습니까?

(Quark가 언급했듯이, 큰 프로젝트를 분기하는 데있어 한 가지 문제는 여러 지점/트렁크를 병렬로 체크 아웃하면 많은 로컬 디스크 공간이 필요할 수 있다는 것입니다.)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top