論文、特に共著論文を書いているとき、よく次のような問題が起こることがあります。
これらの問題を人間の頭で管理しようとすると、とてもめんどくさいです。そんなときに役立つのが、バージョン管理ツールです。今のところ主に使っているのはプログラマーの人たちですが、きっとそのうち、研究者も当たり前のように使うようになると思います。
代表的なバージョン管理ツールにGitとMercurialがあります。それぞれ一長一短あります。 詳しくは、Mercurial 対 Git:なぜ Mercurial を選ぶのか? とGit 対 Mercurial:なぜ Git を選ぶのか? を参照してみてください。 ~~私は今のところ両方使ってます~~ 私は今はgitを使っています。
どちらを使うにしても、バージョン管理ツールを使うと次のようなことができます。
これらのバージョン管理ソフトは個人で使っても有用です。ぜひ、使ってみてください。
たぶん多くの方にとって、GUI版の方が使いやすいと思います。 SourceTreeが評判がよいようです。WindowsもMacもあります。GitもMercurialも使えます。ある程度長く使うには、登録が必要なようです。
GUI版は慣れれば使いやすいのですが、CUIの方が取っ付き易いという方も多いと思います。そんな方にはCUI版があります。 Macなら、homebrew を使ってインストールするのが良いと思います。 Windows の場合は、GitかMercurialに行くとバイナリーがおいてあります。
ネットにいろいろありますが例えば、CUIのものですが、git入門 (全22回)ドットインストールは動画で丁寧に解説がされています。動画ではローカル開発環境というのを作ってやっていますが、コマンドラインのgitが動くならそれでOKです。
ほかにも様々なリモートリポジトリのホスティングサービスが説明やチュートリアルを用意しています。
共同作業をするには、リモートリポジトリを作る必要があります。Dropboxやsshでloginできる普通のサーバーでもできないことはないのですが、専用のサーバーの方が便利です。自分でサーバーを立ててもよいのですが、普通の人にとっては面倒なので、以下の様なホスティングサービスを利用するのが便利です。
Gitなら、もうGitHubの方がいいと思います。Mercurialを使うならBitBucketしかないです。
プロジェクトを立ち上げると、どこかにリモートリポジトリを作り、メンバーみんながpushできるようにする。それぞれのメンバーは、まずcloneして自分のマシンにローカルリポジトリを作る。朝来て作業を始めるときにはpullし、他の人にどんな進展があったかをチェック。ローカルリポジトリへのcommitは頻繁にやる。自分の作業がキリの良い所まで来たらpushする。他の人がすでにpushしていて自分がpush出来ない時には、ひとまずpullしてからpush。みたいな感じで進んでいくのだと思います。
こんな感じで作業をするためには共同研究者全員がツールの使い方にある程度慣れていなければならず、現状はすぐには難しいかもしれません。
ひとまずは、1人の作業で使ってみて、多くの人が慣れてくれば、こういうバージョン管理ツールを使った共同研究も容易になってくると思います。