2011-02-23 2 views
0

G'day,서브 버전의 다중 기능 개발 브랜치

다음 전략을 서브 버전으로 구현할 수 있습니까?

  1. 응용 프로그램
  2. 의 생산 버전을 보유하고 안정 트렁크
  3. 병합/복사 안정적인 트렁크와 동기화에 개발 지점을 유지 다수에게 기능
  4. 를 보유하고 별도의 개발 지점 개별은 개발 지점에서 생산 준비가 완료됨에 따라 트렁크까지의 기능입니다.

2를 원한 이유는 현재 개발중인 모든 기능을 보유하고있는 "초기 릴리스"빌드가 필요하다는 것입니다.

표준 feature branch 패턴으로 충분하지 않습니다. 지사는 단일 지형지 물을 보유하고 있기 때문에 지형지 물이 안정적인 트렁크에 병합되면 삭제되어야합니다. 나는 당신을 merge --reintegrate 후 지점을 계속 사용할 수 있지만 권장하지 않습니다 읽었습니다.

개개의 기능을 개발 브랜치에서 트렁크의 작업 카피 (빌드, 테스트, 커밋, 트렁크와 즉시 동기화)로 복사 할 수 있는지 궁금합니다. 동기화로 인해 충돌이 발생하지만 쉽게 해결됩니다.

고마워,
크리스.

답변

1

원하는만큼의 브랜치를 만들 수 있습니다. "트렁크"및 "기능"이름에는 특별한 것이 없습니다. 귀하의 경우에는 아마도 여러 가지 지점을 만들 것이라고 말하고 싶습니다. 추적기의 기능 티켓 항목의 이름을 따서 이름을 지정했을 수도 있습니다.

+0

감사합니다. Satya. 당신은 트렁크와 지점 사이의 구별에 대해서만 옳습니다. 나는 그것을 높이 평가합니다. 그러나 각 기능이 별도의 지점에있을 때 ** 모든 ** 기능을 보유하고있는 "초기 액세스"릴리스를 (쉽게) 유지 관리 할 수있는 방법이 없습니다. 어떻게하면 될까요? –

+0

문제점을 올바르게 이해 한 경우 : 트렁크, 개발자, 초기 액세스, f1, f2, ... fn 분기가있을 수 있습니다. 준비가되면 fn을 통해 f1을 초기 액세스와 병합하십시오. 트렁크와 devel을 동기화하십시오. f1을 통해 f1을 트렁크에 병합하십시오. 흠, 동기화 문제, 많은 갈등이있는 것처럼 보입니다. 그리고 그것은 당신이 원하는 것을 이해하고 있다고 가정합니다. 흠, git 대신 사용 하시겠습니까? (나는 svn 사람이기 때문에 그런 종류의 옹호가 아니다 :-) – Satya

+0

예, 당신은 문제를 올바르게 이해한다고 생각합니다. 제안에 감사하지만 동기와 갈등 문제로 인해 실제 상황을 너무 어렵게 만듭니다.불행히도 git은 옵션이 아니므로 다른 제안이 없으면 원래 제안서와 함께 갈 것입니다. –

0

예, 전략은 전복으로 구현할 수 있습니다. 그러나 merge 명령에서 병합되는 기능과 관련된 모든 커밋 (또는 커밋 범위)을 나열해야하므로 매우 비효율적입니다.

더 나은 전략은 단일 기능 분기입니다. 원하는만큼의 브랜치를 가질 수 있고 언제든지 개별적으로 병합 할 수 있습니다. 그리고 일반적으로 각 분기의 전체 변경 사항을 병합하므로 커밋을 나열 할 필요가 없습니다.

사람들은 종종 병합하기가 어렵 기 때문에 분기를 피해야한다고 주장합니다. 그러나 다중 기능 지점에서 체리 피킹을하는 것은 훨씬 불쾌합니다.

관련 문제