본문 바로가기

Better SW Development

SVN Connector Client 들의 차이점

SVN Connector Client 들의 차이점

1. JavaHL ( http://subclipse.tigris.org/wiki/JavaHL )

JavaHL은 tigris 가 Subversion을 만들면서 함께 개발한 Native 클라이언트 구현체(JNI)이다. 따라서 동작하려면 바이너리 파일이 필요하다. (윈도우일 경우 dll, 유닉스일 경우 so 파일, 등등) .

장점 :

Subversion 새 버전을 만들면 그에 맞는 Java Binding 버전을 함께 제공한다.

단점 :

- SSH 프로토콜을 사용하려면 수동으로 터널을 만들어 주어야 한다.
- proxy server 세팅을 위한 인터페이스를 제공하지 않는다.
- 여러 버전의 JavaHL을 동시에 사용할 수는 없다. 이건 자바 클래스 로더 문제임
- 네이티브 바이너리를 사용하기때문에 이클립스에서 어떤 충돌이 발생할 수 있다.

유의사항 사용하게 될 Subversion 의 버전과 JavaHL의 버전을 일치시키지 않으면 문제가 발생할 수 있다.

Subclipse Version SVN/JavaHL Version
1.6.x 1.6.x
1.4.x 1.5.x
1.2.x 1.4.x
1.0.x 1.4.x


2. SVNKit ( http://svnkit.com/ )

순수하게 자바로 구현된 SVN Connector 클라이언트임. 따라서 JRE가 설치된 어떤 OS에서도 사용할 수 있음

장점 :

- OS에 맞는 바이너리 파일을 찾을 필요없음
- proxy server 세팅을 위한 인터페이스를 제공함
- SSH 프로토콜이 포함되어 있음
- 이클립스 IDE에서 충돌발생할 염려가 없음

단점 :
- 새로운 Subversion 이 나오면 지원하는데에 시간 차이가 좀 남
- 적용할때에 가끔, 네이티브 코드로부터 버그를 물려받기도 함
- 최초 버전들(베타나 RC들)은 때때로 매우 불안정함

<출처>

http://subclipse.tigris.org/wiki/JavaHL
http://svnkit.com/
http://www.polarion.com/products/svn/subversive/connector_discovery.php