バージョン管理システムを入れてみよう

バージョン管理システム…それは非常に便利な道具です。

文章やプログラムなど、あちこちちょっとずつ変えたり書き直したりするようなものを作るとき、「あれ、これ前のやつに一旦戻したいな」と思うことがあると思います。

そんなとき、簡単に「前の○○日版に戻そう」「そっからちょっと変えて…」「さっきの新しい版からここだけ持ってきて」なんてことが簡単にできるのが、バージョン管理システムです。

世の中にはいろいろなバージョン管理システムがあります。CVS, Subversion, Bazaar, Git…今回は、Mercurialを取り上げて、インストールしてみようと思います。

バージョン管理システムを使ってみよう(Mercurial, TortoiseHg編)

さて、以上でTortoiseHgの準備は出来ました。
続いて、簡単なテキストファイルで、バージョン管理操作の例をお見せします。
ここでは

  • リポジトリの作成(バージョン管理するフォルダを設定する)
  • コミット(新しいバージョンの内容をシステムに登録する)
  • リバート(古いバージョンの内容に戻す)
  • ブランチ分け(古いバージョンをもとに別のバージョン違いを作成する)

を扱います。実際には、Mercurialは分かれたブランチを統合するマージ機能なども充実しているそうですが、ここでは割愛します。

バージョン管理の要りそうな文書というと、報告書、論文、小説などでしょうか?
プログラムソースでなくても、結構便利だと思いますヨ。

(1)リポジトリを作成する



↑何か、フォルダを新しく作成し、で右クリックします。
「TortoiseHg」を選択し、「ここにリポジトリを作成」をクリックします。

続きを読む

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

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

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

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」と但し書きのあるバージョンです。



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



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



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

eclipseに統合するプラグイン

eclipseMercurialの機能を使うためのプラグインもあります。
Mercurial Eclipseです。

これを使えばRSEclipseでもバリバリ便利に使える…んですが、すでにスクリーンショットは取ってあるんですけど、RSEclipseがサーバートラブルで配布休業中なので…HowTo書いてもいまいち役に立たないんじゃないかと…作業続行のモチベがダウンしています。要望があれば続き作ります。

なおいちおう自力突貫する人に向けて一言だけ。インストールの際、WindowsMercurialがインストールする項目に含まれますが、TortoiseHgをすでに入れてあれば、本体側のみのインストールで構いません。