== 소개 == * 프로젝트 : http://bazaar-vcs.org/ * BazaarVersionControl을 사용하는 프로젝트들 : http://bazaar-vcs.org/WhoUsesBzr * PythonLanguage로 작성되었다. * 적어도 PythonLanguage을 지원하는 환경에서는 잘 굴러간다. * PythonLanguage으로 플러그인을 작성하여 확장할 수 있다. ;-) * Uncommit 지원 : LocalRepository(기존의 WorkingCopy?)에 대해서 Commit한 내용을 되돌릴 수 있다. * UnicodeSupport : UTF-8으로 인코딩된 이름을 EUC-KR환경에서 받아볼때 문제가 없었다. * 기존의 CVS, SVN 사용자를 위해서 명령어 앨리어스가 있다. == 시작하기 == === 설치 및 설정 === 1. 설치하기 * 윈도우의 경우 * Win32환경에서 인스톨러를 받아서 설치한다. * Gentoo의 경우 * 서버측에서 `sudo emerge bzr`한다. * pkgsrc 환경의 경우 * 서버측에서 `cd /usr/pkgsrc/devel/bzr && sudo bmake install`한다. 2. 설정 * 설치후에 `bzr whoami "Yun, Jonghyouk "`으로 자신의 이메일주소를 설정한다.(changelog를 위해서.) === 저장소 만들기 === * `bzr init` : 간단히 빈 디렉토리를 만들거나 기존의 프로젝트 디렉토리에서 실행하여 `.bzr`을 생성했다. (예: `~/projs`) === 최초 파일추가 === 1. 프로젝트의 파일들을 복사하거나하여 프로젝트 디렉토리로 넣어준다. `cp * -rv ~/projs` 2. 해당 프로젝트의 최상위 디렉토리에서 복사한 파일들을 버젼관리에 추가해준다. `bzr add *` 3. `bzr status`로 잘 추가가 되었는지 확인한다. 4. `bzr commit`으로 변경사항을 기록한다. 기본편집기가 열리면 변경사항을 요약하여 적어준다. (예: Initial Import!) === 기존 파일에 대한 작업 === 1. 저장소의 파일을 간단히 변경해보자. (예: `vi foo.sh`) 2. `bzr diff foo.sh`으로 변경한 사항을 알아보자. 3. ... 1. `bzr commit`하여 저장소에 변경하거나, 2. `bzr revert foo.sh`으로 변경사항을 버리자. === 원격지에서의 작업 === 1. 원격에서 작업을 하고 싶을때 저장소를 긁어온다. * `bzr get sftp://ageldama@dev.server.net/home/ageldama/projs` 2. `cd projs` 3. 하고싶은 작업을 한다. :) 4. 작업한 내용을 서버에 올라려면 1. `bzr commit`하고... 2. `bzr push sftp://ageldama@dev.server.net/home/ageldama/projs`으로 서버에 반영. 5. 이후에 서버로부터 변경사항을 받아오고 싶을때 `bzr merge`하여 WorkingCopy을 최신으로 유지한다. == 내가 Bazaar를 쓰는 이유 == 개인적인 메모나 설정화일들(쉘앨리어스들, 편집기설정...), 작은 개인 프로젝트들 같은 것들을 버젼관리를 통해서 관리하였는데, 처음에는 Subversion을 이용하였으나 아파치 모듈을 깔거나 `svnserve`을 이용하거나 하는 부분이나 심한 버젼간 비호환문제 같은 것이 싫어서 DarcsVersionControl을 이용해서 전환을 하였다. 커맨드라인만으로 대부분의 작업을 진행하고 분산저장소의 개념등으로 편리하게 사용할 수 있었지만 윈도와 리눅스 서버간의 한글 인코딩이 다를 경우라던지 하는 경우에 한글이 이상하게 처리가 된다거나 SftpBackend의 지원이 윈도환경에서 이상하게 느껴진다거나 하는 느낌이 있어서 BazaarVersionControl로 전환을 시작했다. -- [ageldama] [[DateTime(2007-01-29T13:36:27)]]