2010-05-17 1 views
1

일부 시스템에서는 소스 제어 체크 인 주석이 포함되어 있고 일부는 소스 주석 제어 주석과 일치하지 않는 것으로 나타났습니다. 이 체크 될 때 이러한 의견은 파일의 상단에 자동으로 추가됩니다소스 제어 체크 인 소스 파일 맨 위로 댓글

* $Log: //vm1/Projects/Morpheus/Sleep.bdy-arc $ 
-- 
-- Rev 1.14 Apr 14 2009 15:32:52 John Smith 
--Fixed bugs 2292 and 2230. 

이 내가 일한있는 모든 compainies 꽤 유행이 된 것 같다,하지만 난 볼 어려움을 겪고 있음을 고백해야 요점. 일반적으로 주석은 그리 좋은 것이 아니며 오래 전에 떠난 사람들에 의해 남겨졌으며 심지어 높은 표준이 되어도 실제 코드 변경에 묶는 것은 어렵습니다.

당신이 실제로 체크인하는 파일을 변경한다는 사실 또한 나를 강타합니다. 지금은 컴파일 될 파일에는 별다른 문제가되지 않지만 다른 파일 (예. JavaScript 파일.

정말 내 쿼리는 첫 번째 인스턴스에서이 기능을 제공한다는 개념의 동기였습니다. 아무도 실제로 이러한 주석을 유용하다고 생각합니까?

또한 이것이 소스 제어 시스템에서 일반적으로 지원되는 기능인지 궁금 할 것입니다. 나는 PVCS, VSS 및 Subversion (Subversion Keyword Substitution)을 사용하여이를 알고 있지만, 일부 인기있는 DVCS에서도 사용할 수 있는지 궁금합니다.

귀하의 도움은 언제나처럼 높이 평가됩니다. 첫 번째 인스턴스에서 이 기능을 제공 뒤에 개념의 동기는 무엇 이었습니까

답변

5

당신이 맞습니다 - 이것은 균형 적으로 개정 관리 시스템의 매우 유용한 기능이 아닙니다! 예, 감사 추적과 같은 회사이지만 개정 관리 시스템의 log 명령에 의해 제공됩니다. 예, 개정 관리 시스템이 아닌 경우 로그를 사용할 수 있음을 의미합니다. 그러나이 경우 Fixed bug 1234은별로 의미가 없습니다 :-) 그리고 암시 하듯이 변경 사항을 특정 행에 연결하기 위해, 여전히 개정 관리 시스템의 도움이 필요합니다.

커밋되는 파일을 변경하면 문제가 발생할 수 있다는 점도 맞습니다. 한때 동료가 코드를 컴파일 한 다음 조심스럽게 작성하고 커밋했습니다. 저지른 것은 컴파일되지 않았다.주석은 Clean up /tmp/*.txt과 같았고 C 컴파일러는 /*을 주석 시작 문자로 취급하고있었습니다 (주석이 이미 있기 때문에 불평합니다).

파일의 로그와 관련된 또 다른 문제는 소스가 로그 인 다중 분기 (git/mercurial/bazaar와 같은 분산 소스 도구가 권장하는 방식으로)로 개발하면 선형 작업에만 적합하다는 것입니다 파일 자체는 거의 항상 병합 충돌을 만드는 역할을합니다.

이러한 이유로 최신 도구는이 기능을 구현하지 않는 경향이 있습니다. 사실 subversion doesn't - 키워드 대체로 의도적으로 로그 기록을 포함 할 수 없습니다.

+1

Brilliant Answer! 감사 :-) –

1

그래서 정말, 내 질문은? 누구든지 실제로 이러한 코멘트가 유용합니까?

소스가 외부 위치 (소스 패키지, 소스 코드 색인 등)로 미러링 된 경우 버전 제어 정보를 사용하지 못할 수 있습니다. 그러한 경우에이 정보가 유용 할 수 있습니다.

1

정말 내 쿼리는 첫 번째 인스턴스에서이 기능을 제공한다는 개념의 동기였습니다. 아무도 실제로 이러한 주석을 유용하다고 생각합니까?

일부 회사에서는 감사 제어가 큰 관심사입니다. 감사원은 사고 시스템에서 실제 코드 변경까지 추적 할 수 있기를 원합니다. Fixed bugs 2292 and 2230.은 코드에서 인시던트 시스템으로의 추적을 제공합니다.

일부 회사는 동일한 이유로 소스 제어 변경 로그 주석의 일부로 인시던트 번호를 요구합니다.