2011-03-03 8 views
2

저는 Subversion을 사용하며 트렁크, 태그 및 브랜치 규칙을 고수합니다. 저장소에있는 모든 태그를 유지해야합니까?

  • 로부터 기능 분기를 만들
  • 배포 자료를 트렁크에서 몇 가지 작업을
  • 태그 버전을 트렁크
    1. 시작 :

      내가 위해 노력 사용 패턴은 느슨하게 다음과 같다 태그

    2. do work
    3. 분기를 병합합니다. 트렁크
    4. 이동 3.이 패턴을 감안할 때

    은, 하나는 시간이 지남에 태그 꽤 컬렉션을 축적 단계. 이러한 태그를 매우 오래 보관합니까, 아니면 프로덕션되지 않은 태그를 제거하는 정책입니까? 내 감정은 결국 오래된 태그를 "은퇴"하고 트렁크의 역사와 보존 된 태그에 따라 역사가 필요하지만 사용중인 정책은 무엇인지에 따라 (특히 Subversion에서) 의미가 있다는 것입니다.

  • +0

    태그 보관 여부와 상관없이 기록을 보관하고 있다는 것을 알고 계실 겁니다. 맞습니까? –

    답변

    1

    필자는 필자가 일반적으로 태그를 잠그는 것입니다. 즉, 코드가 해제되면 브랜치를 "고정"하는 것입니다. 분기의 소스 코드가 더 이상 유지 관리에 포함되지 않으면 태그를 제거합니다. 따라서 일반적으로 태그의 버전이 더 이상 "필드에 없다"는 것을 의미합니다.

    는 그러나, 나는 명확하게해야한다는 두 가지 가정이 여기에있다 - 기능에 의해 방출에 의해

    1. 나는 보통 브랜치/태그 없습니다. 실험 기능을위한 브랜치를 만들면 일반적으로 브랜치가 트렁크에 성공적으로 병합 된 후 제거됩니다. 브랜치 작업은 대부분 다른 사람들을 화나게하는 작업을하는 동안 트렁크의 변경 사항을 격리 할 수 ​​있습니다.
    2. 저는 모바일 개발자이므로 릴리스가 매우 빠르게 변경됩니다. 따라서 새로운 코드를 릴리스하면 인계해야하기 때문에 "릴리스가 더 이상 현장에 없을 때"라고 말하기는 쉽습니다. 몇 년 동안 코드가 지원 될 개발자에게는 훨씬 더 어렵습니다.

    '이 지점의 코드를 얼마나 오래 지원할 것으로 예상됩니까?'

    1

    물론 삭제할 수 있습니다. 그러나 목록을 출력 할 때 출력을 제한 할 수있는 다른 방법이 있습니다. git-flow를 확인하십시오. 트렁크에 병합을 사용하여 태그를 사용하지 않고 배포 된 내용을 표시 할 수 있어야합니다. 첫 번째 부모가 병합에서 승인 한 사항에주의를 기울이십시오. 이것이 병합 한 측면입니다. 최근 역사 검사/조작을 위해 태그가 도움이됩니다.

    SVN과 Git의 차이점을 기억하십시오. 힘내는 스냅 샷을 기반으로합니다. SVN처럼 URL이 아닙니다.

    관련 문제