· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Bazaar/Bazaar 5분 강의

Bazaar/Bazaar 5분 강의

이 페이지는 [http] Bazaar in five minutes (2007-12-13) 를 번역한 것입니다.




1. 소개


Bazaar는 분산형 버전 관리 시스템(distributed version control system)으로 소프트웨어 프로젝트 공동 작업을 쉽게 할 수 있도록 해 줍니다.

이제부터 5분 동안 어떻게 파일들을 버전 관리 아래 넣고, 변경 사항을 기록하고, 작업을 검사하고, 온라인 상에 출판(publish)하고, 자신의 작업을 프로젝트의 줄기(trunk)에 병합(merge)할 수 있는지 배워보겠습니다.

2. 설치


이 안내서는 설치하는 방법을 설명하지는 않을 것입니다. 설치는 아주 쉽습니다. 설치에 관한 설명은 다음 페이지들을 참조하세요:

3. 사용자 설정


작업을 시작하기 전에 Bazaar에게 자신이 누구인지 알려주는 것이 좋습니다. 이렇게 해야 자신의 작업이 수정 일지(revision log)에서 적절하게 식별될 수 있습니다.

아래와 같이 명령을 내리시면 됩니다. John Doe 대신에 자신의 이름과 이메일 주소를 사용하세요.
$ bzr whoami "John Doe <john.doe@gmail.com>"
그러면 Bazaar는 설정 파일을 새로 만들거나 또는 기존의 설정 파일을 수정해서 새로운 이름과 이메일 주소를 기록합니다.

이제 자신의 이름과 이메일 주소가 제대로 등록되었는지 확인해보세요.
$ bzr whoami
John Doe <john.doe@gmail.com>

4. 버전 관리 아래 파일 넣기

이제 디렉토리를 하나 만들고 파일 몇 개와 하위 디렉토리를 만들어서 Bazaar와 함께 사용해 보도록 합시다.
$ mkdir myproject
$ cd myproject
$ mkdir subdirectory
$ touch test1.txt test2.txt test3.txt subdirectory/test4.txt
윈도우즈 사용자의 경우: 윈도우즈 익스플로러를 사용해서 디렉토리를 만드시고 그 디렉토리로 들어가서 오른쪽 버튼을 클릭해서 새로운 파일을 만드세요.

이제 Bazaar가 프로젝트 디렉토리를 초기화하도록 명령을 내리세요.
$ bzr init

아무 일도 일어나지 않은 것처럼 보여도 걱정하지 마세요. Bazaar는 가지(branch)를 하나 만들었습니다. 거기에 여러분의 파일과 수정 역사가 기록될 것입니다.

다음 단계로 Bazaar에게 어떤 파일들을 버전 관리할 것인지 알려주셔야 합니다. bzr add 명령을 내리면 프로젝트 내에 있는 모든 것들이 차례대로 추가될 것입니다.
$ bzr add
added subdirectory
added test1.txt
added test2.txt
added test3.txt
added subdirectory/test4.txt
다음으로 가지(branch)에 파일들을 넘겨서(commit) 기록해 보세요. 메시지도 추가하세요.
$ bzr commit -m "Initial import"
Bazaar는 분산형 버전 관리 시스템이기 때문에 중앙 서버에 연결될 필요가 없습니다. Bazaar는 여러분의 가지(branch)와 모든 넘길 파일(commit)을 현재 작업하고 있는 디렉토리 내부에 보관합니다. 프로젝트 디렉토리 아래 .bzr 이라는 하위 디렉토리를 찾아 보세요.

5. 파일 변경하기


파일 하나를 고치고 변경 사항을 가지(branch)에 넘겨(commit) 봅시다.

test1.txt 파일을 편집한 후 다음처럼 변경 사항을 체크해 보세요.
$ bzr diff
=== modified file 'test1.txt'
--- test1.txt   2007-10-08 17:56:14 +0000
+++ test1.txt   2007-10-08 17:46:22 +0000
@@ -0,0 +1,1 @@
+test test test
Bazaar 가지(branch)에 작업 내용을 넘기세요(commit).
$ bzr commit -m "Added first line of text"
Committed revision 2.

6. 수정 일지(revision log) 보기


일지(log)를 보면 여러분의 가지(branch)의 역사를 볼 수 있습니다.
$ bzr log
------------------------------------------------------------
revno: 2
committer: John Doe <john.doe@gmail.com>
branch nick: myproject
timestamp: Mon 2007-10-08 17:56:14 +0000
message:
  Added first line of text
------------------------------------------------------------
revno: 1
committer: John Doe <john.doe@gmail.com>
branch nick: myproject
timestamp: Mon 2006-10-08 17:46:22 +0000
message:
  Initial import

7. sftp로 출판(publish)하기


여러분의 가지(branch)를 출판(publish)하는 방법은 여러가지가 있습니다. 만약 SFTP 서버를 하나 가지고 있거나 아니면 쉽게 하나 만들 수 있다면 그것을 이용해서 출판(publish)할 수 있습니다.

아니면, 다음 섹션으로 넘어가서 [http]Launchpad에서 출판(publish)해 보세요. Launchpad는 Bazaar를 위한 무료 호스팅 서비스입니다.

일단 여러분의 가지(branch)를 www.example.com/myproject에 출판(publish)한다고 가정해 봅시다.
$ bzr push --create-prefix sftp://your.name@example.com/~/public_html/myproject
2 revision(s) pushed.
Bazaar는 원격 서버에 myproject라는 디렉토리를 만들고 그 안에 가지(branch)를 집어넣을 겁니다.

