'SVN'에 해당되는 글 2건

  1. 2012.02.23 [Python] 특정 폴더들을 찾아 삭제하기
  2. 2012.01.10 Subversion Locale Warning

[Python] 특정 폴더들을 찾아 삭제하기


배경:
현재 주요 프로젝트 환경의 구성에 있어서 개발 서버에는 SVN을 두고, 로컬은 Mac OS X에서 git으로 소스코드를 관리하고 있다. 다만, 웹 디자이너와의 협업은 FTP를 통해 이루어지는데, 이번에 여러 사정으로 .svn 파일들이 로컬 작업 공간에 모두 복사되었다. 
수 많은 폴더들을 하나씩 열어가며 삭제하는 것은 정신나간 짓이기에 재귀적으로 .svn 폴더를 찾아 삭제하는 스크립트를 짜기로 했다. Mac OS는 유닉스 계열 커널이므로 굳이 Python을 사용하지 않고 쉘스크립트를 이용해도 되지만, 본인은 쉡스크립트 프로그래밍을 현재 모르는 상태이기에 Python을 이용하였다.

환경:
Mac OS X Lion
Python 2.6

해법:
현재 디렉토리를 기준으로 재귀적으로 .svn 폴더를 찾아 모두 삭제한다.

코드:

import os


def remove_all(root):

for base, dirs, files in os.walk(root, topdown=True):

for name in files:

next = os.path.join(base, name)

print 'F: ' + next

os.remove(next)

for name in dirs:

next = os.path.join(base, name)

print 'D: ' + next

remove_all(next)

os.rmdir(next)


def remove_svn(root):

for base, dirs, files in os.walk(root, topdown=True):

for name in dirs:

next = os.path.join(base, name)

if name == '.svn':

print 'D: ' + next

remove_all(next)

os.rmdir(next)

else:

remove_svn(next)


remove_svn(os.path.abspath(os.path.dirname(__file__)))

 
위 코드를 remove_svn.py라는 파일로 저장하여 커맨드라인에서 동작시켰으며, 문제없이 잘 동작하였다.
 

Subversion Locale Warning


프로젝트를 서버에 등록하기 위해 작업을 하던 중
서브버전 명령에서 전에는 보지 못했던 다음과 같은 경고문구들을 보았다.

# svn

svn: warning: cannot set LC_CTYPE locale

svn: warning: environment variable LANG is ko_KR.UTF-8

svn: warning: please check that your locale name is correct 

 
Locale과 관련된 문제라고 하며 locale -a를 권하는 곳이 있어 해본 결과
다음과 같은 출력을 볼 수 있었는데, 
그래도 원인이나 해결책은 모르겠고...

# locale -a
locale: Cannot set LC_CTYPE to default locale: No such file or directory

locale: Cannot set LC_MESSAGES to default locale: No such file or directory

locale: Cannot set LC_COLLATE to default locale: No such file or directory

 
결국 이곳을 보고 도움을 받았다. 
다음과 같이 환경변수를 지정하면 경고가 사라지는 것을 볼 수 있다.

# export LC_ALL=C