Ubuntu10.10 自宅サーバ構築手順:分散バージョン管理環境(Bazaar)インストール

SCMBCに参加した辺りから分散バージョン環境に興味を持ち始め、手始めにGitから着手してみたものの、Windows環境とは相性があまり宜しくない(エンコード・文字化け等)という事で一旦断念。Mercurialも同様の理由で(Linux環境では行けるんだけど)Windows環境に一定のハードルあり(やってやれない事は無いんだけど、色々やらなくちゃならなさそうなのが面倒)という事で、その点『問題無いよ!』と謳っているBazaar(Bzr)にも手を出してみることにしました。

有用サイト等のまとめは後ほど行うとして、まずは初歩の初歩、インストール&超基本操作から。同様の手順はWindows7環境でも試してみたので、詳細は以下から御覧下さい。


手順は以下のサイトを元に、マニュアルの記載になるべく倣って行ってみました。


インストール

absj31@absj31-MyHomeServer:~$ sudo apt-get install -y bzr

導入確認

absj31@absj31-MyHomeServer:~$ dpkg -l | grep bzr | less
ii  aptdaemon             0.31+bzr506-0ubuntu6.1   transaction based package management service
ii  bzr                   2.2.0-1                  easy to use distributed version control system
ii  bzrtools              2.2.0-2                  Collection of tools for bzr
ii  python-aptdaemon      0.31+bzr506-0ubuntu6.1   Python module for the server and client of aptdaemon
ii  python-aptdaemon-gtk  0.31+bzr506-0ubuntu6.1   Python GTK+ widgets to run an aptdaemon client
ii  sessioninstaller      0.20+bzr115-0ubuntu1     APT based installer using PackgeKit's session DBus API
absj31@absj31-MyHomeServer:~$ bzr version
Bazaar (bzr) 2.2.0
  Python interpreter: /usr/bin/python 2.6.6
  Python standard library: /usr/lib/python2.6
  Platform: Linux-2.6.35-28-generic-i686-with-Ubuntu-10.10-maverick
  bzrlib: /usr/lib/python2.6/dist-packages/bzrlib
  Bazaar configuration: /home/absj31/.bazaar
  Bazaar log file: /home/absj31/.bzr.log

Copyright 2005-2010 Canonical Ltd.
http://bazaar.canonical.com/

bzr comes with ABSOLUTELY NO WARRANTY.  bzr is free software, and
you may use, modify and redistribute it under the terms of the GNU
General Public License version 2 or later.

Bazaar is part of the GNU Project to produce a free operating system.

absj31@absj31-MyHomeServer:~$ 

自己紹介(ユーザ情報の設定)

absj31@absj31-MyHomeServer:~$ bzr whoami
bzr: ERROR: Unable to determine your name.
Please, set your name with the 'whoami' command.
E.g. bzr whoami "Your Name <name@example.com>"
absj31@absj31-MyHomeServer:~$ 

未設定の場合、上記の様なエラーが出るので対処。

absj31@absj31-MyHomeServer:~$ bzr whoami "xxxxxxx <xxxxxxx@xxxxxxx>"
absj31@absj31-MyHomeServer:~$ bzr whoami
xxxxxxx <xxxxxxx@xxxxxxx>
absj31@absj31-MyHomeServer:~$ 

動作確認用のファイルを作成

absj31@absj31-MyHomeServer:~$ mkdir myproject
absj31@absj31-MyHomeServer:~$ cd myproject/
absj31@absj31-MyHomeServer:~/myproject$ mkdir subdirectory
absj31@absj31-MyHomeServer:~/myproject$ touch test1.txt test2.txt test3.txt subdirectory/test4.txt
absj31@absj31-MyHomeServer:~/myproject$ 
absj31@absj31-MyHomeServer:~/myproject$ 
absj31@absj31-MyHomeServer:~/myproject$ pwd
/home/absj31/myproject
absj31@absj31-MyHomeServer:~/myproject$ ll
合計 12
drwxr-xr-x  3 absj31 absj31 4096 2011-09-10 00:08 ./
drwxr-xr-x 46 absj31 absj31 4096 2011-09-10 00:08 ../
drwxr-xr-x  2 absj31 absj31 4096 2011-09-10 00:08 subdirectory/
-rw-r--r--  1 absj31 absj31    0 2011-09-10 00:08 test1.txt
-rw-r--r--  1 absj31 absj31    0 2011-09-10 00:08 test2.txt
-rw-r--r--  1 absj31 absj31    0 2011-09-10 00:08 test3.txt
absj31@absj31-MyHomeServer:~/myproject$ 

bzr init(初期化)

