Dropbox + Bazaar で論文のバージョン管理(複数地点での作業に対応)

最近,いろいろな場所で作業することが多くなりました.インターネットにつながっていれば,単純にGmail上にファイルを自分宛に送っておけば良いのですが,バージョン管理が煩雑です.そこで,DropboxやSugarsyncなどのオンラインストレージサービスが充実してきたので,それらを活用し,バージョン管理を取り入れた執筆環境を作ってみました.

目標

  • 個人の複数PC(ここで取り扱うのはWindowsマシンですがLinuxへの拡張は容易なはず)において,版を残しつつ論文を執筆します(なので,複数人での共同執筆用ではなく,複雑な管理はしません).
  • 論文の執筆にはMSWORD(2007/2010)を使います.
  • レポジトリサーバーを立てずにできるだけ簡単に扱うようにします.

バージョン管理システムを大きく分けると2通り(集中型/分散型)に分けられますが,インターネットに接続していない時でもファイルの更新が行えるように,分散型のバージョン管理システムを用います.その場合,Git,MercurialかBazaarという選択になりますが,文書管理ということで,Windowsとの相性が良く,日本語に強いことから,Bazaarを用いることにします.

(Mercurialはファイル名に日本語が使えないらしいです.個人的には日本語ファイル名は使いませんが,文書管理に使う以上,将来どうなるかわからないので)

(注1)Bazaarはバイナリの差分の中身を確認することは出来ません.ので,差分の確認をしつつ文書の管理を行う場合は,できるだけtextファイルで書き進め,最後に書式を変更するのがお勧めです.

作業

1 Dropboxの準備

ファイルの同期・共有はDropboxで行うので,まず,Dropboxに登録し,Dropboxの環境を整えます.

(注2)Dropboxにもリビジョン管理機能があります.ただし,Dropboxに頼りきってしまうと,Dropboxに何かあった時に(例えば有料化とか,サービスダウンで履歴が消えるとか)困ります.そこで,Dropbox内にメインレポジトリを持ち,PCにはローカルレポジトリを持つような設計にします.

(注3)Sugarsyncでも構いません.が,現時点で,Sugarsyncは3台以上のPCで同期する場合には有料になるのでDropboxで説明します.

2 Bazaarのセットアップ

Bazaarについての基本的な説明は,Wikipediaの以下のページを参照してください.

https://ja.wikipedia.org/wiki/Bazaar

(なお,これ以降の記述については,

https://doc.bazaar.canonical.com/latest/ja/mini-tutorial/index.html

を参考にしています.)

2-1 Bazaarのダウンロード,インストール

下記のBazaarのダウンロードページから,

https://wiki.bazaar.canonical.com/WindowsDownloads

Standalone インストーラをダウンロードし,インストール.インストール中は「A typical installation」を選択し,Next連打で構いません.

2-2 初期設定

インストール終了後,Bazaar Explorerを開きます.[Bazaarを設定する]→[環境設定]とクリックすると,[設定]ウインドウが開きます.(メニューバーからも,[設定]→[設定]→[ユーザ設定]で行けます)

[メール]の欄が,ユーザ名@マシン名になっているので,メールを使う場合は正しく設定します.個人利用なのでメールでtodo管理などしてなければそのままの方が都合が良いかもしれません(どのマシンで作業したか分かりやすい).

2-3 管理方法の説明

(注4)Bazaarはレポジトリのレイアウトをかなり柔軟に構成できる.以下のレイアウトは一例に過ぎません.

本稿で説明する管理方法は下図の通りです.Dropbox内に親レポジトリを持ち,各地点でのPCはローカルレポジトリとして子ブランチを持ちます.各地点での作業は子ブランチ内で行い,最終的なコミットを親ブランチにマージします.親ブランチはDropbox内にあるので,各PCで同期されます.

2-4 親ブランチの作成

ブランチ(branch)はその名の通り,枝の意味で,ツリーからの分岐を意味します.Bazaarでは,ブランチは管理対象のファイルと同じディレクトリに置かれ,管理内容がブランチに保存されます.チュートリアルより引用:

すべての履歴はブランチに格納されます。ブランチとは、管理用のファイルを含んだただのディレクトリです

まず,Dropboxフォルダー内で,親ブランチとなるディレクトリを好きな名前で作ります.

例: C:\Users\User1\Desktop\Dropbox\Parent_Branch

(既存のディレクトリを用いる場合はこのステップはスキップ)

次にBazaar Explorerで[新しいプロジェクトを作成する]→[初期化]を選択し,先程作成したディレクトリを指定し,Feature Branchesを選択してOKとします.すると,trunkと,.bzrというディレクトリが作成されます.(.bzrは隠しフォルダ)

trunkのフォルダに管理対象のファイルを移動します(もしくは作る).

例: C:\Users\User1\Desktop\Dropbox\Parent_Branch\trunk\paper1.docx

[追加]をクリックし,対象ファイルを選択します.まず最初の[コミット]を行い,ファイルの追加を作業ツリーに反映します.これ以降,このファイルのリビジョンが保存されていきます.

2-5 子ブランチの作成

次に,ローカルブランチを作ります.ローカルブランチ用のディレクトリを好きな場所に(Dropboxフォルダーの外に)作ります.Bazaar Explorerにて,[既存の場所を開く]で親ブランチのtrunkフォルダまで移動します.メニューバーの[Bazaar]→[開始]→[ブランチ]を指定し,From が親ブランチのtrunkフォルダ,宛先が先程作成したローカルブランチのディレクトリになるように指定します.

さらに,オプションで,[Bind new branch to parent location]にチェックを入れ,OKをクリックします.共用レポジトリを作成するように促されるので,そのまま作成し,OKを押します.同じことを,ローカルブランチを持つべきPC全てで行います.

2-6 実際の執筆作業

作業をするときはまずBazaarExplorerからローカルブランチのtrunkを開き,[更新]を行います.すると,親ブランチでの更新がローカルに反映されます.その後,作業ツリーの中のファイルを開いて作業を行います.作業終了後に,[コミット]を行うと,リビジョン番号が一つ上がり,親ブランチに変更が反映されます.(これを忘れると親ブランチのファイルが更新されず,他のPCでは更新されたファイルに変更が加えられないので注意です)