예전에 한 친구와 프로젝트를 같이 진행한 적이 있었다. 그때 svn을 사용해서 개발하려고 subclipse를 설치해서 사용했다.
그리고 열심히 프로젝트를 진행하려고 하는데 크나큰 문제점이 닥쳤다.

revision1 인 파일을 나와 내 친구가 update를 통해 받은 상태에서 각자의 작업을 진행하고 있었고, 내 친구가 먼저 수정을 끝내고 commit을 했다. 나도 얼마있지 않아서 작업을 끝내고 commit을 하려고하는데 error가 발생했다.
이유는 revision 때문이었다.

친구가 commit을 한 순간 그 파일은 revision2가 HEAD로 된다. 그런데 나는 revision1을 가지고 수정을 한 상태이니, 당연히 commit을 못하도록 막는 것이다.

그런데 오늘에서야 그 해결책을 찾아냈다.


방법은 간단하다.

먼저 앞에서 말한 상황과 같은 상황을 만들어보자.
아래의 Test.java파일은 revision182이다.




여기에서 수정을 약간 가해보자.


그리고 수정된 파일을 commit하면 이제 revision183이 된다. 이 상태가 내 친구가 commit을 한 상태이다.



그런데 나는 아직 update가 되지 않은 상태이므로 그 이전 상태로 돌아가야 한다.

Test.java에서 오른 클릭하여 Team - Switch to another Branch/Tag/Revision을 눌러서 revision182로 돌아가도록 하자.




다시 revision182로 돌아가서 여기에서 친구가 수정한 부분과 다르게 수정을 해보자.



이렇게 수정을 한 뒤에 team - commit을 해보면 에러가 발생한다는 것을 알 수 있다.



이제 본격적으로 우리가 알아봐야 할 부분이다.
Test.java에서 오른클릭하여 team - update to HEAD를 눌러보자. 그러면 다음과 같은 화면을 볼 수 있을 것이다.
(이때 Test.java의 아이콘에 별표가 아닌 사각형이 생김에 유의하자.)



subclipse에서 친절하게도 HEAD버전와 충돌이 일어나는 부분을 다 표시해 주었다.
뿐만 아니라, revision이 183으로 올라갔다!!!

<<<<<<< .mine에서부터 ========== 까지가 내가 수정한 부분이고,
=========에서부터 >>>>>> .r183까지가 revision183버전의 상태이다.
(즉, ========를 경계로 어떻게 바꿀지 확인을 하면되는 것이다.)


여기에서는 a의 값은 내가 수정한대로 바꾸고, 주석 부분은 친구가 수정한 부분으로 두고 싶다.
그러면 직접 손으로 그 부분을 수정하면 된다.



이렇게 한 뒤에 Test.java에서 오른 클릭 - Team - Mark Resolved를 누르면 아래와 같은 화면이 뜬다.
여기에서 첫번째를 선택하자.(파일의 충돌을 해결했다는 뜻)


그리고 나서  Package Ex탭을 보면 Test.java의 아이콘에 별표가 뜰 것이다.



이렇게 한 뒤에 Test.java에서 오른 클릭 - Team - Commit을 해보자.
아무런 에러없이 잘 올라갔고 버전도 revision184로 올라간 것을 볼 수 있을 것이다.!!

신고
Posted by Code-Moon

댓글을 달아 주세요

오늘은 이클립스에 subclipse를 설치하여 팀 프로젝트를 효율적으로 하는 방법을 배워보겠다.

팀 작업을 효율적으로 하기 위해서는 svn이라는 버전 관리 시스템이 사용된다. 이를 사용하면 업데이트한 시간별로 프로젝트를 관리할 수 있고, 동시 작업을 할 때 각자 맡은 부분을 작성한 다음 merge기능을 이용해 합쳐줄 수도 있다.
그러면 먼저 svn을 다운받아보자.

http://subversion.tigris.org/가 svn을 제공해주는 공식 홈페이지이다.
여기에서 svn을 다운받을 수 있는데 우리는 이클립스에서 작업을 진행할 것이므로 eclipse버전의 svn을 다운받아야 한다.
홈페이지의 아래쪽으로 내려보면 아래 그림과 같은 메뉴를 볼 수 있을 것이다.



위의 메뉴를 발견했으면 Eclipse를 누르자. 그러면 Subclipse라는 페이지로 넘어가게 되는데 여기에서 Download and Install을 클릭하자.




이제 다운로드 페이지에서 최신 버전의 Eclipse update site URL을 복사해야한다. 현재 최신 버전은 1.6.x이므로 이 주소를 복사하자. (여기에서 zip파일을 다운받는 것이 아니라 이클립스의 URL을 이용한 업데이트를 할 것이므로 site URL을 복사하는 것이다.)



이 주소를 복사했으면 이클립스를 켜고  Help - Install New Software... 을 클릭하자.
Add버튼을 누르고 Name과 Location란에 복사한 링크를 붙여넣자.
그러고 나면 Install목록에 아래 그림과 같이 3개가 생길 것이다. 모두 체크하고 Next버튼을 눌러서 설치하자.




소프트웨어 인스톨이 다 끝나고 나면 이클립스를 재시작하고 이클립스의 오른쪽 상단을 보자.



>>버튼을 눌러서 SVN Repository Exploring을 누르자. (만약 >>버튼을 눌러서 나오지 않는다면
버튼을 눌러서 나오는 메뉴 중에 SVN Repository Exploring이 있는지 보자. 있으면 클릭하고 없으면 Other...을 클릭해서 보면 SVN Repository Exploring이 있을 것이다. Other...을 눌러서도 없다면 svn설치가 제대로 되지 않은 것이다.)

위의 과정을 잘 따라왔다면 아래 그림과 같이 왼쪽편에 SVN Repositories창이 생긴다.



SVN Repositories창 안에서 오른 클릭하여 New - Repository Location... 을 누르자.
그러면 아래 그림과 같이 저장소의 위치를 입력하는 창이 뜬다. 여기에서 자신이 사용할 저장소의 주소를 넣으면 되는 것이다.


여기에서는 구글 프로젝트에서 제공해주는 저장소를 사용하고 있다. 하지만 개인적으로 다른 곳에 svn서버가 있어서 그것을 이용하는 것도 괜찮다.

다음 포스팅에서는 구글 프로젝트에서 어떻게 저장소를 만들고 사용하는지는 알아보도록 하자.
신고
Posted by Code-Moon

댓글을 달아 주세요

  1. 내내 2012.05.10 21:21 신고 Address Modify/Delete Reply

    헛 동수다

티스토리 툴바