http://dev.naver.com/projects/urlimport/

SVN
  • svn checkout --username anonsvn https://dev.naver.com/svn/urlimport
  • The password is 'anonsvn'

이올린에 북마크하기(0) 이올린에 추천하기(0)
2010/03/26 17:48 2010/03/26 17:48

svn merge 다양한 활용 방법

Posted at 2010/03/09 12:43// Posted in os/*nix
svn merge 사용방법은 아래와 같습니다.
svn merge 옵션 FROM TO
FROM TO 는 로컬 경로나 리모트 경로를 사용하게 됩니다.
대개 리모트 경로는 너무 길기 때문에 특별한 경우가 아니면 로컬 경로를 사용하게 됩니다.


1. trunk 내용을 release 로 옮기고 싶을때
svn merge ~/root/trunk ~/root/branches/release
2. devel 에서 작업한 내용을  trunk 로 합치고 싶을때
svn merge ~/root/devel ~/root/trunk

3. 현재 release 폴더 위치에서 trunk 의 내용을 가져오고 싶을때 - 저는 이 경우가 많이 헷갈리더군요.
svn merge ~/root/trunk

4. 현재 release 폴더 위치에 trunk 의 특정 리비전 수정 사항만 가져오고 싶을때
svn merge -c RRRR ~/root/trunk




이올린에 북마크하기(0) 이올린에 추천하기(0)
2010/03/09 12:43 2010/03/09 12:43
Tag , ,

svn diff 특정 리비전만 보고 싶을 때

Posted at 2010/03/09 12:34// Posted in os/*nix
svn diff 로 리비전 R에서 변경된 내용만 보고 싶다면
svn diff -r(R-1):(R) 처럼 사용해야 합니다.

예를 들어 리비전 1452  라면 svn diff -r1451:1452 처럼 해야 합니다.

조금 더 간단한 방법은  -c 옵션이 있는데

svn diff -c 1452 라고 입력하면
svn diff -r1451:1452 와 동일한 결과를 보여줍니다.


이올린에 북마크하기(0) 이올린에 추천하기(0)
2010/03/09 12:34 2010/03/09 12:34

svn diff 를 vim diff 로 교체

Posted at 2010/03/05 18:12// Posted in os/*nix
1.vimdiff 위치 확인
$ which vimdiff
/usr/local/bin/vimdiff


2. bin 폴더 생성
$ mkdir bin
$ cd bin

3. svndiff_wrap.sh 생성
$ vim svndiff_wrap.sh
#!/bin/sh

DIFF="/usr/local/bin/vimdiff"

LEFT=${6}
RIGHT=${7}

$DIFF $LEFT $RIGHT

$ chmod 700 svndiff_wrap.sh

4. svn diff 설정 찾기
$ vim ~/.subversion/config
# editor-cmd = editor (vi, emacs, notepad, etc.)
### Set diff-cmd to the absolute path of your 'diff' program.
###   This will override the compile-time default, which is to use
###   Subversion's internal diff implementation.
# diff-cmd = diff_program (diff, gdiff, etc.)

5. svn diff 설정 변경
diff-cmd = /home/USER/bin/svndiff_wrap.sh

6. svn diff 사용

:q 로 diff 창을 닫으면 다음 파일로 넘어가게 됩니다.
diff 파일이 많을 경우 중간에 빠져나가기가 조금 힘듭니다.
이올린에 북마크하기(0) 이올린에 추천하기(0)
2010/03/05 18:12 2010/03/05 18:12
Tag , , ,

svn: attempt to write a readonly database

Posted at 2010/02/24 19:11// Posted in os/*nix
http://geckoblue.livejournal.com/248161.html

svn 의 새로운 버전인 1.6.4 에서 발생되는 버그로

chmod 664 /home/svn계정/저장소경로/db/rep-cache.db

rep-cache.db 에 그룹 쓰기 권한을 주면 해결됩니다~
이올린에 북마크하기(0) 이올린에 추천하기(0)
2010/02/24 19:11 2010/02/24 19:11

diff 시 .svn 디렉토리 제외하기

Posted at 2010/01/08 17:47// Posted in os/*nix
svn 은 폴더마다 .svn 라는 정보가 담긴 디렉토리를 저장합니다.

이로 인해 diff 할때 .svn 까지 diff 를 해버리는 애로사항이 발생합니다~

이럴 때는 --exclude 옵션을 주면 됩니다 -_-)/

diff --exclude=.svn LEFT RIGHT


짜잔~
이올린에 북마크하기(0) 이올린에 추천하기(0)
2010/01/08 17:47 2010/01/08 17:47

tar 압축시 .svn 폴더 제외하기

