본문 바로가기

공부/Mercurial

[Mercurial 사용법] Clone 1. Clone 개요 머큐리얼의 Clone은 저장소를 복사하는 것을 의미하며, 단순히 저장소의 "현재 상태"를 복사하는 것이 아니라, 저장소의 모든 변경 이력 등을 함께 복사하는 것을 의미한다. 머큐리얼은 모든 사용자가 자신의 저장소를 이용하여 이력을 확인할 수 있고, 유연하게 변경 사항을 Push, Pull 할 수 있다. 따라서, Clone은 여러가지 형태로 활용이 가능하다. 프로젝트를 Checkout하기 위해 Clone을 수행할 수 있다.프로그램에 실험적인 코드를 적용하기 위해 Clone을 한 후, 변경 사항을 적용하거나, 해당 코드를 버릴 수 있다. 이러한 작업을 위해 SVN은 흔히 branch를 사용하며, 머큐리얼 역시 branch 기능을 지원하긴 하지만, 머큐리얼의 Clone을 통한 branch.. 더보기
[Mercurial 사용법] Push, Pull 1. Push, Pull 개요 머큐리얼의 Push, Pull은 타 저장소로 변경 사항(changeset)을 전송하는 과정을 의미한다. Push와 Pull을 설명하기 이전에, 머큐리얼의 Revision과 Changeset의 개념에 대해 간단히 정리할 필요가 있다. Revision은 특정 시점에 저장소의 상태를 표시하는 번호이다. 이 번호는 순차적으로 올라가게 된다. changeset은 저장소의 변경 사항을 저장하는 단위이며, 하나의 changeset을 commit하거나 다른 저장소로부터 pull/update하게 되면, changeset을 받아오게 되며, Revision 번호는 하나 증가한다.Revision 번호를 changeset과 동일한 것으로 보는 경향이 있는데 이는 잘못된 것이다. 이는 머큐리얼이 각.. 더보기
[Mercurial 사용법] Mercurial로 프로젝트 공유하기 Eclipse를 통해 생성한 프로젝트를 머큐리얼을 통해 공유하는 방법을 알아본다. 1. 공유할 프로젝트 생성 Eclipse를 이용하여 공유할 프로젝트를 생성한다.이 과정은 일반적인 이클립스 프로젝트 생성 과정과 동일하므로, 별도로 언급하지 않는다. Maven 프로젝트로 생성한 프로젝트에 간단한 예제 파일을 넣어 프로젝트를 생성한다. 2. Mercurial Repository에 프로젝트 공유 프로젝트를 공유하기 위해 다음과 같은 과정을 수행한다. 프로젝트를 선택한 후, 우클릭하여 Team > Share Project를 선택표시된 창에서 Mercurial을 선택한 후, 다음 창에서 Finish를 눌러 프로젝트를 머큐리얼로 공유첫 공유 이후 commit을 수행하여 현재 프로젝트의 첫 commit을 수행 하지만.. 더보기
이클립스에 MercurialEclipse 플러그인 설치 머큐리얼을 Eclipse에서 직접 사용하기 위해서는 MercurialEclipse 플러그인을 설치해야 한다. 이 포스팅에서는 MercurialEclipse 플러그인을 설치하는 방법을 알아본다. MercurialEclipse 플러그인 홈페이지는 다음 주소(http://javaforge.com/project/HGE)에서 확인할 수 있다. 이 홈페이지에서 Download Now 버튼을 찾아 이동한 페이지에서 Eclipse Plugin 주소(http://cbes.javaforge.com/update)를 확인할 수 있다. 해당 주소를 입력하여 MercurialEclipse를 선택하고, 설치를 진행한다. (주: codeBeamer를 함께 설치했으며, Eclipse는 전자정부표준프레임워크 2.5를 사용했으나, 설치시.. 더보기
개인용 Java 기반 프로젝트 환경 설치 - (2) Mercurial 설치 및 설정 1. Mercurial 설치 개요 머큐리얼은 대표적인 DVCS(Distributed Version Control System) 중 하나다. 머큐리얼에 대한 설명은 내 블로그에 이미 정리된 포스트(http://silencer.tistory.com/57)가 있으므로, 생략한다. 현재까지 내가 머큐리얼을 사용하면서 직접적으로 느낀 장점과 단점은 아래와 같다. 장점빠른 커밋로컬 저장소에 이력을 저장하므로, 커밋이 빠르다. 로컬 저장소에 커밋이 빠르다는 점은, 그만큼 '커밋을 하는데 부담이 적다'라는 장점을 가질 수 있고, 이는 사용자가 변경사항에 대해 더 자주 커밋을 할 수 있도록 해준다. 단, 이 커밋은 중앙 저장소로의 커밋과는 다르다. 머큐리얼은 중앙 저장소로의 동기화를 위해 pull, push 라는 명령을.. 더보기
Mercurial SCM (Source Control Management) 요즘 회사에서 몇 년전 포스팅했던 TOW(Trac On Windows)를 사용하고 있다. 현재는 거의 혼자 일하기 때문에, 이슈 트랙킹은 거의 사용하지 않고 있으며 SVN은 소스 형상 관리 면에서는 이전보다 상당히 편리해졌다는 생각이 든다. SVN과 같은 기존 버전 관리 시스템은 중앙 서버에 소스 수정 이력이 저장되는 구조를 가진다. 이러한 특징은 많은 한계점을 보여주는데, 내가 사용하면서 느꼈던 예를 들다면 다음과 같다. 1) 항상 서버와 연결이 되어야 작업이 가능 본인의 회사는 방화벽때문에 외부 접속이 불가능하다. 따라서 집에서는 작업이 불가능하다. 마찬가지로, 외부로 출장을 나가더라도, 버전 컨트롤 시스템에 접속해서 작업은 불가능하다. 2) 네트워크의 상황이 성능에 많은 영향을 미치고, 전체적으로 .. 더보기