2011-10-04 4 views
2

StackOverflow에서 몇 가지 질문을 읽었지 만별로 만족스럽지 않습니다.기능/버그 릴리스에 대한 좋은 SVN 모범 사례는 무엇입니까?

가지는 예를 들어, 버그 출시가 주요 stable 릴리스

트렁크된다

대형 웹 응용 프로그램 프로젝트 (복잡한 부품, 몇 미지수) : 나는에서 오전 상황은 다음과 같다 bug-503, bug-524,이 버그들 중 일부는 여러 파일을 복잡하게 다루는 복잡하고, 다른 것들은 그렇게 많이는 아니지만 일부는 고정되어 여러 번 다시 방문됩니다. 나는 주로 다른 버전 태그를 사용하고

태그, 우리는 세 가지 환경이 있습니다 생산, 샌드 박스 및 dev에 ... 태그 자료는 그래서 우리가 할 수있는 어떤 주어진 시간에 envs 일관 개정 번호를 유지하는 데 도움이 환경이 어떤 릴리스 번호를 사용하는지 비교하십시오.

그래서 저는 브랜치에서 많은 작업을 수행하지 않고 트렁크로 다시 병합하고 태그 릴리스를 생성합니다. dev 환경에는 일반적으로 모든 최신 버그 수정/추가 기능이 포함 된 빌드가 있습니다. 일반적으로 dev env 및 특정 기능/버그에 대한 리뷰가 안정적인 것으로 간주되는 시점에서 해당 특정 기능을 트렁크에 병합합니다. 다른 것들은 재검토되며 좀 더 많은 작업이 필요할 수도 있습니다.이 경우 특정 지점으로 가서 조정합니다.

내가 느끼는 고통은 내가 dev와 트렁크를 가지고 있고 각각에 기능/버그 분기를 병합해야한다는 것입니다. 그냥 복잡하고 성가신 것처럼 보입니다. 나는 그것을 올바르게하고 있는가, 더 나은 방법/연습, 더 쉬운 연습이 있는가? 또는 나는 그것을 완전히 잘못하고있다. 나는 더 좋은 길을 필요로한다!

+0

어떤 버그/기능이 출시 될 때 선택해야합니까? – farinspace

답변

0

솔직하게 말해서, 버그가 많은 시간/코드를 거치지 않으면 내게 잘된 것처럼 보입니다. 그렇다면 개발자를 체크 아웃하고 수정 사항을 작성한 다음 저장소 dev에 바로 수정하십시오.

항상 안정적인 트렁크가 필요한 이유가 있습니까? 개발자는 개발자가 항상 안정적인 트렁크를 유지하는 데 필요한 빈도를 얼마나 자주 깨고 있습니까? 방정식의 dev 부분을 제거하고 모든 것을 트렁크에 체크인 한 다음 트렁크가 깨진 경우 빨리 수정되도록해야합니다. 이렇게하면 개발 프로세스가 훨씬 쉬워집니다. 네 인생을 더 편하게 해줄 생각이야.

+0

가끔 트렁크가 버그 A를 가지면 버그 B와 dev는 버그 A, 버그 B, 버그 C 및 위업을 갖습니다. -A – farinspace

+0

당신이 말하는 것을 보지만 트렁크에 물건을 던지는 것에 주저하지는 않습니다. 어쩌면 테스트가 조금 부족하거나 여러분들이 조금 더 신중할 것입니다. 그러나 대부분은 트렁크에 기능을 넣고 깨뜨린다고 말하면됩니다. – Grammin

1

나는이 시나리오를 선호 :

  • 사소한 변화를 트렁크에서 개발, 또는 작품의 큰 조각을위한 기능/버그 수정 지점에서.
  • 또한 환경 및 릴리스 된 버전에 대한 분기가 있습니다. 예 : "생산", "스테이지"
  • 태그는 최종적이어야합니다. 즉 태그에 커밋하지 않아야합니다.

그래서, 예를 들어주기 :

개발

  • 는 트렁크에 일부 developent를 수행하고, 나뭇 가지 버그 1 버그-2, 기능 1, 기능 2인치 버그와 기능을 확인한 다음 안정적인 것을 트렁크에 병합하십시오 (예 : 병합 버그 -1, 버그 2 및 기능 1).

기능 완료 : 당신은 당신이 가지 "단계"로 트렁크를 분기 할 수 코드, 무대에 있어야하는 데 사용되는 코드를 무대 준비가되면

  • 트렁크 코드에 의해 대체 될 것이다 . 스테이지 시스템은 항상 테스트 할 수 있도록 스테이지 코드 빌드를 실행합니다. 개발은 트렁크와 기능/버그 분기에서 계속 될 수 있습니다.

릴리스 : 무대 지점이 충분히 안정

  • 되면 당신은 릴리스 브랜치로 분기 할 수 있습니다. 이것을 "release-1.X"라는 브랜치로 분기하고이 개정을 "release-1.0.0"으로 태그하십시오. 프로덕션 서버는 릴리스 1.0.0 태그의 빌드를 실행할 수 있습니다. 이 태그에 아무것도 쓰지 마십시오.

버그 수정 : 프로덕션 코드에서 버그를 발견하면

  • , 당신은, 트렁크를 해결하려면 1.X 릴리스 지점까지의 단계를 통해 수정을 병합 한 다음 태그를 추가 할 수 있습니다 고정 릴리스 버전을 1.0.1로 지정하고 프로덕션 서버에이 새 버전의 빌드를 실행하도록 지시합니다.
관련 문제