Launchpadの個人リポジトリを使ってみる

 Launchpadがオープンソース化されたそうでちょっと調べたところ、個人用のリポジトリが利用できるらしいと知ったので使ってみるテスト。ちなみに「 OSSホスティングサービスの比較 」によるとLaunchpadはCVS/Subversionに対応となっているが、これはLaunchpadが採用しているバージョン管理システム「Bazaar」がCVSやSubversionと互換性があるという話のようなので、まずはBazaarを使ってLaunchpadを使ってみる。

 Bazaarについては Bazaarのチュートリアル も参照。

 必要なものは下記のとおり。

  • Bazaar
  • アクセスに使用するSSH公開鍵
  • メールアドレス
  • バージョン管理システムで管理したいファイル一式

Bazaar のインストール

 Linux/FreeBSD/Cygwin/Fink/MacPortsなど、各プラットフォームのパッケージマネージャから入手可能。WindowsやMac OS Xの場合は Bazaarのダウンロードページ からインストーラが入手できる。

Launchpadのアカウント作成と設定

  LaunchpadのRegisterページ でアカウント作成。メールアドレスを登録すると飛んでくる確認メール内に本登録ページのURLが書かれているパターン。Display Name(表示名)、Name(アカウント名)はあとで変更可能。

 登録してログイン完了後、まず画面右上のユーザー名をクリックしてユーザー画面を開き、画面右の「Change details」をクリックしてアカウント設定画面を開く。

 アカウント設定画面でDisplayNameおよびNameを確認。Nameで設定した文字列が個人リポジトリ名に含まれるので、公開しても問題のない名前に設定する。ユーザーの写真や個人ページに掲載する内容などもここで設定できる。続いてSSH Keysをクリック。

 画面下のテキストボックスにSSH公開鍵をコピー&ペーストして、「Import Public Key」をクリックする。有効な公開鍵であればそのまま登録され、「Key Type」「Key Text」「Comment」が表示される。

個人用Branchの作成

https://code.launchpad.net/を開き、「Register a branch」をクリックする。「Register a branch」画面が表示されるので、適当に「Name」(Branch名)を設定する。今回は個人用Branchを作るので、「Project」は空のままでOK。「Branch Type」は、メインのBranchとして使用するので「Hosted」を選択。

 そのほかは適当でOK。最後に画面下の「Register Branch」をクリックして作成完了。作成したBranchは、ユーザー画面の「Code」タブで確認できる。

 Branch名をクリックすると、Branchの詳細情報画面が表示される。「Update this branch」にBranchへのPush(ファイル登録)するためのコマンドが表示される。

ファイルの登録

 bzrコマンド(BazaarのCLIフロントエンド)を使ってリポジトリにファイルを登録する。まず、登録したいファイルが含まれるフォルダを初期化してファイルを登録する。「bzr init」が初期化コマンド、「bzr add」がカレントディレクトリ以下のファイルをリポジトリに追加するコマンドである。

$ cd <登録したいファイルが含まれるフォルダ>
$ bzr init
$ bzr add

 続いて、ローカルで変更をコミットしておく。「bzr commit -m <コメント>」がコミットコマンドだ。

$ bzr commit -m 'Initial import'

 最後に、Launchpadのリポジトリにローカルで行ったコミットをpush(登録)する。「bzr launchpad-login 」でLaunchpadへのログインユーザー名を指定し、「bzr push」コマンドでpushを実行する。push先のURIは先ほどのBranch詳細情報画面に表示されている。

bzr launchpad-login hylom
bzr push --use-existing-dir lp:~hylomm/+junk/fusuma

 以上でLaunchpadの個人Branchへのファイル登録完了。

Branchからファイルをcheckoutする

 Branchからファイルをcheckoutするには、「bzr branch」コマンドを使う。

bzr launchpad-login hylom
bzr branch lp:~hylomm/+junk/fusuma

 Subversion/CVSとの連携はまた今度。