예전 CVS의 경우 치환 문자를 사용해서 소스 파일 내에 CVS 정보를 입력할 수 있었다. 내 경우 CVS는 써보지 않아서 정확한 정보는 알 수 없지만, 이러한 기능이 있다는 것은 알고 있기때문에, Subversion에도 동일한 혹은 유사한 기능이 있지 않을까 생각해 구글링을 통해 찾아본 결과, 있었다.

방법은 다음과 같다.

일단, 파일 내에 키워드 치환을 위해서는 SVN 속성이 설정되어 있어야 한다. 속성 이름은 svn:keywords이며, 속성 값에 키워드로 사용할 치환자를 입력함으로써 치환 기능을 사용할 수 있다.

속성 값은 다음 중에서 선택할 수 있다.

1) Date(LastChangedDate)
  저장소 내에서 파일이 변경된 마지막 시간으로 치환한다. 동일한 키워드로는 LastChangedDate가 있다.
  변환 예 : $Date:$ -> $Date: 2009-03-16 10:32:11 +0900 (Mon, 16 Mar 2009) $
2) Revision(LastChangedRevision, Rev)
  저장소 내에서 파일의 마지막 리비전으로 치환한다. 동일한 키워드로는 LastChangedRevision, Rev가 있다.
  변환 예 : $Revision:$(또는 $Revision:$) $ -> $Revision: 144 $
3) Author(LastChangedBy)
  마지막으로 커밋한 사용자로 치환한다. 동일한 키워드로는 LastChangedBy가 있다.
  변환 예 : $Author$ -> $Author: hajinsu $
4) HeadURL
  파일의 저장소 Full URL로 치환한다. 동일한 키워드로 URL이 있다.
  변환 예 : $HeadURL$ -> $HeadURL: https://domain.xxx/repo/path $
5) Id
  파일명, 리비전, 최종 수정시간, 수정자의 조합 문자열로 치환한다.
  변환 예 : $Id: file.c 221 2009-03-16 10:32:11Z hajinsu $


이밖에도 svn:eol-style 속성으로 텍스트 파일의 줄바꿈 문자에 대해 지정할 수 있음. 지정 가능한 속성 값은 native, CRLF, LF, CR이 있으며, 텍스트 파일의 경우 native로 설정해주면 subversion client에서 줄바꿈 문자를 클라이언트 OS에서 사용되는 문자로 변경해주기 때문에, OS별로 줄바꿈 문자를 따로 치환해 줄 필요가 없다.

svn:excutable 속성은 실행 가능한 파일임을 체크하는 속성으로 update시 실행 권한을 자동적으로 추가해준다. 속성 값은 필요 없다.


또한, 이러한 속성들은 확장자별로 자동적으로 지정 가능하다.
UNIX 계열에서는 ~/.subversion/config 파일을 수정하면 되며, 윈도우에서 TortoiseSVN을 사용하는 경우 다음과 같이 Setting 메뉴로 들어간 뒤,


위 버튼을 클릭하면, 속성 파일이 메모장으로 열리는데 여기서 주석 처리되어 있는 다음 행을 주석을 제거한 뒤, 파일 맨 하단에 확장자별로 속성을 설정해 주면 된다.

enable-auto-props = yes

[auto-props]
*.c = svn:eol-style=native;svn:keywords=Author Date Id Revision Rev
*.cpp = svn:eol-style=native;svn:keywords=Author Date Id Revision Rev
*.sh = svn:eol-style=native;svn:executable
Makefile = svn:eol-style=native;svn:keywords=Author Date Id Revision Rev
...

신고
Posted by 봉보리봉봉

블로그 이미지
봉보리봉봉

공지사항

Yesterday33
Today6
Total131,869

티스토리 툴바