Posted at 2009/12/15 16:58// Posted in os/*nix
http://bzpalm.net/wordpress/archives/20

find SRC_DIR -name '.svn' -type d | tar -zcvf TARGET.tgz SRC_DIR --exclude-from=-


~(-_-)~ 이제 더 이상 os.walk 를 안 써도 되겠군!


ps. 찾아보니 더 쉬운 방법이-_-;
tar -zcvf TARGET.tgz --exclude=.svn SOURCE1 SOURCE2 SOURCE3
ㄷㄷㄷ
이올린에 북마크하기(0) 이올린에 추천하기(0)
2009/12/15 16:58 2009/12/15 16:58

pysvn Thumbs.db 일괄 삭제

Posted at 2009/04/16 21:04// Posted in python/pysvn
윈도우는 숨김 파일을 보여주지 않기 대문에
많은 아티스트 분들이 Thumbs.db 를 svn 에 넣는 경우가 있습니다.

SVN 프로퍼티중 svn:ignore 를 사용해서
Thumb.db 를 완전히 무시해버리는 것이 좋지만
이미 등록되어 있는 경우에는 문제가 됩니다

일일이 지워주기는 역시나 귀찮으므로 스크립트로 돌리는 것이 좋습니다.


import os
import pysvn

c = pysvn.Client()
for base, dirs, files in os.walk("."):
if ".svn" in dirs:
dirs.remove(".svn")

for fileName in files:
if fileName.lower() == "thumbs.db":
filePath = os.sep.join((base, fileName.encode("mbcs")))
print filePath
c.remove(filePath.decode("mbcs"))


원천적으로 한글 이름이 없어야 하지만
한글 이름이 있는 경우도 있더군요. 이럴 경우 에러가 발생하면 삭제가 중단되므로
mbcs 로 변환해서 처리해주는 코드도 들어 있습니다.

이올린에 북마크하기(0) 이올린에 추천하기(0)
2009/04/16 21:04 2009/04/16 21:04
Tag , ,

pysvn 폴더 단위 커밋

Posted at 2009/04/16 20:52// Posted in python/pysvn
svn 은 대용량 바이너리 데이터를 업데이트 하면 급격히 느려지는 현상이 발생합니다.
그래픽 데이터들은 용량에 크기 때문에 커밋을 할때 주의해야하죠.

가장 좋은 방법은 최대한 작은 단위로 커밋하는건데
직접 하기에는 매우 귀찮으므로 아래와 같은 파이썬 스크립트를 만들어 보았습니다.


import os
import pysvn

dirPaths = []
for base, dirs, files in os.walk("."):
if ".svn" in dirs:
dirs.remove(".svn")

for dir in dirs:
dirPaths.append(os.sep.join((base, dir)))

dirPaths.sort()

c = pysvn.Client()
for dirPath in dirPaths:
print "commit:", dirPath
c.checkin([dirPath], "commit %s" % (dirPath), recurse=False)

이올린에 북마크하기(0) 이올린에 추천하기(0)
2009/04/16 20:52 2009/04/16 20:52
Tag , ,

unix svn 외부 경로 설정하기

Posted at 2009/01/22 22:21// Posted in os/*nix
게임 개발시 폴더 구조는 보통 아래와 같은 형태를 갖게 됩니다.

dev/
dev/bin/
dev/bin/res
dev/src/

test
test/res

live
live/pack


dev/src 에서 소스를 컴파일해서
dev/bin 으로 실행 파일을 복사해서
dev/bin/res 에 있는 리소스를 사용해 프로그램을 디버깅해본 다음

제대로 작동한다면 실행파일을
test/로 복사하게 됩니다.

test 버전을 내부 QA 에서 진행해본다음 괜찮다 싶으면
live/ 로 옮기게 됩니다. 실행파일은 그대로 복사되고 test/res 는 패킹되서 pack 폴더로 옮겨지죠.

문제는 dev/bin/res 입니다.
test/res 와 동일한 내용을 가지고 있고,
보안 문제라던지,
업데이트 속도 문제
때문에 소스 svn 과는 분리해야 합니다.

보통 노가다로 소스 svn 을 받은 다음
다시 리소스 svn 을 받아 오기도 합니다만...
상당히 귀찮은 일입니다 ~(-_-)~

다행스럽게도 svn 에서 이런 외부 svn 을 자동으로 받아오는 기능을 지원하더군요~

$ svn propedit svn:externals .
폴더1 svn+ssh://외부SVN 경로1
폴더2 svn+ssh://외부SVN 경로2

cronan 님께서 알려주셨습니다 : )
이올린에 북마크하기(0) 이올린에 추천하기(0)
2009/01/22 22:21 2009/01/22 22:21