선택한 {DVCS}의 명명 된 분기에 대한 적절한 명명 규칙


16

우리는 사무실에서 Mercurial을 천천히 통합하고 웹 개발을 수행하면서 명명 된 지점을 사용하기 시작했습니다.

우리는 지점 이름을 짓는 한 좋은 컨벤션을 찾지 못했습니다.

우리는 시도했다 :

  • FeatureName (이 문제가 발생하는 것을 볼 수 있습니다)
  • DEVInitial_FeatureName (개발자가 줄을 서서 내려갈 때 혼동 될 수 있음)
  • {uniqueID (int)} _ 기능

지금까지 uniqueID_featureName이 이기고 있으므로 참조 용으로 작은 DB에 유지하려고합니다.

그것은 branchID (int), featureName (varchar), featureDescription (varchar), date, who 등을가집니다.

이것은 우리에게 1_NewWhizBangFeature, 2_NowWithMoreFoo와 같은 가지를 줄 것입니다. 그리고 우리는 로그를 확인하지 않고 그 가지가 무엇을하는지에 대한 쉬운 참조를 가질 것입니다.

더 나은 해결책이 있습니까?

답변:


14

이슈 트래커가없는 경우 하나를 설정 한 다음 {issue tracker name} _ {ticket number}를 사용하는 것이 좋습니다. 몇 년 전부터 누군가가 버그를 신고하고 기능이 어떻게 작동해야하는지 정확히 알지 못하면 파일에 주석을 달고 사용자가 정확한 기능을 요청한 위치로 쉽게 돌아갈 수 있습니다.


우리는 버그 추적기를 가지고 있고 버그 수정을 위해 지점 이름에 bugID를 사용할 계획입니다. 내 질문은 아무것도 고치지 않고 완전히 새로운 것을 추가 할 때 완전히 새로운 개발에 대한 것이 었습니다. 멍청한 향상 티켓을 만들어서 갈 수 있다고 가정합니다.
jfrobishow

5
새로운 기능에 대한 티켓을 작성해야합니다. 추적해야 할 작업도 있습니다. 고유 ID가 필요한 경우 +1
AShelly

새로운 기능에 대한 모든 세부 정보를 추적기에 넣으면 나중에 누군가가 의도 한대로 작동하는지 또는 실제로 버그가 있는지 확인할 수 있습니다. 5 년 이상 된 프로그램을 유지 관리하는 개발 팀에서 일하고 있습니다. 클라이언트가 버그를 신고하는 경우가 있으며, 조사 할 때 설계된대로 작동하고 원래 개발자와 원래 요청자가 모두 사라지는 것을 발견했습니다. 우리는 왜 무언가가 왜 그런지 알지 못하는 유사한 상황을 가지고 있으며 그 특징이 추적기에 없다면 우리는 알 방법이 없습니다.
Asa Ayers

2

나는 그것을 간단하게 유지하고 FeatureName(또는 feature-name) 규칙 에 따라 분기 이름을 지정하는 것이 좋습니다 . 예, 이것은 공유 네임 스페이스를 의미하지만 실제로는 거의 문제가되지 않습니다. 기능이 완료되고 메인 라인에 완전히 병합되면 분기를 안전하게 삭제할 수 있습니다.

분산 버전 관리의 주요 아이디어는 의무적 인 고유 ID와 같은 추가 관료주의를 도입하는 것이 분기하기 쉬워야한다는 것입니다.


1
동의합니다. 어떤 세계에서 충돌을 피할 수없는 너무 많은 가지가 있습니까?
대안

충분하다고 생각되는 이름으로 설명을 얻는 것이 더 중요하다고 생각합니다 ... 초기 커밋에는 그 내용이 포함되어야하지만 빨리 추출 할 방법을 모르겠습니다.
jfrobishow

1
대기업 환경에서 개발자가 기능의 이름을 만들게하면 머지 않아 두통이 발생할 수 있습니다.
AShelly

1
"큰 회사 환경"에서는 개발자를 신뢰할 수 없기 때문에 알 수 있습니다. 그러나 변수, 함수 및 파일의 이름도 구성합니다. 우리도 그것을 통제 할위원회를 설치해야합니다! (irony)
Adam Byrtek

2

다음과 같은 형식을 사용하는 것이 좋습니다.

BUG_ID
버그 #ID
TICKET_ID
티켓 번호
feature_bla-bla-bla
릴리즈 -x.xx.xx
release_x.xx.xx
build_2010-20-12
build_4565
BRANCH_x.xx.xx

접두사와 ID / 이름 사이의 올바른 접두사 ( hg 분기 에서 필터 출력 허용 ), 대문자 규칙 및 구분 기호를 선택하기 만하면 됩니다.


+1 우리는 결국 BUGID_ {freeCamelCasedTextDescription}과 함께 갔다.
jfrobishow
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.