2012-02-13 3 views
17

내 요구 사항은 간단합니다. 각 파일의 시작 부분이 있어야한다 이런 블록 주석 :소스 코드에 SVN 개정 번호를 포함하십시오.

/* 
* This file was last modified by {username} at {date} and has revision number {revisionnumber} 
*/ 

나는 {username}, {date}{revisionnumber}SVN에서 적절한 내용으로 채우려.

NetBeansSubversion으로 어떻게하면됩니까? 나는 많은 것을 수색했으나 나는 내가 필요한 것을 정확히 찾을 수 없다.

+0

가능한 중복 [서브 버전 : 커밋에 코드 파일에 개정 데이터 추가] (http://stackoverflow.com/questions/2008843/subversion-add-revision-data-to-code-file-on- 커밋) – geoffspear

답변

13

나는 this 질문을보고 유용한 정보를 얻었습니다. NetBeans으로 작업하고 있기 때문에 정확하게 중복되지는 않지만 아이디어는 같습니다.

/* 
* $LastChangedDate$ 
* $LastChangedRevision$ 
*/ 

가 그럼 난 팀> 서브 버전> SVN 속성에 가서 속성 값으로 속성 이름으로 svn:keywordsLastChangedDate LastChangedRevision을 추가 : 이것은 내 헤더입니다. 내가 NetBeans에서 커밋 할 때

는 그리고는 다음과 같습니다

/* 
* $LastChangedDate: 2012-02-13 17:38:57 +0200 (Пн, 13 II 2012) $ 
* $LastChangedRevision: 27 $ 
*/ 

감사를 모두 지원! 다른 대답에는 NetBeans 정보가 포함되어 있지 않기 때문에 대답을 수락합니다. 그럼에도 불구하고 나는 다른 대답에 +1을 준다.

+1

Eclipse에서도이 작업을 수행 할 수 있습니다. 프로젝트 트리를 마우스 오른쪽 버튼으로 클릭하십시오. ** 팀 -> 속성 설정 **을 선택하고 ** 속성 이름 ** 목록에서 'svn : keywords'를 선택하고 ** 속성 입력 ** 텍스트 상자 : LastChangedDate LastChangedRevision' – ecle

+0

svn : keywords를 추가하려고 할 때 , NB 8에서는 아무런 변화가 없습니다. – Yster

4

The SubWCRev Program으로이를 수행 할 수 있습니다.

SubWCRev는 서브 버전 작업 사본의 상태를 읽고 선택적으로 템플릿 파일에 키워드 대체를 수행하는 데 사용할 수있는 Windows 콘솔 프로그램입니다. 이것은 작업 복사본 정보 을 빌드하는 개체에 통합하는 수단으로 빌드 프로세스의 일부로 자주 사용됩니다. 일반적으로 에 "정보"상자에 개정 번호가 포함되어있을 수 있습니다.

이것은 일반적으로 빌드 프로세스 중에 수행됩니다.

Linux를 사용하는 경우 Linux 바이너리 here을 찾을 수 있습니다. 원하는 경우 svn log의 출력을 사용하여 직접 작성할 수도 있습니다.

+0

'Linux'도 사용한다면 어떨까요? –

+0

@PetarMinchev 업데이트 된 답변보기 – RedFilter

10

파일이 이후에만 적용되므로 클라이언트 프로그램이 아닌 SVN 자체에서 파일을 설정해야합니다. (그리고 클라이언트 측 처리는 비활성화되거나 전혀 구성되지 않는 경향이 있습니다.) 이것은 첫 번째 대체 후에 템플릿 변수가 손실되기 때문에 원하는대로 간단한 템플릿/대체가 없음을 의미합니다.

정보는 SVN의 키워드 대체 here에 있습니다. 그런 다음 $Rev$ 같은 것을 $Rev: 12 $으로 바꿀 수 있습니다.

0

나는 약간 다른 접근 방식을 권장합니다.

소스 파일의 맨 위에 다음 헤더를 넣으십시오.

/* 
* This file was last modified by {username} at {date} and has revision number {revisionnumber} 
*/ 

그런 다음

USERNAME=# // use svnversion to get username 
DATE=# // use svnversion to get revisio nnumber 
sed -e "s#{username}#${USERNAME}#" -e "s#{date}#${DATE}#" ${SOURCE_CONTROL_FILE} > ${SOURCE_FILE} 

전 내가 페 타르 Minchev의 제안을 따라 스크립트를

cat standard_header.txt > ${SOURCE_CONTROL_FILE} 
tail --lines $((${LENGTH}-4)) ${SOURCE_FILE} >> ${SOURCE_CONTROL_FILE} 
4

커밋이

후 업데이트, 체크 아웃 스크립트와 같은 쉘 스크립트를 추가, 단지 내가 넣어 $ LastChangedRevision $ 태그는 주석 블록에 없지만 문자열에 포함합니다. 이제 도움말 -> 정보 대화 상자에 리비전 번호를 프로그래밍 방식으로 표시 할 수 있습니다.

String build = "$LastChangedRevision$"; 

나중에 보풀이 다듬어 모두의가있는 문자열을 사용하여에 대한 대화 상자에서 버전 값을 표시 할 수 있습니다.

String version = build.replace("$LastChangedRevision:", "").replace("$", "").trim(); 
+0

같은 방식으로 사용합니다. – Semaphor

관련 문제