2008. 5. 16. 14:33
Subversion의 svn:ignore 속성
2008. 5. 16. 14:33 in 버전관리/Subversion
Subversion의 속성중 가장 많이 사용하고 유용하게 사용하는 속성이
svn:ignore 속성이 아닐까 생각합니다.
svn:ignore 속성을 어떤때 사용하는지 예를 한번 들어보도록 하죠.
리눅스에서 C 프로그램을 작성하고 있다고 한다면 다음과 같은 파일들이 있을 겁니다.
이 중에서 실제 버전 관리되어야 할 파일은 소스파일들과 Makefile뿐입니다.
오브젝트 파일과 실행파일은 버전관리되어서는 안되겠죠.
작업사본(working copy)의 상태를 확인하기 위해서 "svn status" 명령을 실행해보죠
a.o와 a.out 파일이 위와 같이 "?"로 표시되지 않을 수도 있습니다.
(subversion 설정 파일에서 .o 파일이 자동으로 ignore 리스트에 추가되어있다면
위와 같이 a.o와 a.out 파일의 앞에 "?"로 표시되지 않을 것 입니다.)
만약 위와 같은 오브젝트 파일이 수십개가 있다고 생각해보면,
"svn status" 명령을 내릴 때마다, 버전 관리와는 상관없는 오브젝트 파일들을 계속해서 봐야만 합니다.
이럴때 사용하는 것이 svn:ignore 속성입니다.
이 속성의 의미는 여기에 등록된 파일들 및 디렉토리들은 버전관리하지 않는 것이 확실하므로
무시하라는 의미입니다.
그럼 개발환경별로 무시해야될 파일들이 어떤것들이 있는지 알아보죠.
리눅스에서 C 프로그램을 작성한다면 다음과 같은 파일들이 될 것입니다.
윈도우의 VC6 프로젝트라면 다음과 같습니다.
윈도우의 VS2005 프로젝트(VC++)라면 다음과 같습니다.
자! 그럼 이제 실제 속성들을 어떻게 설정하는지를 볼까요.
리눅스의 콘솔이라면 간단합니다.
윈도우에서 콘솔을 사용한다면, 도스 창에서 위명령을 써야겠지요.
아니면 TortoiseSVN을 사용하셔도 됩니다.
svn:ignore 속성이 아닐까 생각합니다.
svn:ignore 속성을 어떤때 사용하는지 예를 한번 들어보도록 하죠.
리눅스에서 C 프로그램을 작성하고 있다고 한다면 다음과 같은 파일들이 있을 겁니다.
- .c, .h 확장자의 소스파일들
- 빌드를 자동(?)으로 수행해줄 Makefile
- .o 확장자의 오브젝트 파일들
- 최종적으로 생성되는 .out 실행파일들
이 중에서 실제 버전 관리되어야 할 파일은 소스파일들과 Makefile뿐입니다.
오브젝트 파일과 실행파일은 버전관리되어서는 안되겠죠.
작업사본(working copy)의 상태를 확인하기 위해서 "svn status" 명령을 실행해보죠
$ svn status
M a.c
M a.h
M Makefile
? a.o
? a.out
M a.c
M a.h
M Makefile
? a.o
? a.out
a.o와 a.out 파일이 위와 같이 "?"로 표시되지 않을 수도 있습니다.
(subversion 설정 파일에서 .o 파일이 자동으로 ignore 리스트에 추가되어있다면
위와 같이 a.o와 a.out 파일의 앞에 "?"로 표시되지 않을 것 입니다.)
만약 위와 같은 오브젝트 파일이 수십개가 있다고 생각해보면,
"svn status" 명령을 내릴 때마다, 버전 관리와는 상관없는 오브젝트 파일들을 계속해서 봐야만 합니다.
이럴때 사용하는 것이 svn:ignore 속성입니다.
이 속성의 의미는 여기에 등록된 파일들 및 디렉토리들은 버전관리하지 않는 것이 확실하므로
무시하라는 의미입니다.
그럼 개발환경별로 무시해야될 파일들이 어떤것들이 있는지 알아보죠.
리눅스에서 C 프로그램을 작성한다면 다음과 같은 파일들이 될 것입니다.
- 오브젝트파일(*.o)
- 디펜던시 파일(*.d 혹은 .depend)
- 최종 실행파일
윈도우의 VC6 프로젝트라면 다음과 같습니다.
- Debug, Release 디렉토리
- *.aps, *.ncb, *.opt, *.plg, *.clw, *.positions, README.TXT
윈도우의 VS2005 프로젝트(VC++)라면 다음과 같습니다.
- Debug, Release 디렉토리
- *.ncb, *.suo, README.TXT 파일들
자! 그럼 이제 실제 속성들을 어떻게 설정하는지를 볼까요.
리눅스의 콘솔이라면 간단합니다.
$ cat ignore.list
*.o
*.d
.depend
*.out
$ svn propset -R svn:ignore -F ignore.list .
혹은 기존에 있던 svn:ignore 속성을 수정하려면
$ svn propedit svn:ignore .
*.o
*.d
.depend
*.out
$ svn propset -R svn:ignore -F ignore.list .
혹은 기존에 있던 svn:ignore 속성을 수정하려면
$ svn propedit svn:ignore .
윈도우에서 콘솔을 사용한다면, 도스 창에서 위명령을 써야겠지요.
아니면 TortoiseSVN을 사용하셔도 됩니다.