リモートリポジトリと連携する

ここまでのことができるだけでも大変便利なのですが、バージョン管理システムの真髄はネットワーク利用にあります。

すなわち、編集履歴情報をオンライン上で管理しておき、必要に応じてダウンロードして執筆、開発を続けることができるのです。複数人で同時に開発することもできたりします。

Mercurialは、単体でもWEBサーバ機能を持つので、これを設定することで他のマシンとリポジトリをやりとりすることができるのですが、サーバの設定は多少ネットワーク周りの知識が必要ですし、恒常的にインターネット経由でアクセスするシステムを準備するのはセキュリティ面で心配もあります。

そこで、リモートリポジトリのサービスを利用します。
ここで紹介するのは、bitbucketです。

 -リポジトリ作成数 制限無し
 -作成するリポジトリの公開/非公開 設定可能
 -非公開リポジトリの複数ユーザでの共有利用可能
 -MercurialだけでなくGitも対応

(Gitも非常によく似たバージョン管理システムで、世の中ではMercurialよりはこちらの方がメジャーです。TortoiseGitを使えば、操作もほとんど同じらしいです。日本語ファイル名への対応の方法が違うようです。…Gitもいずれ試してみます。)

「またまた。そんなこと言って、お高いんでしょう?」

いえいえ。非公開リポジトリの共有ユーザー人数が5人までなら、無料です!

(1)bitbucketのユーザーアカウントを作成する


bitbucketのサイトに行き、アカウントを作成します。
http://bitbucket.org

(2)bitbucket上にリポジトリを作る



↑サイト右上の「Repositories」をクリックし、ドロップダウンリスト中の「+create repository」をクリックします。



↑各項目を記入します。

これらを記入したら「Create repository」を押します。
(各項目の内容については、あとで変更可能です。)



リポジトリ作成完了画面が表示されます。URLが表示されますので、これをメモしておきます。


これで、bitbucket上に、空っぽのリポジトリが作成されました。

(3)手もとのリポジトリをbitbucket上のリポジトリに転送する(プッシュ)


まず、Hgワークベンチを開き、転送したいリポジトリを選びます。
「すでにローカルにリポジトリが作成されており、その内容をbitbucket上の空っぽのリポジトリに追加する」場合は、初めての転送になりますので、次のように転送先リポジトリのURL設定が必要です。



↑左の、「Local」となっているところを押します。



↑「https」を選びます。



↑URL記入欄を、メモしておいたURLに従い埋めていきます。記入欄は「記入欄1」:「記入欄2」/「記入欄3」と3つに分かれています。

  • 左の記入欄1にURLのうち「ユーザー名@ドメイン名」の部分を記入します。
  • 真ん中の記入欄2はポート記入欄ですが、今回は空欄のままです。
  • 右の記入欄3に、URLのうちドメイン名より後ろの部分(最初の"/"よりあとの部分、「ユーザー名/リポジトリ名」)を書きます。

記入が終わったら、欄の右にあるフロッピーディスクのアイコンを押します。



↑転送のたびにいちいちユーザー名を打ち込む面倒を避けるため、「Remove authentication data from URL」のチェックをはずします。
「Save」ボタンを押します。


いよいよプッシュ操作をして、内容をリモートリポジトリへ転送します。



ツールバーの「Push outgoing changes to selected URL」ボタンを押します。



↑「Yes」を押します。パスワードを聞かれますので、bitbucketのユーザーアカウントのパスワードを入力します。


これで内容の転送が始まります。



↑しばらく待って転送が終わると、bitbucket側のリポジトリ情報が更新されていることが確認できます。

(4)リモートリポジトリの内容をローカルに複製する(リポジトリのクローン)


「リモートリポジトリの内容を新規にダウンロードしてローカルで使えるようにしたい」場合、リポジトリのクローンの操作を行います。



↑新しくフォルダを作成し、右クリックして「TortoiseHg」を選び、「リポジトリのクローン」を選びます。



↑「ソース」欄に、リモートリポジトリのURLを記入し、「クローン」ボタンを押します。パスワードを聞かれますので、bitbucketのユーザーアカウントのパスワードを入力します。



↑しばらく待つと完了しますので、「Close」ボタンを押します。



↑これで、フォルダの中身に、リポジトリの内容と最新バージョンのファイルがダウンロードされています。

(5)リモートリポジトリから最新の更新状況をダウンロードしてくる(プル)


例えば複数人で共同開発している場合、あるいは個人でもデスクトップPCとノートブックPCなどで並列して開発している場合に、片方の環境で更新した内容をリモートリポジトリに転送したので、もう一方の環境にその内容をダウンロードしたい、ということがよくあると思います。この場合、プル操作を行います。(新規にダウンロードしてくる場合は前述のクローン操作を行います。)



↑Hgワークベンチを開き、ツールバーの「Pull incoming changes from selected URL」ボタンをクリックします。パスワードを聞かれますので、bitbucketのユーザーアカウントのパスワードを入力します。


しばらく待つとダウンロードが完了します。が、ここで注意すべき点があります。プル操作でダウンロードしただけでは、履歴情報はすべてダウンロードされるが、ファイル構成は最新版にはならない、ということです。



↑Hgワークベンチのグラフのところを見てください。一番上の行が、ローカルの現在のファイル構成です。「HEADリビジョンではありません!」と赤字で但し書きがあります。HEADリビジョンとは、履歴情報の中で最新のバージョンのことです。青く塗りつぶされている●ノードが履歴情報中の各バージョンですので、現在の最新は2行目にあるリビジョン4、「default」「tip」と但し書きのあるバージョンです。



↑そこで、ファイル構成も最新のものに変更します。具体的には、まず最新のバージョンの行を選び、右クリックして「特定のリビジョンへ更新」を選択します。



↑「更新」ボタンを押します。



これで内容が最新のものに置き換わりました。(グラフを見てください)