absj31@absj31-MyHomeServer:~/myproject$ pwd
/home/absj31/myproject
absj31@absj31-MyHomeServer:~/myproject$ ll
合計 12
drwxr-xr-x  3 absj31 absj31 4096 2011-09-10 00:08 ./
drwxr-xr-x 46 absj31 absj31 4096 2011-09-10 00:08 ../
drwxr-xr-x  2 absj31 absj31 4096 2011-09-10 00:08 subdirectory/
-rw-r--r--  1 absj31 absj31    0 2011-09-10 00:08 test1.txt
-rw-r--r--  1 absj31 absj31    0 2011-09-10 00:08 test2.txt
-rw-r--r--  1 absj31 absj31    0 2011-09-10 00:08 test3.txt
absj31@absj31-MyHomeServer:~/myproject$ bzr init
Created a standalone tree (format: 2a)
absj31@absj31-MyHomeServer:~/myproject$ 

bzr add(ファイルの追加)

absj31@absj31-MyHomeServer:~/myproject$ pwd
/home/absj31/myproject
absj31@absj31-MyHomeServer:~/myproject$ ll
合計 16
drwxr-xr-x  4 absj31 absj31 4096 2011-09-10 00:09 ./
drwxr-xr-x 46 absj31 absj31 4096 2011-09-10 00:08 ../
drwxr-xr-x  6 absj31 absj31 4096 2011-09-10 00:09 .bzr/
drwxr-xr-x  2 absj31 absj31 4096 2011-09-10 00:08 subdirectory/
-rw-r--r--  1 absj31 absj31    0 2011-09-10 00:08 test1.txt
-rw-r--r--  1 absj31 absj31    0 2011-09-10 00:08 test2.txt
-rw-r--r--  1 absj31 absj31    0 2011-09-10 00:08 test3.txt
absj31@absj31-MyHomeServer:~/myproject$ bzr add
adding subdirectory
adding test1.txt
adding test2.txt
adding test3.txt
adding subdirectory/test4.txt
absj31@absj31-MyHomeServer:~/myproject$ 

bzr commit(ファイルのコミット)

absj31@absj31-MyHomeServer:~/myproject$ bzr commit -m "Initial Import."
Committing to: /home/absj31/myproject/
added subdirectory
added test1.txt
added test2.txt
added test3.txt
added subdirectory/test4.txt
Committed revision 1.
absj31@absj31-MyHomeServer:~/myproject$ ll
合計 16
drwxr-xr-x  4 absj31 absj31 4096 2011-09-10 00:09 ./
drwxr-xr-x 46 absj31 absj31 4096 2011-09-10 00:08 ../
drwxr-xr-x  6 absj31 absj31 4096 2011-09-10 00:09 .bzr/
drwxr-xr-x  2 absj31 absj31 4096 2011-09-10 00:08 subdirectory/
-rw-r--r--  1 absj31 absj31    0 2011-09-10 00:08 test1.txt
-rw-r--r--  1 absj31 absj31    0 2011-09-10 00:08 test2.txt
-rw-r--r--  1 absj31 absj31    0 2011-09-10 00:08 test3.txt

ファイルを変更〜差分を確認(bzr diff)

作成時は空文字だったので、ファイルに内容を追記。

absj31@absj31-MyHomeServer:~/myproject$ vi test1.txt

test1
test2
test3

確認。

absj31@absj31-MyHomeServer:~/myproject$ bzr diff
=== modified file 'test1.txt'
--- test1.txt   2011-09-09 15:11:31 +0000
+++ test1.txt   2011-09-09 15:13:01 +0000
@@ -0,0 +1,3 @@
+test1
+test2
+test3

absj31@absj31-MyHomeServer:~/myproject$ 

作業内容をコミット。

absj31@absj31-MyHomeServer:~/myproject$ bzr commit -m "Added 3 lines."
Committing to: /home/absj31/myproject/
modified test1.txt
Committed revision 2.
absj31@absj31-MyHomeServer:~/myproject$ 

bzr log(ログの確認)

absj31@absj31-MyHomeServer:~/myproject$ bzr log
------------------------------------------------------------
revno: 2
committer: xxxxxxx <xxxxxxx <xxxxxxx@xxxxxxx>>
branch nick: myproject
timestamp: Sat 2011-09-10 00:14:44 +0900
message:
  Added 3 lines.
------------------------------------------------------------
revno: 1
committer: xxxxxxx <xxxxxxx <xxxxxxx@xxxxxxx>>
branch nick: myproject
timestamp: Sat 2011-09-10 00:11:31 +0900
message:
  Initial Import.
absj31@absj31-MyHomeServer:~/myproject$ 


以上、作成から基本操作はつつがなく完了。マニュアルに記載されていた『ブランチを Launchpad で公開する』以降の動作確認については後日。