'Subversion'에 해당되는 글 2건

  1. 2009.04.06 subversion 버그? (3)
  2. 2009.03.16 Subversion 키워드 치환

2009.04.06 22:47 분류없음

subversion 버그?

이번에 Subversion 서버로 운영하던 Solaris를 다시 설치하면서 Subversion 1.6으로 upgrade를 했다.
별다른 문제없이 운영되는가 싶더니, 어제 작업 후에 커밋을 하려고 했더니 svn 속성을 설정하면서 실패했다는 메세지가 뜨면서 커밋이 안되는 문제가 발생.

결국 Apache error log를 확인해서 svn:log에 잘못된 줄바꿈 문자가 있다는 것을 확인하고 검색해봤더니, 다른 속성에서 동일한 문제가 있음을 확인했다. 근데 암만 봐도 내 문제랑은 좀 다른것 같던데... 흠...

오류가 나는 상황을 자세히 살펴보니 "새로운 파일이 추가될 때, svn:log에 ASCII 문자가 아닌 다른 문자 다음에 바로 줄바꿈 문자가 들어가는 경우"에 발생하는 것 같아서

소스를 수정해보려고 했으나, 뭐가 어디있는지 모르겠어서 걍 꼼수 사용... Non-ASCII 문자 뒤에 바로 LF를 쓰지 않고, 공백을 하나 추가한 뒤 LF 사용... ㅋㅋ

잘 된다 ㅠ.ㅠ

근데 이 문제 나만 그런건가? Subversion에 버그 리포트하고 싶은데, 언어가 발을 붙잡는구나 흑흑
Posted by 봉보리봉봉
예전 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 봉보리봉봉
이전버튼 1 이전버튼

블로그 이미지
봉보리봉봉

공지사항

Yesterday40
Today19
Total144,836