문제

SVN에 커밋할 때 커밋되는 내용을 자세히 설명하는 최상위 커밋 메시지를 추가할 수 있지만 이상적으로는 개별 파일과 파일 내에서 변경된 내용에 대해 설명할 수 있는 수단이 있으면 좋겠습니다.이전 직장에서 비슷한 것을 본 적이 있지만 이는 CVS를 사용하고 있었습니다(그리고 이것이 스켈레톤 파일을 생성하기 위해 홈 브루 스크립트를 사용하여 달성되었는지 기억할 수 없습니다).

나는 변경 목록을 살펴봤지만 이것이 아래에 설명된 것과 같은 종류의 세부성을 제공한다고는 생각하지 않습니다(비록 내가 틀렸다는 것을 기꺼이 증명할 의향이 있음).

이상적으로는 다음과 같은 내용을 찾고 있습니다.

Foo.vb

  • 새로운 기능바 추가

Bar.vb

  • 제거된 기능 foo
  • ABC +/- 수정 된 함수를 로그 로그 오류로 XYZ에서 기능을 추가했습니다.
도움이 되었습니까?

해결책

저는 개별 커밋 메시지에서 이 작업을 수행하겠습니다. 거북이SVN 파일 이름 자동 완성 기능이 있어 이 작업에 큰 도움이 됩니다.

당신이 할 수 있는 또 다른 일은 커밋하기 전에 svn st를 실행하고 파일 이름을 커밋 메시지에 복사/붙여넣는 것입니다.

아, 그리고 이것의 가치에 대해 강력히 의문을 제기하십시오.일부 OSS 프로젝트(리눅스?)에서는 이러한 종류의 충실도가 필요하다는 것을 알고 있지만 많은 프로젝트에서는 이는 소음일 뿐입니다.Diff는 이보다 훨씬 더 많은 정보를 더 정확하게 알려줄 수 있습니다.

고려해야 할 또 다른 사항은 힘내.Git을 사용하면 더 작은 단계로 로컬에서 커밋할 수 있습니다.그런 다음 모든 커밋을 개별적으로 마스터 서버에 푸시하거나 단일 메시지의 모든 커밋 메시지와 함께 단일 커밋으로 압축합니다.그것은 매우 단순화된 설명이었지만 확인해 볼 가치가 있을 것입니다.

다른 팁

하나의 특정 작업이 완료될 때마다 커밋할 수 있습니다.어쨌든 그것은 더 나은 의견으로 이어질 것입니다.필요한 세 파일에 대해 "이메일 확인 구현"이라는 코멘트는 "verify_email 기능 추가"보다 더 많은 것을 알려줍니다.나는 diff에서 후자를 직접 볼 수 있습니다.

SVN과 CVS의 근본적인 차이점 중 하나는 변경 사항이 원자적으로 커밋된다는 것입니다.CVS에서는 각 파일마다 고유한 버전이 있지만 SVN에서는 버전이 전체 프로젝트용이며 함께 체크인된 모든 파일을 포함합니다.

솔루션에 대한 네 가지 아이디어는 다음과 같습니다.

  1. 자체 로그 메시지를 사용하여 각 프로그램을 개별적으로 체크인하세요.이는 예를 들어 5개의 파일을 체크인하면 5개의 버전을 "사용"하게 되며 그 중 4개는 빌드가 손상될 수 있음을 의미할 수 있습니다.
  2. 별도의 경로(예:개인 브랜치) 위와 같이 수행한 다음 전략적인 순간에 브랜치를 트렁크에 병합하세요.
  3. 모든 것을 함께 확인하고 개별 기록을 프로그램 헤더에 주석으로 보관하세요.이는 (약간의) 추가 작업을 의미할 수 있지만 어쨌든 개별 로그인 메시지를 작성해야 합니다.
  4. 모든 파일에 대해 단일 체크인을 수행하되, 각 파일의 각 부분을 자세히 설명하는 멋진 전체 로그 메시지를 포함합니다.

나는 이런 종류의 일을 하기 위한 프로젝트를 작성했습니다. 모아프

그 기능 중 하나는 로컬 diff(현재 bazaar, cvs, svn, git 및 darcs 지원)에서 ChangeLog 항목을 생성하는 것입니다.'moap Changelog prepare' 또는 'moap cl prep'를 실행하여 이 작업을 수행할 수 있습니다. 옵션을 활성화하면 해당 항목에 변경된 기능도 포함될 수 있습니다.

그런 다음 해당 항목을 변경하여 변경 사항을 설명합니다.다음 커밋의 일부로 커밋하지 않으려는 파일을 제거할 수 있습니다.

그런 다음 'moap 변경 로그 커밋'을 실행하여 ChangeLog 항목에 설명된 변경 사항을 커밋할 수 있습니다.여기에 나열된 파일만 커밋하고 다른 모든 변경 사항은 로컬에 둡니다.

도움이 되었기를 바랍니다!

각 커밋된 파일에 주석을 쓰는 방식에 관한 몇 가지 규칙이 있으면 그러한 결과를 얻을 수 있습니다.이 주석은 이후 svn 트리거에 의해 추출될 수 있습니다.

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