2011-02-04 5 views
4

다른 개발자가 코드를 중앙 저장소로 보내기 전에 코드를 검토 할 수 있기를 바랍니다. 개발자는 멀리 떨어진 곳에 있기 때문에 책상에 가지 않아도됩니다.다른 사람의 코드를 Mercurial에 넣기 전에 검토하는 방법이 있습니까?

현재 그들은 그냥 밀어 넣고 문제가 있으면 롤백 할 것입니다. 그러나 이것은 롤백 기회를 얻기 전에 누군가가 끌 수 있기 때문에 좋은 접근법이 아닙니다.

답변

9

Mercurial이 배포되며 모든 워크 플로우에 적응할 수 있어야합니다. 다른 사람을 integration manager으로 지정하거나 dictator and lieutenants 워크 플로를 사용해보세요.

+0

현재 프로젝트에는 3 개의 주요 리포지토리 중 하나에서 작업 할 수있는 Stable 및 2 개의 개발 지점과 10 명의 개발자가 있습니다. "intergration manager"또는 "독재자 워크 플로우"- 각 개발자는 3 개의 주요 저장소 각각에 대해 고유 한 중앙 지점을 갖게되므로 33 개의 중앙 저장소로 끝납니다. –

+0

솔직히 말하면, 나는 [git] (http://git-scm.com/)의 나 자신이라고 생각하지만, Mecurial은별로 다르지 않다. (http : //mercurial.selenic .com/wiki/Branch)이됩니다. Git에는 10 개 저장소가 있고, 각각 3 개 이상의 브랜치가있다 (보통 10-15 개의 브랜치로 끝남). 통합 관리자와 중역은 당시에 검토중인 각 코드에 대해 또 다른 추가 지점을 갖게됩니다 (주요 지점에 직접 병합하는 것은 나쁜 습관입니다). 유지 관리하기 위해 이것을 많이 본다면 실제로는 그렇지 않습니다. – kelloti

-2

아마도 쉘브 확장 프로그램을 사용하는 것이 좋은 해결책일까요? 나는 Mercurial에 익숙하지 않지만 이것은 당신에게 도움이 될 것입니다.

https://www.mercurial-scm.org/wiki/ShelveExtension

+0

Shelve는 커밋되지 않은 코드를 권장하기 때문에 워크 플로가 필요하지 않습니다. –

3

어떻게 개발자 및 주요 저장소 사이의 검토 저장소에 대해? 당신 만이 거기에서 메인으로 밀었습니다.

1

필자는 kelloti의 답을 이렇게 업 그레 이드했지만 단지 저장소의 계층을 사용했기 때문에 나는 대답했다. 사람들이 검토되지 않은 변경 집합을 필요성 검토 중앙 저장소에 푸시하고 검토자가 검토 된 작업을 필요 -QA 중앙 저장소에 푸시하고 품질 보증 담당자가 릴리스 후보 중앙 저장소 저장소를 밀어 넣도록합니다.

분산 버전 제어 시스템을 사용하면 복수의 개발자 리포지토리를 쉽게 수행 할 수있는 것처럼 중앙 집중식 리포지토리를 여러 개 만들 수 있습니다.

1

마지막 프로젝트에서 우리는 매우 분명한 개발 모델을 따랐습니다. 모든 작업에는 작업 번호로 명명 된 분기가있었습니다. 명명 된 분기에 대해 코드 검토가 수행되었습니다. 우리는 명시 적으로이를 중앙 저장소로 밀어 넣고 개발자들이 끌어서 놓기를 원했습니다.

그러나 branch 분기 작업은 통합 분기 (이 경우 기본값이지만 모든 기능 분기 일 수 있음)에 병합되지 않으며 코드 검토를 통과 할 때까지 수행되지 않습니다.

많은 수은 개발자는 저장소에 남아있는 수명이 짧은 지점을 사용하는 것을 싫어하지만 한 가지 변경 사항의 기록을 볼 때 특히 쉽게 따라 할 수 있습니다. 특정 작업에 대한 변경 내용이 연결된 명명 된 분기에 있음을 나타냅니다.

관련 문제