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 で公開する』以降の動作確認については後日。