svn 에러 때
가능한 조치1 : 해당 디렉토리에서 모든 파일을 커밋(commit) 한다.
가능한 조치2 : 디렉토리를 통째로 커밋(commit) 한다

SVN


임의로 .svn directory 를 지웠을 때 나타나는 에러 메시지

svn checkout 을 다시 하면 된다.

소스(파일) 날짜를 보존하고 싶으면, tar 로 묶어두었닥 checkout 후에 다시 풀면 된다 


$ svn merge http://123.45.67.89/my_project/trunk/src/source_dir @365 .
svn: REPORT request failed on '/biz/!svn/vcc/default'
svn: Target path does not exist

에러가 계속 났는데....
--ignore-ancestry 옵션을 넣었더니 잘 실행된다. (같은 회사 ㅇ 과장님이 알려주셨다)

위 에러는 브랜치에서 트렁크의 소스를 합칠(merge) 때 났다.
ㅇ 과장 의견으로는 트렁크에서 한 번도 변하지 않은 버전 -- 위 에서 365 가 브랜치 당시의 버전 -- 이기 때문이라고 한다. 3-way merge 의 특성상 기준점이 3개 있어야 하는데, 위 상황은 2-way 상황이라고 한다.
(추측일 뿐, 근거는 없다)


svn revert 를 했더니 순식간에 파일 시각이 모두 현재로 바뀌어버렸다.
이것은 check out 때도 마찬가지이다.
branch 작업도 마찬가지이고.

svn 개발팀에 이 문제를 건의해볼까?

내부적으로는 ftp  를 쓸 텐데. 안될지도 모르겠다


서브버전을 이용한 실용적인 버전관리, Mike Mason 저, 류광 역, 정보문화사, 2006

처음 서브버전을 이용할 때 좋은 입문서. 버전 관리 시스템을 사용하면서 생길 수 있는 미묘한 문제까지 다룬 책이 나오길 기대한다.

    개발자 실험용 가지라고 해서 특별한 것은 없다. ... 단, 가지 이름은  TRY로 시작하는 것이 관례이다
    work> svn copy -n "new hibernate persistence spike" \
        svb://olio/sesame/trunk \
        svb://olio/sesame/branches\TRY-MGM-hbn-spike
(128쪽)

최상위 파일들...
READEME ...
BUILDING ...
GLOSSARY ...
(137쪽)

SVN,


* subversion/auth 디렉토리를 지워야  로그인 cache 가 지워진다.
* subversion/config 파일만 고쳐서는 안된다.

UNIX 계정을 공유하고, SVN 계정을 각자 쓰기 위해서 위와 같은 일을 하고 있다.

이런 환경에서 가장 좋은 설정은 무엇일까?


import 중 다음과 같은 에러 발생

Adding         src2008/pibg/pibg5180
svn: Invalid control character '0x7f' in path 'src2008/pibg/pibg5180/pibg5180.c'
svn: Your commit message was left in a temporary file:
svn:    'svn-commit.2.tmp'

ls -b 로 보니 특수 문자가 들어있는 파일이 있다.
arbi9:/home/cts/src2008/pibg/pibg5180>ls -b
CVS/              pibg5180*         pibg5180.c.1108   pibg5180.c.new    pibg5180.c.sav
makefile*         pibg5180.c        pibg5180.c.1130   pibg5180.c.org    \177pibg5180.c

windows ftp client (WinSCP)로 접속해서 지웠다
(참고: http://osdir.com/ml/version-control.subversion.cvs2svn.user/2006-06/msg00058.html)


몇 시간 동안 삽질 후에 성공했다.
* tar 를 root 로 풀어야 하는 것
* 관련 라이브러리(내 경우에는 libintl.a)를 LIBPATH 에 추가해주는 것이 중요

1. 아래 URL 에서 binary  받음. 파일 복사(설치하지 않았음)
http://www.open.collab.net/downloads/community/

2. 서버에 복사
subversion-1.4.6-apache-python.tar 를 서버의 /tmp 에 ftp 로 올렸다.

3. root 로 /opt/... 에 tar 풀었다
$ su - root
# cp /tmp/subversion-1.4.6-apache-python.tar /
# cd /
# tar -xvf subversion-1.4.6-apache-python.tar

3. ~/.profile LIBPATH에 추가.
/usr/opt/freeware/lib 를 추가하지 않았을 때는 에러가 난다. 항목 4 를 참고.
/usr/opt/freeware/lib 경로는 lslpp -fc | grep libintl 명령으로 추정한 것이다.

LIBPATH="/usr/opt/freeware/lib":$LIBPATH
LIBPATH="/opt/subversion/lib":$LIBPATH
export LIBPATH

4.  참고 에러 메시지
arbi9:root:/opt/subversion/bin#svn
exec(): 0509-036 다음 오류 때문에 svn 프로그램을 로드할 수 없습니다.
        0509-150   종속 모듈 /home1/sybase/OCS-12_5/lib/libintl.a(libintl.so.1)이(가) 로드되지 않았습니다.
        0509-152   libintl.so.1 멤버가 아카이브 에 없습니다.