문제

내 상사는 어제 리포지토리에 체크인에 대한 새로운 커밋 정책을 발표했습니다. 이 정책은 헤드/트렁크 및 지점으로의 커밋에 유효합니다.
커밋 메시지에는 다음 항목이 있어야합니다.

  • 이유 (버그 ID, 프로젝트 ID 또는 비 기능적 변경)
  • 리뷰어의 이름

커밋 후 CMS에서 변경 블로그 항목도 만들어야합니다.

비생산적인 브랜치에서 새롭거나 실험적인 일을 할 때 일반적으로 리뷰어가 필요하지 않기 때문에 저는이 커밋 정책을 좋아하지 않습니다.

커밋 정책이 있습니까? 따라야 할 정책이 있습니까?

버그 보고서로 인해 생산 지점을 변경하는 것이 좋은 생각이라고 생각하지만 개발 지점에 저지르는 것은 덜 제한적이어야합니다.

도움이 되었습니까?

해결책

일찍 커밋하고 자주 커밋하십시오.

우리는 실제로 /트렁크를 개발로 사용하고 다른 릴리스를 분기하기위한 태그입니다. 구조적 침입 변화만이 /분기에 들어갑니다.

우리는 생산 및 수락 릴리스에 태그를 적극적으로 사용하므로 쉽게 시간을 거슬러 올라갈 수 있습니다. 트렁크에 저지른 것은 커밋이 변경되거나 간단히 추가 된 내용을 설명하는 메시지 만 있어야합니다.

나는 Bug ID와 연결하기 위해 메시지 공간을 사용하는 큰 팬이 아닙니다. IT는 여전히 ID에 대한 조회가 필요합니다.이 경우 버그 추적 소프트웨어에서 찾아서 닫을 수 있습니다. 같은 노력.

말할 것도없이 SVN 통합이 마음에 들지 않습니다 .-- 우리는 자동화 된 스크립트의 더 많은 장점을 사용하여 /태그를 분기하는 릴리스를 만들고 SVN 소품은 실제로 버전 번호를 저장합니다. p. - 이메일 알림 및 메시지 로깅을위한 고리 스크립트 (릴리스 노트를 복사하는 데 적합).

다른 팁

사내 플러그인을 통해 비주얼 스튜디오를 통해 시행되는 여러 정책이 있습니다. 코드 컴파일이 있는지 확인하고 단위 테스트가 성공적으로 실행되었는지 확인합니다. 현재 테스트가 충분하지 않은 코드 적용 범위 및 코드 경고도 확인합니다. 또한 다양한 일관성 검사를 수행하고 모든 변경에 대한 추적 성을 제공하기 위해 변경 관리 시스템에 적절한 작업이 있는지 확인합니다.

도구 지원의 장점은 실제로 정책을 존중하는 사람들에게 달려 있지 않기 때문에 훌륭하지만 분명히 결점이 있으며 이러한 수표는 실행하는 데 시간이 걸립니다. 그러나 많은 개발자의 경우 적절한 도구 지원없이 표준을 시행하기가 어렵습니다.

리뷰어는 다른 사람들이 모든 것을 검토 할 필요는 없기 때문에 언급 한 이유 때문에 무의미한 것 같습니다.

과거에 우리가 가진 유일한 커밋 정책 (내가 일했던 곳)은 당신이 변경 한 내용과 이유를 나타내는 의견을 포함시키는 것이었지만 그것은 다른 무엇보다 상식적인 의미입니다.

일반적인 커밋 정책은 버그 ID를 정당화로 트렁크에 대한 커밋에 연관시키는 것입니다. 때로는 버전 제어 및 버그 추적 시스템 이이 정책을 시행하도록 구성됩니다.

우리의 커밋 정책은 당신과 비슷하게 들립니다. 우리는 만 작업 분기에서 시행하지 않습니다 (작업 분기는 실험을위한 개발자의 샌드 박스와 같습니다).

우리의 커밋 주석에는 변경 제어 ID (새로운 기능, 향상) 또는 문제 ID (버그 수정)가 포함되어야합니다. 또한에 대한 간단한 설명도 포함해야합니다 당신은이 변화를했다. 버전 컨트롤은 WHO, 무엇, 언제, 어디서, 어디에 있는지 추적합니다.

내 커밋 메시지에는 수업에서 구현하거나 변경 한 내용이 짧은 설명이 포함됩니다.

새 코드 위의 논평에 넣은 버그 번호 및 추가 설명. 변경 사항을 태그 지점으로 병합 할 때 커밋 메시지 내부의 ID.

매일 밤 자동 빌드는 다양한 기능과 제품을 확인하여 코드베이스가 안정적인 지 확인합니다.

그러나 결국 나는 당신이 신규 또는 변경된 수업에 대해 너무 많은 설명을 할 수 없지만 커밋 전에해야 할 정책이 너무 많습니다. 리뷰어의 이름은 커밋 메시지에 넣지 않은 것입니다.

2 년 전에 구현 한 코드를 결정해야한다고 생각하십시오. 그런 다음 "디버깅 후 업데이트"와 같은 커밋 메시지에 대해 만족합니다.

우리는 여전히 적극적으로 지원되는 소프트웨어의 모든 주요 버전에 대한 지점이 있습니다. 이 분기 중 하나를 확인하려면 버그 ID가 필요합니다. scmbug, 주석이 버그 ID에 의해 접두사에 의해 접두어가 있는지 확인할뿐만 아니라 버그 데이터베이스 에서이 버그를 찾아 커밋터에 할당되도록하고 잠재적으로 다른 기준을 확인할 수 있습니다 (예 : "Branch in Branch"임을 확인할 수 있습니다. 필드는 지점입니다).

제품 중 하나는 당황스러운 방식으로 실패 할 가능성이 더 높으며,이를 확인하기 위해 버그 ID뿐만 아니라 코드 검토도 필요합니다. 그러나 코드 검토 기준은 버그 데이터베이스에서 처리됩니다. 이에 대한 사용자 지정 필드가 있으며 검토 될 때까지 버그를 수락하고 닫을 수 없습니다. 나에게 이것은 개념적 수준에서 작동합니다 - 검토되지 않은 저장소에 작동하는 것으로 여겨지는 코드를 확인한 다음 버그를 다시 열고 버그를 다시 열고 필요한 경우 변경하지 않고 변경하는 것이 좋습니다. 확실한 출시 준비가되었습니다.

그 외에는 트렁크에 대한 명시적인 정책이 없습니다 (물론 좋은 서술 적 커밋 메시지를 포함하여 빌드를 깨지 않고 자주 체크인하는 일반적인 교리, 원자 적으로 여전히 적용되는 작업 단위).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top