주의: sftp를 사용하기 위해서 paramikopyCrypto를 설치해야 할 수도 있습니다. 자세한 내용은 [http]http://bazaar-vcs.org/InstallationFaq를 참조하세요.

이제 누구든지 여러분의 가지(branch)를 받아서 자신만의 복제본을 만들 수 있습니다. 다음 명령으로요:
$ bzr branch http://www.example.com/myproject

8. Launchpad에서 출판(publish)하기


Launchpad는 자유 소프트웨어 프로젝트를 위한 개발 및 호스팅 도구 모음입니다. 여러분도 이용하실 수 있습니다.

아직 Launchpad 계정이 없으시면, 하나 만드세요.

아래처럼, john.doe 대신에 자신의 Launchpad 사용자명을 써서, 명령을 내리세요.
$ bzr push bzr+ssh://john.doe@bazaar.launchpad.net/~john.doe/+junk/myproject
참고: +junk는 이 가지(branch)가 기존의 특정 프로젝트와 연관이 없다는 뜻입니다.

이제, 누구든지 여러분의 가지(branch)를 받아서 자신만의 복제본을 만들 수 있습니다.
$ bzr branch http://bazaar.launchpad.net/~john.doe/+junk/myproject

그리고, 여러분의 가지(branch)에 관한 정보는 아래와 같은 주소에서 보실 수 있습니다.
https://code.launchpad.net/people/+me/+junk/myproject

9. 다른 가지(branch)의 복제본 만들기


다름 사람의 코드를 가지고 작업하기 위한 목적으로 그들의 가지(branch)의 복제본을 만들 수 있습니다. 실제 예를 한번 보지요. Bazaar의 GTK 인터페이스를 예로 들어봅시다.
$ bzr branch http://bazaar.launchpad.net/~bzr/bzr-gtk/trunk bzr-gtk.john
Branched 292 revision(s).
Bazaar는 bzr-gtk 프로젝트의 줄기 가지(trunk branch)에서 파일들 전부와 수정 역사를 완전히 다운로드 받아서 복제본을 만들고 bzr-gtk.john이라고 이름붙일 겁니다.

이제, 여러분의 자신만의 복제복을 가지게 되었습니다. 네트워크 연결이 있거나 없거나 관계없이 변경 사항을 넘길(commit) 수 있습니다. 그리고 여러분의 가지(branch)를 언제든지 출판(publishing)을 통해서 다른 사람들과 공유할 수 있습니다. 만약에 bzr-gtk 팀이 여러분의 작업을 사용하고 싶어한다면, Bazaar는 그들이 여러분의 가지(branch)를 그들의 줄기 가지(trunk branch)에 병합(merge)하는 것을 쉽게 해줄 것입니다.

10. 주 가지(main branch)에서 자신의 가지(branch) 갱신하기


여러분이 자신의 가지(branch)에 변경 사항을 넘기는(commit) 동안, 다른 사람들이 부모 가지(parent branch)에 코드를 넘기는(commit) 작업이 진행될 수 있습니다.

여러분의 가지(branch)가 최신 상태인 것을 확인하기 위해서 부모에게서 변경사항을 받아 자신의 개인 가지(branch)에 병합(merge)해야 합니다.
$ bzr merge
Using saved location: http://bazaar.launchpad.net/~bzr/bzr-gtk/trunk
All changes applied successfully.

변경 사항이 무엇이 있는지 확인해 보세요.
$ bzr diff

변경 사항에 불만이 없다면, 그 내용을 여러분의 개인 가지(branch)에 넘길(commit) 수 있습니다.
$ bzr commit -m "Merge from main branch"
Committed revision 295.

11. 자신의 작업을 부모 가지(parent branch)에 병합(merge)하기


여러ㅂㄴ이 bzr-gtk의 개인 가지(branch)에서 작업을 한 후에 자신이 변경한 내용을 프로젝트에 올려보내고 싶을 수 있습니다. 가장 간단한 방법은 병합(merge) 명령을 이용한 것입니다.

병합(merge) 명령은 기계가독형 요청으로 특정한 병합(merge)을 수행합니다. 보통은 병합(merge)의 패치 프리뷰 (patch preview)를 포함하고 있습니다. 그리고 필요한 수정판(revision)들이 포함되거나 또는 해당 수정판들을 담고 있는 가지(branch)가 제공될 수 있습니다.

mycode.patch에 여러분의 병합 명령(merege directive)를 만들려면:
$ bzr send -o mycode.patch
Using saved location: http://bazaar.launchpad.net/~bzr/bzr-gtk/trunk

이제 병합 명령을 이메일로 bzr-gtk 프로젝트에 보내세요. 그들의 선택에 따라 여러분의 작업이 부모 가지에 병합될 수 있습니다.

12. 더 배우기


Bazaar에 관해서 더 배우고 싶으시면 [http]Bazaar user guide를 둘러보세요.

명령행에서 Bazaar에 관해 배우고 싶으시면:
$bzr help

Bazaar 명령들에 대해 알고 싶으시면:
$ bzr help commands

특정한 "foo" 라는 주제나 명령에 대해 알고 싶으시면:
$ bzr help foo












sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2008-04-03 01:18:49
Processing time 0.0093 sec