2011-11-01 2 views
0

GIT (또는 Mercurial) 또는 SVN에서 커밋 주석의 의견을 추가 할 수 있는지 궁금합니다. 예를 들어, 파일 ABC.cpp가 있고 Commit -m "hello world"를 ABC.cpp 파일의 끝에 추가하면 커밋 주석이 추가됩니다. 혹은 그 반대로도? 예 : GIT 또는 SVN이 ABC.cpp 코드의 끝 부분에있는 태그 값을보고 커밋 주석으로 추가합니까?GIT 또는 SVN 주석 파일에 커밋 또는 바이스 뒤에 추가

감사

+1

너는이 일을하지 않는 것이 더 좋다. –

답변

1

아니, 이것은 CVS 일에서 수행 (이전)하는 데 사용 일이지만 일반적으로 오늘날 가난한 연습 간주합니다. 주요 문제는 이 매우 변경이 자동으로 다른 모든 변경과 충돌하기 때문에 병합을 어렵게 만드는 것입니다.

+0

... 고마워 ... – Minh

+2

"파일을 변경하면 모든 변경 사항이 자동으로 충돌합니다."- 잘못되었습니다. 힘내, AFAIK의 필터 ** 수정 ** 오직 저장 공간이 아닌 ** 프리젠 테이션 레이어 ** 수정 ** Mercurial의 ** 키워드 내용 변경 **은 추적되지 않습니다 ** –

+0

@LazyBadger : 물론 추가 레이어를 추가하려면 실제 콘텐츠를 숨기고있는 VCS의 상단은 자유롭게 느껴집니다. 그러나 파일 내용에 커밋 로그를 임베드하는 것은 여전히 ​​나쁜 생각입니다. –

3

여전히 , 당신은 힘내/의욕에 그것을을 얻기 위해 시도 할 수 있지만, 그렉 어쨌든 맞다 - 나쁜 매너 오늘입니다.

그냥 힘내

당신이 에 파일 대체를 수행하기위한 자신 만의 필터/체크 아웃 저지를 쓸 수의 경우하지 즉시 사용 가능한 솔루션

  • , 힌트. 이들은 "깨끗한"필터와 "얼룩"필터입니다. .gitattributes 파일에서 특정 경로에 대한 필터를 설정하면 은 파일이 처리되기 직전에 파일을 처리합니다 ( ) ("얼룩", 그림 7-2 참조) 직전에 최선을 다하고

(Pro Git, "키워드 확장"섹션) ("깨끗한", 그림 7-3 참조). 머큐리얼 경우

  • 은 커밋 메시지

    [keywordmaps] ... Commitmess DESC = {

  • }

잡을 확장자 주의 깊게 디자인 키워드, 키워드 소스에서 $ Commitmess $를 사용할 수있게 해주는 .hgrc에서

1

내가 가장 좋아하는 예제 중 하나 왜 이것이 나쁜지는 CVS 사이트에서 나왔습니다. CVS에서 "$ Log $"를 파일에 넣으면 커밋 주석을 해당 줄 바로 다음 줄에 넣습니다. 커밋에 "cvs log"의 출력을 두는 것과 같습니다.

밝은 사람이 커밋 주석에 넣습니다. "$ Log $ line을 파일에 추가했습니다." $Log의 두 인스턴스가 커밋 댓글이 반복되는 원인이 된 다음에

Added $Log$ line in the file 

커밋 : 따라서, 바로 커밋 주석 아래 선이었다. 그리고 그 주석 중 하나에 "$ Log"가 들어 있기 때문에 이제 "$ Log $"의 인스턴스가 4 개 있습니다.

커밋이 이루어질 때마다 $ Log $ 항목의 행 수가 두 배가되었습니다.불필요한 $ Log $ 행을 지우는 것은 도움이되지 않았습니다. 왜냐하면 다음 커밋이 그들을 다시 넣고 다시 두배로 만들기 때문입니다.

결국 나는 전체 $ Log $ 엉망을 없애기 위해 저장소의 ,v 파일을 편집해야했습니다.

Subversion 문서에서 $ Log $ very clear에 대한 느낌이 들었습니다.

+0

적어도 고칠 수는 있습니다. 적어도 그것을 재현 할 수는 없습니다. – Rudi

+0

@Rudi - Subversion이 아닌 CVS를 말하는 겁니까? 권리? –

+0

물론. 필자는 회사 CVS 서버를 계속 운영 할 책임이 있기 때문에 (* grml *) CVS의 또 다른 귀찮은 동작을 발견하면 항상 확인합니다. – Rudi