본문 바로가기

Programming/JAVA

JBuilder에서 CVS 소스버전 콘트롤

JBuilder에서 CVS를 이용한 소스코드 버전 컨트롤


6. JBuilder에서 CVS를 이용한 소스코드 버전 컨트롤

이미 앞의 과정에서 CVS Server 설치 과정을 거쳤으므로, Jbuilder에서 CVS Server를 사용하는 방법에 대해 알아보도록 하자. (참고로 필자는 JBuilder 9를 사용했다.)

JBuilder 실행 후 [Menu -> Team -> Select Project VCS]를 실행 시킨다.


소스 코드를 CVS Server로 올리는 작업, 즉 업로드 하는 작업을 Commit이라고 한다.



위의 그림과 같이 JBuilder는 ‘ClearCase’, ‘CVS’, ‘StarTeam’, ‘Visual SourceSafe’ 4가지를 지원한다. 이중 우리가 사용할 것은 CVS이므로 CVS를 선택하고 [OK]버튼을 누른다.
다시 JBuilder의 Team 메뉴를 선택하면 VCS를 선택하기 전에는 비 활성화 되어 있던 메뉴들이 활성화가 되어 있다. 초기에 생성된 소스코드를 서버에 Commit 하기 위해 [Place Project into CVS]를 선택한다. 그러면 아래와 같은 창이뜬다.


CVS Module 속성 설정

CVS 서버에서 소스 코드를 관리하기 위해 하나의 모듈단위로 관련 소스 코드를 묶는데 쉽게 말해 JBuilder에서 새로운 프로젝트를 생성하듯이 CVS 서버에서는 최초에 서버에 소스 코드를 Commit할 때 반드시 모듈을 생성해야 한다. 모듈은 이름이 중요한데 모듈명 LoginEAR은 JBuilder 프로젝트의 관련된 모든 소스코드가 LoginEAR이라는 이름의 모듈에 저장됨을 의미한다. [Next]버튼을 클릭하면 패스워드를 입력하는 창이뜬다.



여기서 CVSNT 사용자 생성시 입력했던 패스워드를 입력 후 [OK]버튼을 클릭하면 CVS 서버에 Commit 하기 전에 설명을 입력하는 창이 뜨는데, 일반적으로 소스 코드에 대한 변경 사항을 적어준다.



다음 과정으로 CVS 서버에 Commit할 파일의 목록을 보여준다. 일반적으로 JBuilder에서 사용하는 백업파일, 컴파일 시 생성되는 class 파일 같은 것은 서버에 올릴 필요가 없으므로 아래와 같이 설정하고 [Finish]를 선택한다.


Commit할 파일 설정

JBuilder는 선택한 파일을 CVS 서버에 Commit하기 시작한다.
만약 CVS 서버의 Repository 및 임시 디렉토리 권한이 잘못 설정되어 있으면 Commit이 되지 않는다.

프로젝트 전체를 Commit한 후 JBuilder의 Team 메뉴를 보면 많은 항목들이 활성화가 되어 있다. 이들 항목에 대해서 알아보도록 하자.


소스 코드에 주석추가

소스 코드에 주석을 추가하고, [Menu  Team  Commit “EBMember.java”]를 선택하자.


EBMember.java Commit에 대한 주석 추가


Commit 완료

EBMember.java를 열어서 History 탭을 선택하면 Contents, Info, Diff 3개의 탭이 나타난다.
아래 그림은 Diff 탭의 모습이다.


History 탭의 Diff

앞에서는 소스코드를 CVS 서버에 Commit하는 과정을 보았다. 이렇게 변경된 소스코드를 다른 사람이 받아서 사용하고자 하는 과정을 보도록 하자. CVS 서버로부터 해당 모듈을 가져오기 위해 [Menu  File  New  Project]에서 Project From CVS를 선택한다.


Pull Project from CVS


소스코드 저장 위치 설정

※ 참고 : CVS 서버로부터 소스코드를 저장 할 위치는 비어있는 디렉토리를 선택해야 한다.


CVS Server 정보 설정


Repository 위치와 모듈 이름 설정

 

CVS 서버로부터 모듈 CheckOut

자 이제 CVS Server로부터 소스코드 CheckOut이 완료되었다. 그럼 EBMember.java를 열어 확인해 보자.

소스코드 확인

오오~ 변경된 소스코드가 보이는가?? 뭐 간단해 보이긴 하지만... 예를 들어 user1이라는 사용자가 EBMember.java 파일에 주석을 하나 추가하였는데, user2라는 사용자가 소스 코드를 받아온 후 위와 같이 변경되어 있음을 확인 할 수 있다. 이때 user2라는 사용자가 소스 코드를 변경하였다고 가정할 때 user1이라는 사용자가 다시 작업을 하기 위해서 최신의 소스 코드를 받고 싶다면 user1은 다음과 같은 작업을 수행해야 한다.


사용자 user1의 변경사항 적용


프로젝트 변경사항 적용

이 과정은 user1은 CVS Server로부터 소스 코드의 변경 사항을 자신의 하드디스크로 가지고 와야 하는데, 이때 CVS Server의 Repository에 존재하는 “LoginEAR” 모듈을 검사해서 user1이 가지고 있는 파일과 변경 사항을 비교하고, 변경사항이 있다면 Repository에 있는 파일과 합치는(Merge) 과정을 수행한다.


프로젝트 변경사항 적용중


프로젝트 변경사항 적용 완료


CVS Repository에서 가져온 파일이 변경되었음을 확인

프로젝트 변경 사항이 적용된 후의 EBMember.java의 History를 보면 버전이 1.1.1.1에서 1.2로 변경되었음을 알 수 있다.


7. 결론

위의 과정에서 본 것과 같이 CVS 서버는 전체 소스 코드를 버전 별로 관리하기 때문에 각 버전에 따른 차이점 및 통합은 정말 큰 골치거리다. 특히 우리가 개발해야 할 EJB는 다수의 개발자가 비즈니스 로직을 추가하기 때문에 소스 코드의 버전관리는 정말 중요하다. 소스 코드 버전 관리는 시간과 비용이라는 두 가지 토끼를 모두 잡을 수 있기 때문에 실제 개발에 있어서 막강한 힘을 발휘한다. 즉 CVS를 통한 잦은 통합은 우리가 개발해야 할 KMS-J를 개발하는 개발기간 동안 통합의 어려움은 깨끗이 사라질 것으로 기대된다.
 

 

'Programming > JAVA' 카테고리의 다른 글

OutOfMemory 해결법  (0) 2008.04.28
윈도우 레지스트리 내용 다루기  (0) 2008.04.28
Sort 알고리즘(삽입정렬)  (0) 2008.04.28
Sort 알고리즘(버블정렬)  (0) 2008.04.28
Sort 알고리즘(셸정렬)  (0) 2008.04.28