본문 바로가기

checkout 문제 1. 리눅스 서버에 운영중인 기존 unversion 웹사이트 프로젝트가 있다. 2. svn import 로 리눅스 저장소에 넣는다. 3. svn co 로 리눅스 서버 작업 복사본에 내려받고 version 웹사이트로 운영한다. 3번 과정에서 체크아웃을 할 때 약간의 문제가 발생한다. other 에 쓰기 권한(w) 이 있는 파일/디렉토리에 쓰기 권한이 사라진다. drwxrwxrwx -> drwxrwxr-x 흔히 업로드 디렉토리라던지, 실행 권한이 필요한 본인인증, 결제모듈 등이 요주의 파일들이다. 임포트시 잘못 올라가는건지 내려받을때 잘못 내려받는건지. import와 checkout 헬프를 아무리 찾아봐도 관련 옵션을 찾아낼 수 없다. umask 와 관련된 것 같지만 어떤 파일들은 기존 권한을 잘 가져오기도..
SVN Icon error 윈도우즈에서 SVN 디렉토리에 오버레이 아이콘이 나타나지 않는다. 윈도우즈에서는 오버레이 아이콘을 우선순위 별로 15개 정도만 보여준다고 한다. 그 우선순위는 레지스트리 편집기(regedit - ShellIconOverlayIdentifiers 검색)에서 수정할 수 있으며 수정 방법은 수정을 원하는 디렉토리명의 앞에 숫자를 사용하여 위쪽으로 당기는 것이다. 0 이 제일 빠르겠지? 내 오버레이 아이콘은 Dropbox, Ndrive, Tortoise 가 있다. 수정 후에는 재부팅을 해야 적용된다.
svn propedit 작업 사본에 자동으로 생성되는 파일들도 있습니다. 썸네일 이미지, 세션, 각종 로그 파일등... 이 때 svn st 명령으로 상태를 확인하면 무수히 많은 물음표(?) 때문에 정작 필요한 파일들의 구분이 힘들기 때문에 svn st -q 옵션을 사용합니다. 다른 방안으로 해당 디렉토리의 속성을 변경하는 방법이 있습니다. "이 경로는 무시해라." 는 의미로 svn:ignore 속성을 사용합니다. 무시된 파일들은 svn st 명령어로 출력되지 않습니다. 무시된 파일의 상태는 I 가 됩니다. propedit (pedit, pe) usage: svn propedit PROPNAME TARGET... $ svn pe svn:ignore session/ // 에디터 자동 실행 *
svn blame 특정 파일의 각 라인에 대해 작업자 정보와 리비전을 알고 싶을 때 사용하는 명령어 입니다. blame (praise, annotate, ann) usage : svn blame TARGET[@REV]... 특정한 파일이나 URL의 내용들 각 라인마다 리비전과 작업자 정보와 함께 출력합니다. -r 옵션으로 특정 리비전을 지정할 수도 있습니다. 아래 예는, txt.php 파일이 리비전 8 번이었을 때의 리비전과 내용과 작업자 정보를 출력하는 예입니다. $ svn blame -r 8 txt.php 8 oops4u 8 oops4u 2 ggamzzak
svn diff 작업 사본의 특정 파일 혹은 특정 리비전의 변경점을 확인하고 싶을 때 사용하는 명령어 입니다. diff (di) usage: svn diff [-r N[:M]] [TARGET] 아래 예는 리비전 5부터 최신 리비전(head)까지의 변경점을 출력합니다. $ svn diff -r 5:head Index: uc/test.php =================================================================== --- uc/test.php (revision 0) +++ uc/test.php (revision 12) @@ -0,0 +1 @@ +hi Index: uc/index.html ===================================================..
svn log 특정 리비전의 변경 내용을 확인하고 싶을 때는 log 명령을 사용합니다. log usage : svn log [REV] [PATH] 특정 리비전의 로그 메시지를 확인할 수 있습니다. -r 옵션으로 특정 리비전을 지정하거나 시작리비전:마지막리비전을 지정할 수 있습니다. -v 옵션으로 상세 로그를 확인할 수 있습니다. $ svn log -r 10 ------------------------------------------------------------------------ r10 | oops4u | 2012-10-31 00:09:47 +0900 (Wed, 31 Oct 2012) | 1 line fixed main contents by oops4u ---------------------------------..
svn cleanup 특정 명령을 수행하는 중에 네트워크가 끊긴다던지, 작업자가 강제 중단을 한다던지 했을때. 중단된 수행을 재개하고 로그파일을 삭제하는 명령이 cleanup 입니다. cleanup usage : svn cleanup [PATH...] 재귀적으로 작업 사본을 순회하면서 정리합니다. 잠금을 제거하고, 중단된 명령을 재개합니다. SVN은 어떤 명령이 작동하기 전 로그파일이 생성되고, 명령이 완료되면 로그파일을 삭제하는 방식이며, 어떠한 방해로 인해 명령이 중단되고 로그파일이 남아있을 경우 작업물에 잠김(L) 표시와 함께 해당 파일은 잠기게 됩니다. 이 때 cleanup 명령으로 중단된 작동을 재개시켜 명령을 완료하고 잠김 상태를 해제하고 로그파일은 삭제될 것입니다. $ svn st L . /somedir M . ..
svn lock / unlock 저장소나 작업사본의 특정 파일을 작업자들이 실수로 변경하는 것을 방지하기 위해 lock 을 걸거나 unlock 으로 잠금을 해제할 수 있습니다. lock usage : svn lock TARGET... 다른 유저들이 변경할 수 없도록 작업사본의 PATH나 저장소의 URL을 잠급니다. 다른 유저들이나 작업 사본으로부터 잠겨진 것들을 --force 옵션을 사용하여 잠금 권한을 가져올 수 있습니다. $ svn lock txt.c 'txt.c' locked by user 'oops4u'. $ svn st -u K 8 txt.c 작업 사본의 txt.c 를 잠근 후 토큰(K) 확인. oops4u 사용자는 txt.c 를 변경이 가능하며 다른 사용자는 변경할 수 없음. unlock usage : svn unlock T..