2011-11-21 4 views
3
나는 기존 저장소에서 프로젝트를 체크 아웃

는 세 개의 폴더가 생성 : branches, tagstrunk을.tags 디렉토리는 SVN에서 내 소스 코드를 복제합니까?

내가 trunk 디렉토리에 내 소스 코드를 넣어 :

trunk 
    |--include 
    |--src 
    |--lib 
    |--bin 
    |--build 
    |--doc 

하지만 프로젝트의 버전을 완료 할 때 나는 것 같다, 나는 (tags 디렉토리에 예를 들어 태그> my_project 그것의 사본을 넣어한다 -1.0.0).

tags 디렉토리는 SVN에서 내 소스 코드를 복제합니까? 아니면 내가 잘못한거야?

은 내가 tag 디렉토리에 이전의 모든 소스 코드를 저장한다는 의미 아니면 다른 폴더에있는 중복없이 trunk 디렉토리에 최신 버전을 저장해야합니까?

답변

3

저장 용량을 복제하지 않습니다. SVN은 데이터를 버젼 파일 시스템 트리와 파일 데이터 버킷으로 효과적으로 저장합니다. trunk/include/abc.h는 tags/myTag/include/abc.h와 동일한 파일 데이터를 가리 킵니다.

이제 코드, 예 동일한 사본에 액세스하는 두 개의 경로가있을 것입니다,하지만 태그 버전은 복사본을 만든 버전에서 해결 될 것입니다. trunk/include/abc.h에 계속 커밋을하면 tags/myTag/include/abc.h는 그대로 유지됩니다. 당신은 그냥 해제-1.0.0이 = 트렁크 12345 @ 어딘가에 아래로 작성할 수 있습니다, 당신은 항상 개정 번호를 rembering에 의해 트렁크에 코드의 버전을 참조 할 수 있습니다 말했다

. 즉, 태그는 이것을 기억하는 더 쉬운 방법이며, 태그를 복사 한 특정 트렁크 수정본으로 다시 연결하는 메타 데이터를 포함합니다.

귀하의 최신 편집 : 나는 "모든 이전 또는 최신"가 무슨 뜻인지 100 % 확신 해요,하지만 당신은 당신이 실제로 릴리스 버전을 저장해야합니다. 트렁크가 아닌 동일한 버전의 코드에서 수정 릴리스를 만들 수 있도록 릴리스에서 안정적인 분기를 만들 수도 있습니다. 트렁크의 모든 것을 절대적으로 태그하기위한 스토리지 오버 헤드가 없습니다. 태그에서 시작하는 파일에 대한 커밋 로그에 액세스 할 수 있다는 것을 의미하면 가능합니다. 태그는 해당 시점에 대한 모든 기록을 효과적으로 포함합니다. 나는 기존 저장소에서 프로젝트를 체크 아웃

이 세 폴더가 생성 :


는 D' 아 죄송합니다, 단지이 발견 지점, 태그 및 트렁크.

아니요 - 트렁크 또는 작업중인 지점을 체크 아웃하면됩니다. 모든 것을 체크 아웃하면 안됩니다. 그렇지 않으면 디스크에 복제 된 모든 것을 가져옵니다. 저장소의 루트를 확인하는 것은 좋지 않은 아이디어이며, Subversion 배포판에 아파치 플러그인을 설치하면 명시 적으로 금지 할 수 있습니다.

+0

감사합니다. 내 답변을 찾은 것 같습니다. 내 실수는 저장소의 루트를 확인하는 것이 었습니다. 올바른 방법은 '트렁크'를 확인하는 것입니다. –

1

SVN의 태그 내부 "1.0.0"라는 단지 명명 개정 즉 R1000이다., 두 번을

branches 
tags 
    |--1.0.0 
    |--include 
    |--src 
    |--lib 
    |--bin 
    |--build 
    |--doc 
trunk 
    |--include 
    |--src 
    |--lib 
    |--bin 
    |--build 
    |--doc 

을하지만, 한 번만 (서버) 디스크 공간을 차지합니다 - 로컬 디스크에 : 로컬 태그를 체크 아웃 할 경우

그래서, 다음 얻을 것이다.