2012년 1월 4일 수요일

eclipse svn 메뉴 설명

위 이미지는 eclipse에서 svn을 plug in 했을 때 나오는 team메뉴를 선택했을 때 나오는 sub menu이다.
보편적인 repository와 비교하고 update, commit을 하는 작업만 반복해서 하다 보니 다른 메뉴에 대한 사용법은 등한시 하고 예기치 않은 오류가 났을때 대처할 수 없어서 정리를 해보고자 한다.

최근 로컬에서 패키지를 삭제하고 repository에 commit을 하려고 했는데 "Item is out of date"의 오류가 발생하면서 적용이 안되었다.
인터넷에 찾아보니 update head > Mark Resolved > commit을 반복하라고 했는데
실제로는 Update Head 후 Mark Resolved가 활성화 되지 않아 commit을 하여 클래스만 먼저 삭제하고 다시 Synchronize width Repository를 하여 패키지 삭제를 commit하니 되었다.
알고 있었으면 간단하게 해결했을 문제인데 며칠을 미루고 있다 뒤늦게 처리한거다.

알고 있으면 문제가 발생했을 때 바로 바로 처리가 되겠지?

참고로 캡쳐한 svn 버전은 1.8이다.
==========================================================================
Synchronize with Repository : 선택한 항목(project, package, class, file)들을 저장소(repository)와 로컬을 비교하여 update 또는 commit할 항목을 보여준다.
Commit : 선택한 항목(project, package, class, file)들을 commit(로컬의 신규버전을 repository 저장)한다.
Update to HEAD : 저장소의 가장 최신 버전(버전이 높을 수록 위에 있으니 head라 했나보다)으로 로컬에 update한다.
Update to Version : 선택하면 여러가지 옵션을 선택하는 창이 뜬다. 그에 맞는 version을 나의 로컬에 update한다.
Create Patch : 저장소와 로컬의 asynch를 체크해서 patch를 만드는 것 같은데 좀더 봐야할듯.
Apply Patch : 위의 create patch를 통해 나온 결과물을 가지고 적용하는것 같은데 역시 좀 더 봐야할듯.
==========================================================================
이 메뉴는 설명(펌)으로 대체 할까한다. 용어정의지만 이해하는데 도움이 될 듯.


Trunk
  - 단어 자체의 뜻은 본체, 본문 등입니다.
  - 프로젝트에서 가장 중심이 되는 디렉토리입니다.
  - 모든 프로그램의 개발 작업은 trunk 디렉토리에서 이루어  집니다.
  - trunk 디렉토리 바로 아래에는 소스들의 파일과 디렉토리가 들어가게 됩니다.

Branch
  - trunk에서 뻗어져 나온 나무가지를 뜻합니다.
  - 프로그램을 개발하다 보면 trunk 디렉토리에서 또 다른 작은 분류로 빼서 따로 개발해야 할 경우가 있습니다. 프로젝트안의 작은 프로젝트라고 생각하면 됩니다.
  - branches 디렉토리 안에 또 다른 디렉토리를 두어 그 안에서 개발하게 됩니다.

Tag
  - tag는 꼬리표입니다.
  - 이 디렉토리는 프로그램을 개발하면서 정기적으로 릴리즈 할 때, 0.1 / 0.2 / 1.0 등 이런식의 버전 별로 소스 코드를 따로 저장하는 공간입니다.
  - 버전별로 태그를 붙여서 tag 디렉토리 안에 보관한다고 생각하면 됩니다.

Merge
  - Trunk에서 분기된 Branch를 다시 Trunk로 합쳐는 작업
출처 : http://tiger5net.egloos.com/5573344

Branch/Tag : 위 설명된 branch나 tag를 저장소에 만든다.
Merge : branch나 tag를 병합
Switch to another Branch/Tag/Revision : 다른 branch/tag/revision으로 대체

==========================================================================
Show History : 선택한 항목(project, package, class, file)의 history를 보여준다. commit을 할때 comment를 달아 두면 더욱 유용. history를 통해서 compare 가능하며 유용하게 쓸수 있다.
Show Tree Conflicts : 메뉴를 보면 사용자간의 충돌이 일어난 항목을 보여주는것 같은데 왜 반응이 없지? 일부러 충돌도 만들어서 해보았건만...
Show Properties :
Show Revision Properties :
Show Revision Graph :
==========================================================================
Add to Version Control :
Add to svn:ignore : 저장소와 무관(저장되지 말아야할)하게 사용할 파일일 경우 등록하면 된다. 등록하게 되면 Synchronize with repository를 했을 때 목록에 나오지 않는다.
Set Property :
==========================================================================
Revert : 저장소의 가장 최신 revision으로 로컬 파일을 변경(Replace width >> latest from Repository 와 같은 기능인듯)
Edit conflicts :
Edit property conflicts :
Mark Resolved :
==========================================================================
Copy :
Export :
Configure Branches/Tags :
==========================================================================
Refresh/Cleanup : 뭔가 알 수 없는 충돌이나 오류가 발생했다면 이걸 먼저 해보시길.
Upgrade
==========================================================================