팀과 커뮤니티가 개발할 소프트웨어 프로젝트를 시작하고 있습니다. 이전에 gerrit에서 판매되었지만 Github의 포크 앤 풀 요청 모델은 더 많은 도구, 커밋을 시각화하는 방법 및 사용 편의성을 거의 제공하는 것으로 보입니다.
둘 다에 대해 약간의 경험이있는 사람에게는 각각의 장단점이 무엇이며 커뮤니티 개발의 가능성을 열어두고 싶은 팀 기반 프로젝트에 더 좋을까요?
팀과 커뮤니티가 개발할 소프트웨어 프로젝트를 시작하고 있습니다. 이전에 gerrit에서 판매되었지만 Github의 포크 앤 풀 요청 모델은 더 많은 도구, 커밋을 시각화하는 방법 및 사용 편의성을 거의 제공하는 것으로 보입니다.
둘 다에 대해 약간의 경험이있는 사람에게는 각각의 장단점이 무엇이며 커뮤니티 개발의 가능성을 열어두고 싶은 팀 기반 프로젝트에 더 좋을까요?
답변:
Gerrit와 GitHub의 워크 플로우의 주요 차이점은 변경이 모델링되는 방식입니다.
Gerrit에서 모든 커밋은 자체적으로 변경되는 것입니다. Gerrit은 커밋 간의 관계를 보여 주지만 검토는 커밋별로 수행됩니다. 큰 변화를 작은 독립형 커밋으로 나누는 데 능숙한 팀은 Gerrit와 함께 더 많은 성공을 거둘 것입니다. 그러나 Gerrit의 모델에는 특정 커밋에 대한 연속적인 수정 사항이 포함되어 있기 때문에 이전 커밋을 수정하고 다시 푸시하거나 토픽 브랜치에서 커밋 세트를 단일 커밋하는 등 많은 개발자가 익숙하지 않은 Git 워크 플로우를 장려합니다. 범하다.
Github에서 풀 요청은 두 가지 간의 관계를 모델링합니다. Github에서 예상되는 워크 플로우는 토픽 브랜치에 하나 이상의 변경 사항을 커밋하고 (보통 리포지토리 포크에서) 반드시 브랜치와 "업스트림"브랜치간에 풀 요청을 생성하는 것입니다. 이 경우 검토중인 항목은 검토가 계속 진행되면서 계속 커지는 커밋 세트입니다. 결과는 변경 사항이 완료되면 원자 적으로 병합 될 수있는 일련의 변경 사항입니다. 풀 요청은 여러 커밋에 대해 구현 될 수있는 더 큰 범위의 변경 사항을 추적하는 데 효과적 일 수 있습니다. 또한 풀 요청은 동일한 지점에 후속 커밋을 제출하여 검토 의견에 응답하는 등 더 많은 개발자에게 익숙한 SCM 워크 플로를 지원합니다.
Github의 장점 중 가장 큰 장점은 Gerrit와 비교하여 익숙한 개발자의 수입니다. Gerrit은 Git 파워 유저들에게 인기가 있지만 마찰없이 사용하려면 중간 또는 고급 git 지식과 가파른 학습 곡선의 허용 오차가 필요합니다.
Gerrit의 장점은 Git과의 더 깊은 관계입니다. Github 풀 요청은 Git의 표준 UI에서 충분히 제거되어 Github의 웹 UI 또는 자체 API를 사용하여 풀 요청을 생성해야합니다. 변경 사항을 만들고 업데이트하기위한 Gerrit의 인터페이스는 git 프로토콜 자체입니다.