본문 바로가기

개발노트

[SVN] 커넥터 클라이언트 버전

SVN 클라이언트 버전 때문에 지금 애먹고 있다.


이제 해결했다.


기존에 사용하던건 1.6.x 버전인데 꽤 오래전부터 컴파일된 플래시 파일(swf)도 commit 하고 싶었는데 이상하게 다른 사람 컴퓨터에선 되고 내 컴퓨터에선 안 되었다.

( 그 파일의 properties를 보면 svn status : non-svn 이라고 표시되면서... )


(그렇다, 난 회사에서 플렉스(FLEX) 개발도 하고 있다.)


그 문제를 해결하려고 이렇게 저렇게 해보았다.



<기존 설치되어 있는 SVN 클라이언트>

1. eclipse 3.2.2 안에 플러그인으로 설치된 javaHL 1.6.17 버전

2. tortoise SVN 1.9.4 버전 


cmd 에서 svn 명령어 사용이 가능했다. 이건 아마 tortoise SVN 설치할 때 같이 깔린 것이리라.


그렇게 cmd 에서 svn 명령어 사용이 가능하길래 svn commit 명령어로 swf 파일을 commit 해보려 했음.


근데 working copy 의 버전이 낮다고(too old) commit 이 안 되니 svn upgrade 명령어를 찾아보라는 메시지를 보고


svn upgrade 명령어로 해당 프로젝트의 .svn 을 업그레이드 하고 svn commit --message 'blahblah' 하니 swf 커밋이 되었음.


이후 문제가 발생함.


이클립스, 정확히는 마이이클립스(built-in eclipse 3.2.2), 에서 SVN commit, show history 등등이 안 되는 것이다.


working copy 의 format이 다르다면서...


그때부터 심각하게 관련 프로그램들을 통으로 재설치해야하나 고민하면서도 계속 해결방법을 찾아보려 애썼다.


그 중 해결방법을 본 방법은 SVN 플러그인 재설치 및 프로젝트를 새로 check out 하는 것이었다.


이클립스가 깔려있는 폴더에서 plugins, features 폴더에 있는 subversion, svnkit 관련 폴더 및 jar 파일을 삭제하고, subclipse 재설치를 10번은 반복한 것 같다, 다른 버전들로...


그렇게 해보면서 내린 결론은 아래와 같다. 다음에 또 비슷한 일이 있으면 꼭 참고해야겠다.(기억에 확 남아버려서 기록 안 해도 될 것 같긴 하지만...)





<결론>

1. SVN 클라이언트 버전은 사람마다 다 달라도 된다.  : Subversion 버전과 javaHL 버전이 매치가 되어야 한다는 말에 모든 사용자들이 SVN 클라이언트 버전이 똑같아야 된다고 생각했었던 것이 오류.


2. SVN이 버전관리를 할 때는 프로젝트를 체크아웃 하거나 SVN 버전관리로 추가할 파일들(프로젝트)에 대해서 추가한 시점에 .svn 이라는 폴더가 생성되며 


3. SVN 에서 버전관리 방식이  Subversion 1.8 버전 이후로 바뀌어서 1.8버전 이전 거랑 호환이 안 됨.


4. SVN 버전을 바꾸기 전에 working copy를 깨끗이 비우거나, 모든 프로젝트를 disconnect 시킨 후 삭제한 다음, SVN 플러그 인을 재설치 하고 다시 체크아웃 하면 된다.


5. 굳이 CLI(cmd)에서 SVN 을 사용하려면 https://sliksvn.com/pub/ 에서 SlikSvn 을 javaHL 버전과 동일한 버전으로 설치해주고, 시스템 환경변수 Path의 값에 {SlikSvn 설치 경로}\SlikSvn\bin 을 등록 해주면 된다. (SlikSvn 이 설치될 때 자동으로 추가되긴 한다.) 만약 다른 종류의 SVN(나같은 경우는 tortoiseSVN이 되겠지)이 깔려있고, 그 SVN 도 환경변수로 등록되어있으면 충돌날 수 있으니 시스템 변수 Path에서 tortoiseSVN에 해당하는 값을 빼주는 것이 좋을 것 같아서 빼두었다.


6. 이상하게 SVN 클라이언트로 javaHL을 쓰는 게 오류가 생길 가능성이 더 크다고 알려져있는데, 나의 경우 순수 자바로 구현되어있는 SVN Kit을 사용하니 show history가 안 되거나 show revision 등 SVN에 접속하는 데에 오류가 많이 생겼었다.





별것 아니고 기본적인 내용들이 가득하지만, 어려움을 겪고 알게 된 것이 내 것이 된 것 같아 참 뿌듯하고 재밌네 ㅎㅎ

반응형