無料テキストエディタとMercurialを使って便利に小説を書く方法

ノートと本
chloestrong / Pixabay

 バージョン管理システムというものをご存知でしょうか。少し長い字面ですが、結局のところ名前の通り、ファイルのバージョンを管理するシステムです。
 たとえば、文書を加筆修正したとき、その加筆修正前のファイルを残しておき、変更日時だったりVer2などとファイル名の末尾につけて、新規保存することがあると思います。
 これを、新しいファイルをいちいち手動で作ったりしてややこしいことにならないよう、そういった変更履歴(バージョン履歴)を管理しやすくするのがバージョン管理システムです。事務などではまだ浸透していませんが、ソフトウェア開発などでは多く使われています。
 それで、このバージョン管理システムとテキストエディタを組み合わせて小説の執筆をしてみたところ、割と便利だったので紹介します。

広告

目次

準備0: 事前知識

バージョン管理システムについて

 バージョン管理システムとは、上にも書いたとおり、ファイルのバージョンを管理するシステムのことです。その中でも分散型バージョン管理システムとしては、GitとMercurialなどが有名だと思います。
 バージョン管理システムがどう便利かなどは、イラストつきで分かりやすく解説なさっている他サイトを見たほうが分かりやすいかもしれませんし、書いても導入文に書いたぐらいのこと程度になりそうですので、分かりやすく画像も交えて解説されているリンクだけ貼って省略します。

 とどのつまり、小説を執筆するという作業に関していえば、その内容をどう書き換えたかの管理をしやすくできるツール、ということです(もちろん、小説執筆に限定せず、ファイルの変更履歴の管理に役立てることができます)。
 これを使うことで、「前のほうが良かった気がするが前の文章はどんなものだったか」と確認したいときなどに、
 なお、この記事では、小説を書くという作業の性質との兼ね合いから、主にMercurialを使った方法をご紹介します。
 いちおうGitを導入したい方向けにも少しだけGitについても書いています。

 なお、GitとMercurialなど、バージョン管理システムの中でも分散バージョン管理システムと呼ばれるものは、分散してバージョンを管理できます。

 原理としては、次のようなものになります。

 まず、バージョンの変遷を記録したものであるリポジトリについて。
 リポジトリは、フォルダのようなものです。ただし、バージョンの管理や、そのコピーやダウンロードなどがしやすくなる機能が追加されている、と解釈しておくとわかりやすいです。
 分散バージョン管理システムにおいて、分散というぐらいですから、リポジトリは複数存在します。
 Web上に作成し、公開されたり、管理の中心となるものをリモートリポジトリと呼びます。
 そして使用者がPC上に、リモートリポジトリからダウンロードしたり、リモートリポジトリにアップロードするために作成するのが、ローカルリポジトリです。

 更新があったり、元のバージョンから草分けして試験的な文章などを追加した、別バージョンを作ったりした場合、まずローカルリポジトリを変更し、それをリモートリポジトリにアップロード(この操作をPUSHというようです)して、予定を反映します。
 そして、ローカルリポジトリを別のところに作りたくなったら、リモートリポジトリからデータを引っ張ってくる(この操作はそのままPULLと呼ばれます)、というプロセスになっています。
 複数のローカルリポジトリがあるなら、どこの内容を優先させるのか、どう統合するのか、というのは、マージという操作で行われます。
 これによって、色々な変更内容を反映させて文書やソースコードを作成していくのが分散バージョン管理システムなのです。

 これの利点として、

  • Web上の中心リポジトリ(リモートリポジトリ)にバックアップを取っておける

 ということの他に、

  • 複数人での管理が可能である

 ことがあげられます。
 これはソフトウェア開発のみならず、本の執筆などでも、役立つのではないかと個人的には思います。

 以上が、だいたいのバージョン管理システムの概要です。 

バージョン管理システムとテキストデータは相性が良い

 基本的に、テキストデータ、つまり、テキスト形式を基本として記録され、読み込めるデータは、バージョン管理システムと相性がいいと私は思っています。

 なぜかというと、例えば画像のような、専用の形式でデータが記録されるバイナリデータでは、たとえばメモ帳で開いた場合、よく分からない記号の羅列が表示されるなどして、人間の目ではチェックが難しく、また差分を表示してくれるソフトにも、その形式のファイルをテキスト形式など、人間の目に分かりやすい状態で表示できるような機能が必要になるからです。
 そして、多くのバージョン管理を補助するソフトでは、バイナリファイルをそのファイルの意味を人間の目に分かりやすいように変換する機能を持っていません。

 対して、テキストファイル形式であれば、XMLやJSON、HTMLのような、ちょっと読みづらい場合もありますが、基本的に人間の目に読める形で保存され、そして読み出すことができます。画像の読み込みにおいて使われるような、特別なライブラリもしくは処理は必要ありません。
 ですので、バージョン管理システムとテキストデータは、バイナリデータに比べれば、基本的に相性がいいといえるでしょう。

 小説のような形式のものであればなおさら、その管理はしやすくなります。MarkDownといった形式も併用すれば、可読性の高いまま、HTMLなどに容易く変換できる形式でテキストを書くことが可能です。
 またそもそもHTML形式はテキストデータですので、HTML形式で小説を書くときにも役立ちます。
 個人的には、このように、小説、その中でも特にWebに公開すること前提の小説の管理によく向いていると思っているのです。

 最近では古参のVerticalEditor以外にも縦書きのテキストエディタも出てきましたので、縦書きでテキストファイルを編集する環境も整ってきています。

Mercurialとは?

 Mercurialとは、バージョン管理システムの一種です。
 同種のシステムで有名なのはGitですが、Mercurialもそれなりに使われています。
 GitHubではGitが主ですが、それよりも個人的にはいい感じのサービスだと思っているBitBucketでは、Gitのほかに使えるシステムとしてMercurialが採用されています。

 また、プラグイン的なもの(hg-git)を導入することで、Gitのリポジトリ(保存領域)にデータをPUSH(保存)して利用することも可能です。

なぜメジャーなGitではなくMercurial?

 ひとえに「ロールバックをあまりできないようになっている」からです。
 Gitでは、以前の変更点へのまき戻し操作が、Mercurialよりも簡単に行えるようになっています。
 要するに、「今はどのバージョンで、どのように変遷させたか」という情報が、まき戻しによりごちゃごちゃになる可能性があるということです。
 Mercurialの場合は、まき戻しはできるのですが、直前の変更へのまき戻ししかできないようになっています。
 ですので、ロールバックのややこしさがなくなります。
(ちなみに、この点が私の性分に合い、私は主にMercurialを使っています。私は自分を「色々ごちゃごちゃしそうなシステムを使うとごちゃごちゃさせてしまう生き物である」と思っているので、それの原因になりそうなものが元から排除されているのは助かります。まあそもそもロールバック操作をしないようにはしていますが…)

 そして、この記事で管理の対象としているのは、題名の通り「小説」です。
 私見ですが、小説を書くときは、変更履歴を残して、どのような記述をして修正したか、どのような文を書いたかを残しこそすれ、書いたものをまき戻すということは、少ないのではないでしょうか。
 過去の文から表現を持ってくるにしても、それは昔のバージョンを参照して、その中からコピー&ペーストなどで、今のバージョンに持ってくるほうが、それまでの変更を残したままでいられるのではないかと思います。

 あと個人的に、Mercurialって名前と、コマンド名であるhgというネーミングが好きです。GitはGitというシステム名でコマンド名もgitなんですが、なんていうかこう…語感が、どうしてもMercurialとhgがいいような気がしてしまって…。Mercurialの清音な感じがすきなのかな。hgはでも、gってはいっているのですが…ううむ、自分の感性ながら謎です。まあ自分ながら周りの影響も受けやすいので、そのうちこの感覚も変わっていくかも?

テキストエディタとは

 テキストエディタとは、その名前の通り、テキストファイルを編集できるソフトです。
 代表的なソフトとしては、最近はAtomやSublime Textが人気があります。日本で古典的な人気を博しているものとしては、TeraPadやSakura Editorなどがあります。
 メモ帳も、機能が少なくはありますが、このテキストエディタの一種です。最小限テキストファイルを読むにはメモ帳があれば何とかなります(読みやすいかは別として)。
 ですから逆に、テキストエディタを「多機能なメモ帳」と考えたほうが分かりやすいこともあるかもしれません。

 一応、使いやすいというか、このあたりがいいのではないかな、と思っているテキストエディタをいくつか、公式サイトもしくは紹介をしているサイトへのリンクつきで以下にあげておきます。

 ちなみに、TeraPadは長く歴史があり、愛用している人も多いと思われるものなのですが、2012年以降更新がないようですので、上のリストからは除外しました。
 個人的には、サクラエディタかBrackets、少し使い勝手が特殊ですが、BoostNoteあたりがおすすめです。Atomはどうやら手持ちのPCでは快適に読めないようですので、謎です。

※BoostNoteはcsonという形でメモを書く、というソフトなのですが、中身は結局のところテキストですので、テキストを書くのにも使用できます。少し玄人向けではありますが、使い慣れるととても便利です。
 そのうえ、基本オープンソースですので、わりと開発が活発です。
 その効果か、拡張子がmdもしくはtxtファイルからのインポートにも対応できるようにいつの間にかなっていました。そのうち個別記事を書くかもしれません。

前置き

 さて、長々と書きましたが、分散バージョン管理システムであるMercurialとテキストエディタで、小説を書くというか、変更履歴を管理しつつ小説を更新していく方法を、いよいよ書いていこうと思います。
 なお、小説の執筆ツールとしてメジャーであろうWordについては、基本的にWordのdoc、docxファイルは前述したバイナリファイルとなりますので、使わないこと前提です。
 更新日時だけ保存するのであれば、Wordファイルでもいいのですが、そうでない場合はだいたい差分も判読し難い記号になると考えられるからです。

ステップ1: テキストエディタを準備する

 なにはともあれ、テキストエディタはどれを使うかを選択して、使えるように準備するのが第一歩です。
 上の事前知識で紹介したテキストエディタであったり、メモ帳でも大丈夫なので、とりあえずテキストエディタを選んで、インストールされていない場合はインストールします。
 事前知識のリストのリンクは、一応インストール方法などが分かるリンクを貼ってあります。
 なお事前知識で上げた一覧以外にもテキストエディタはあります。
 この他の、TeraPad含む様々なエディタは、窓の杜ライブラリなどにも纏められていますので、そこから選んでもいいかもしれません。
 既に手に馴染むテキストエディタがある方は、そのままで良いと思います。

ステップ2: Mercurialの導入

 次に、Mercurialを導入します。
Mercurialのインストールについてはこちらにも書きましたが、この記事でも書いておきます。

手順

 まず、Mercurial公式サイト


にアクセスします。

 そこから、Download Nowリンク、もしくはOSにあったものを選びたい場合は上のDownloadページへのリンクやAnother OSからOSを選び、インストーラをダウンロードします。
 DownloadページからDLする場合は、TortoiseHg(including Mercurial)となっているものを入れておくと便利かと。TortoiseHgはMercurialをGUIでそれなりに扱うことができるようにするツールで、後述するSourceTreeをインストールできなかった場合もこちらでいろいろと作業をすることができます。

 あとは、インストーラの表示にしたがって道なりにインストールします。
 少し調べてみましたが、一応項目に目を通しつつ、Nextを押していけばいい感じ。でも、バージョンアップなどで色々と違う可能性もありますので、疑問のある場合は調べてみてください。

Gitを使う場合

 なお、メジャーなシステムであるGitを使いたい場合は、こちらなどを参考にインストールしてみてください。
 Windows版でもわりとさくさくインストールできたと思います。
 

ステップ3: SourceTreeのインストール

 次に、バージョン管理をGUIで、やりやすくしてくれるソフトであるSourceTreeをインストールします。

 何故わざわざそんなことをするかというと、バージョン管理システムはそれだけだと、だいたいコマンドで実行するものだからです。
 たとえばMercurialだと、あるディレクトリをバージョン管理しようと思った場合、コマンドプロンプトを開いて、

cd 目的のディレクトリの場所
hg init

等のコマンドを打ち込んでいく必要があるわけです。
 慣れている人はそれでもいいかもしれませんが、情報の一覧性とか、操作の手軽さや見易さ、そういうことを考えますと、見やすいGUIで操作できるソフトを入れておくほうが、大体の場合は便利なのです。というか私はすごく助かりました。

 Mercurialのインストール時についでに入ってくる、TortoiseHgでもできることはできるようなのですが、調べた限りではSourceTreeのほうが見やすそうですので、SourceTreeのインストールをお勧めすることにしました。
 また、SourceTreeではMercurialだけでなく、Gitも使用が可能ですので、その点でも良いかと思います。むしろSourceTreeを知るまで、Mercurialも使えるソフトをあまり見かけなかったといったほうがいいのかしら…。

手順

  1. SourceTreeのサイトからインストーラをダウンロードします。
  2. 流れに沿って、画面を確認しながら、Nextボタンを押していきます
    • インストール場所の変更などを行う場合はインストール場所を指定する場面がこの過程で出てきますので、その時に変更してください。私は確かデフォルトを選んだように記憶しています。
    • アップデートの内容によってはここの流れは違ってくる可能性があります
    • アトラシアン・アカウントの設定を求められる場合は、Bitbucketのアカウントを使ってください。
    • また、bitbucketとの連携設定で行う認証はBASICではなくOAuthで行うほうがいいようです。
  3. 進めていけば、Finishボタンが出るはずです。
    • バージョンによっては、そのままSourceTreeが立ち上がる可能性もあります。

 後は立ち上げれば、SourceTreeが使えます。

 図がなくともだいぶ楽にインストールできると思いますが、図付きの解説もネットにはあります。
 個人的には、私も度々参考にさせていただいている寝ログさんの記事である、


などがおすすめです。こちらはGit前提の記事ですが、インストールについてはキャプチャつきで解説されてあるので、参考になると思います。

 なお、立ち上げ後のアカウント入力に備えて、あらかじめbitbucketgithubのアカウントをとっておいてもいいかもです。(bitbucketに関して、手順はのちのち説明します)

ステップ4: リポジトリの作成(もしくは指定)

 次は、リポジトリの作成を行います。

 リポジトリは大体フォルダ単位で管理します(中に更にフォルダがあってもよい)。
 ですので、方法としては、

  • ネット上に空のリモートリポジトリを作成し、そこからデータを引く形でPC上にローカルリポジトリを作成
  • ローカルリポジトリを作ると同時か、その後にそのリモートリポジトリを作成し、そこにバージョン管理を行いたいファイルを入れる
  • 管理したいファイルを入れた既存のフォルダをローカルリポジトリにする、もしくはローカルリポジトリを作ってそこにファイルを入れる
    • ネット上のリモートリポジトリを作りたい場合はそこからネット上に作成した完全なる空のリポジトリにPUSHする

という、大きく分けて3種類のうちどれかを選ぶことになるかな、と思います。個人的に、上に書いてきた環境を整えたなら、一番便利なのは3番目です。

リモートリポジトリを作成する利点

 先にあげた3つの選択肢には、リモートリポジトリを作成すること前提のものが2つ、オプションでリモートリポジトリを作成するものが1つあります。

 このリモートリポジトリ、バージョン管理をするのに必須かというと、そうではありません。複数端末からの管理を前提としなければ、なくても使えます。

 ただ、リモートリポジトリは、単なる複数端末からの編集ができるというだけではなく、「バックアップ」にもなります。リモートリポジトリとして、Webにファイルのコピーと編集履歴をおいておくことになりますから、もしローカルリポジトリでのデータが失われた場合も、リモートリポジトリにPUSHされていた分までは、復旧することができるのです。

 つまりは、

  • 複数端末での編集が可能
  • バックアップとして使える

 という利点があるのです。

 ですので、リモートリポジトリ作成に抵抗がないのでしたら、リモートリポジトリを作成することをおすすめいたします。

リモートリポジトリを作成する

 ネット上にリモートリポジトリを作る場合は、GitHubBitbucketをお使いになるのをお勧めします。
 どちらも有名なサービスで、また、bitbucketはSourceTreeを公開している会社と同じ運営会社ですので、組み合わせとしてはよいものかと思います。GitHub、bitbucket両方のアカウントを記録する類の機能もありますし…。
 ただ、GitHubの場合、Gitしか使えません。また、プライペート(非公開で使える)リポジトリも無料プランではどうやら作成できない模様(月7ドルを払うと無制限)ですので、個人的にはBitBucketをお勧めします。

※ただし、BitBucketはプライベート(非公開)リポジトリを無料で作成できるものの、プライベートリポジトリのメンバー人数が5人までという人数制限もありますので、それ以上の人数で非公開の状態で共同編集する場合は、料金の支払いを検討するか、自分でリポジトリを置ける仕組みを自分がコントロールできるサーバ内に作るかになると思います。
 ただ、自分でリポジトリをサーバに作成できる人には、多分あんまりこの記事とかはお役に立たない気も…しないでもないです…。多分その段階までいくと既にやってるかもしれない…。

bitbucketへの登録

 bitbucketを使うのが個人的にはお勧めなので、それについて書きます。

 bitbucketへのログイン方法は以下の二つです。

  • メールアドレスを使ってアカウント登録し、そのアカウントでログイン
  • Googleアカウントでログイン

 メールアドレスを使っての登録は、だいたいのサービスのアカウント作成と同じです。またアカウント作成は無料です。Googleアカウントと連動させたくない人などは、こちらを選ぶといいでしょう。

 Googleアカウントは、そのまま使っているアカウントでログインできます。Googleのサービスに常時ログインしている方は、こちらを使ってもいいかもしれません。

 ちなみに、このような用途のためだけでなく、オンラインストレージを利用したり、ネット上でハンドルネームで活動するときに共通して利用するような用途のために、個人情報とは切り離して使えるメールアドレスを持っていると便利ですので、メールアドレスは持っておくといいと思います。Googleアカウントを作ればGmailアカウントを作れますし、何かと便利ですので、Googleアカウントをとるのもおすすめ。

 こうしてアカウントを作成してログインすると、bitbucketのホーム画面が出てきます。ここから、リモートリポジトリの作成を行うことができます。

リモートリポジトリの作成

 最近のWebサービスは親切な表示をしているものが多いので、基本画面に従う感じで、という説明でよいだろうかとbitbucketにログインして確かめてみたら、「そういう系のUIを使い慣れてる人ならだいたいなんとかどうにかできそう」な感じの少し癖のあるものでした。
 ですので、手順を書いておきます。

  1. サイドバーにある「+」ボタンを押す
    • 押すと、新規作成メニューが出てきます。様々なものを新規作成できますが、この手順で使うのは一つです。
  2. 新規作成するものの中からリポジトリを選ぶ(英語だとRepository)
  3. 必要事項を記入する
    • リポジトリ名: 好きな名前。サービスが元は英語なので、半角英数字がいいかもしれません。
    • アクセスレベル: 非公開リポジトリ(自分以外は見えないリポジトリ)にする場合はチェックを入れる
    • リポジトリタイプ: GitかMercurialを選択
  4. 「リポジトリの作成」をクリック

 これで、リモートリポジトリの作成が完了します。
 あとはリポジトリの作成方法別に色々扱いが違いますので、次の項目からはそれぞれの手法について書いていきます。

方法1: ネット上に空のリモートリポジトリを作成→ローカルにコピーしてリポジトリを準備する

 この方法は、見出しに書いたとおりほぼそのままです。
 まず空のリモートリポジトリを作成し、SourceTreeを使ってそれをローカルにコピー。あとは、そのリポジトリとなるフォルダの中にバージョン管理したいファイルを入れれば完了です。

 多分簡単にできると思われる手順での作業(ローカルリポジトリを作成するまで)は、Bitbucketを使った場合、ざっくりと書いてみると以下のようになります。もう少し詳しい人は、別の手法でできるかもしれません。

  1. Bitbucketの「+」ボタンから、空のリモートリポジトリを作成(非公開リポジトリにしてもOK)
  2. 作ると遷移するリポジトリの概要ページの「READMEの作成」をクリック
  3. README.mdファイルの編集画面が出るので、リポジトリの用途など、何か書く場合は書いて、「コミット」を押す
  4. 出るダイアログでもコミットを押す
  5. リポジトリの概要ページdownload2のようなマークを押すとSourceTreeを使ってリポジトリがローカルにクローンすることができる
    • ※と思っていたのですが、なんか作動しなかったのでクリックしてもローカルにクローンされない場合を下に書いておきます。
    1. SourceTreeを起動し、何もリポジトリを開いていないタブを選択するか、もしくは「Ctrl+N」か「ファイル」→「新規/クローンを作成する」
    2. 「Remote」をクリック
    3. 空のリポジトリを作ったアカウント名(大体はインストール時に設定している)を選択
    4. リポジトリ一覧が出るので、作ったリポジトリを選択
    5. リポジトリ名の左に出ている「Clone」をクリック
    6. 設定が出るので、適宜自分の望むように設定する
    • 普通は自動設定されたものそのままでいいと思います

 これで、あとはローカルリポジトリにバージョン管理したいファイルを放り込み、後々書く「バージョン管理システムの管理下にファイルを追加する操作」でSourceTreeからMercurialの管理下におけば、その時点からのバージョン管理が可能です。

方法2: ローカルリポジトリを作るのとほぼ同時にそのリモートリポジトリを作成する

 方法1と殆ど同じですが、順番が違います。
 こちらでは、ローカルにリポジトリを先か、リモートと一緒に作成する方法になります。
 リモート→ローカルが方法1なら、こちらはローカル→リモートあるいはローカル=リモート、というイメージです。

 この方法での手順は、SourceTreeとBitbucketを使った場合は以下のようになります。

  1. SourceTreeにアカウントをセットしておく(新しいタブを開いて「Remote」を押すと、アカウント一覧が出ますので、そこで確認を)
    • アカウントが追加されていなければ「Remote」よりアカウントを追加を選択して、アカウントを入力してください。
    • 「Remote」のところの目当てのアカウント名に赤い四角のようなものが出ていた場合は、「右クリック」→「アカウントを編集」もしくは「アカウントを編集…」から再認証を行ってください
  2. 新しくタブを開き、「Create」を押す
  3. 「保存先のパス…」欄に保存したいところへのパスを入力
    • Windows環境では新しくフォルダを作ってそこを指定しても何故か作れなかったので、ドキュメントフォルダの下のテストフォルダ(中身は空)をまず指定したあと、その下にフォルダがあるようにパスを指定するとうまくいきました
    • 要するに、使いたい保存先フォルダを指定した後、架空のフォルダ名を\フォルダ名 という風に加えれば、そこにフォルダが生成されて、リポジトリになります。
  4. 名前: 欄にリポジトリ名を入力
  5. 名前欄の下にある使用システムが「Git」になっている場合、Mercurialを使うなら変更。
  6. 「次のアカウントでリポジトリを作成:」にチェックが入ってないなら入れる
  7. Repository Settingsにアカウント名が表示されていることを確認する。
  8. Description(説明)欄に任意の入力。空欄でも良い。
  9. 「Is Private」に、非公開リポジトリにしたい場合はチェック、そうでない場合はチェックしない
  10. 「作成」をクリック

 少しややこしめですが、結構簡単かと思います。ブラウザを開いてBitbucket上でわざわざリモートリポジトリを作成しなくても、SourceTreeがアカウントと連携してリモートリポジトリを作成してくれます。
 こうしてリモートリポジトリを作った後、ファイルをフォルダに追加して、後々書く「バージョン管理システムの管理下にファイルを追加する操作」でバージョン管理システムの管理下に加えれば、そのファイルのその時点からのバージョン管理が可能になります。

 エラーが出るときは

  • アカウントの認証が切れていないか
  • 保存先のフォルダが存在しているか、いないか(存在していないなら作成できる様子)

 を確認してみてください。

 わざわざ新しいフォルダを作るのではなくて、今までのデータを保存したフォルダをそのままMercurialシステムのリポジトリとして使いたい場合は、方法3を試してみてください。

方法3: ローカルリポジトリをまず作成し、リモートにプッシュするときはプッシュする

 ローカルの、今までのデータが入っているフォルダ(入っておらず、後から追加するのでも構わない)をそのままローカルリポジトリにします。

既存フォルダからのローカルリポジトリの作成

 実を言うとこれ、思っているより簡単だったりします。SourceTreeを使う場合は警告がなんか出ますが、TortoiseHgやコマンドラインを使うとすごく楽です。
 逆に言えば、コマンドラインやTortoiseHgを使わない場合、一寸警告にびびってしまうわけですが…。
 とりあえず、難易度順に3つのやりかたをぞれぞれ書いておきますね。

コマンドライン

 難易度的に一番上といっても、コマンドラインを使える人にとっては楽にできるのがこれです。

 コマンドプロンプト(スタートの「アクセサリ」→「コマンドプロンプト」より起動)で、

cd フォルダへのパス

 で目的のフォルダに移動。
 あとは、
hg init

 これで目的のフォルダはリポジトリになります。

 SourceTreeの管理下におくには、新しいタブの「local」を押し、そこのリポジトリ一覧にフォルダをドラッグ&ドロップするだけです。

TortoiseHg

 Mercurialのインストール時、上に書いたようにTortoiseHgごとインストールしている場合は、右クリックメニューからTortoiseHgを使ってフォルダをMercurialのリポジトリにできます。

  1. リポジトリにしたいフォルダを開いて右クリック
  2. TortoiseHgを選ぶ
  3. 「Create Repository Here」をクリック
  4. 作成ダイアログが出るので、OKか作成か、そう書いてあるボタンをクリック
  5. リポジトリが作られ、TortoiseHgが開く。SourceTreeを使う人はTortoiseHgを閉じる
  6. SourceTreeの新しいタブ(Ctrl+Nでもよい)上部の「local」を押し、そこのリポジトリ一覧にフォルダをドラッグ&ドロップする

 これで完了です。右クリックから簡単な操作ならしてくれるのは、TortoiseHgのいいところかもです。

SourceTree

 少しだけ警告が出ますが、GUIでGitやMercurialを管理するためのツールだけあって、SourceTreeでも既存フォルダをリポジトリとすることができます。
 手順は以下のとおり。

  1. Ctrl+Nもしくはマウスで新しいタブを開く
  2. 「Create」を選択
  3. 「保存先のパス: 」の「参照」から目的の既存フォルダを選ぶ
  4. 「名前: 」を指定。たいていフォルダ名が自動入力されるので、そのままでいいならそのまま。
  5. 名前の指定欄の下が「Git」になっている場合は「Mercurial」を選ぶ。「Mercurial」ならそのまま。
  6. 「次のアカウントでリポジトリを作成: 」にチェックが入っている場合はチェックをはずす
  7. 「作成」をクリック。
  8. 「フォルダは既に存在するが、リポジトリを作成するか」という感じの質問を書いた警告ウィンドウが出るので、「Yes」を押す

 これで既存リポジトリがローカルリポジトリになります。
 自動的にローカルのリポジトリとしてSourceTreeに反映されるはずですが、そうでなければ前の2つの手法と同じく、localからドラッグ&ドロップで追加してください。

ローカルリポジトリの管理下にフォルダ内のファイルを追加する

 既存フォルダをローカルリポジトリにする方法を説明しましたが、実のところこの時点では、ファイルはMercurialの管理下にはありません。
 そして、そのままリモートリポジトリにPUSHすると色々とややこしくなります。

 ですので、システムの管理下にファイルを追加する必要があります。コマンドやそれこそTortoiseHgなど、方法は色々ありますが、SourceTreeだとGUIでかなり簡単にできます。

 SourceTreeでファイルをリポジトリの管理下に追加し、それを記録する手順は以下のとおりになります。

  1. SourceTreeでリポジトリを開く
    • Createからそのままリポジトリの管理画面に遷移している場合はそのままで
  2. 右側のカラムから「ファイルステータス」→「作業コピー」を選択
    • だいたいリポジトリを開いたらそのままこの画面が開いていると思いますが、そうでない場合はカラムから開きます。
  3. 「保留中のファイルを表示,ファイルステータス順」が選択されているのを確認しつつ、Mercurialシステムの管理下に置きたいファイルにチェックを入れる
    • 一番上のチェックボックスをチェックすると一括選択が可能です
  4. 下のテキストエリアに任意のコメント(「初期化」や、「小説ファイルを全て追加」など、変更履歴にコメントとして記録されます)を入れる
  5. 「コミット」をクリック

 これでバージョン管理システムの管理下にファイルが追加されます。

ローカルリポジトリからリモートリポジトリにPUSHする

 ローカルリポジトリの管理下にファイルを追加した後、リモートリポジトリにPUSHする場合は以下のようにします(なお、SourceTreeの場合です)。

  1. PUSHしたいローカルリポジトリをSourceTreeで開く
    • Ctrl+Nか「+」をクリックで新しいタブを開き、「local」から選べば、開くことができます。
    • 今までの手順と連続で行う場合はそのままで
  2. 右上の「設定」をクリック
  3. 「リモート」タブの「追加」からリモートリポジトリの追加ダイアログを開く
  4. ブラウザからbitbucket上に空のリモートリポジトリを作る
    • このとき、README.mdは作らないで下さい。
  5. リモートリポジトリの概要画面右上に「HTTPS」という表示とセットでその右にhttps://から始まるアドレスが表示されているので、それをコピー
    • なお、これは所謂「リモートリポジトリのアドレス」と呼ばれるものです。
  6. SourceTreeに戻り、「URL/パス」欄にコピーしたアドレスをペースト
  7. 「リモート名」を設定
    • 個人的には、ここで「デフォルトリモート」にチェックを入れ、自動入力された名前のまま使うのがおすすめです
  8. クリックできるようになった「OK」をクリック
  9. 設定画面に戻るので、「OK」をクリック
  10. PUSHしたいローカルリポジトリのタブ左上にある「プッシュ」を選択
  11. 表示された内容を見て、気になるところがなければ「OK」を押す

 これで、リモートリポジトリにデータがアップロードされます。
 さて途中にも書いたREADME.mdですが、bitbucket上で作るのはおすすめしません。
 なぜかというと、リモートリポジトリとローカルリポジトリにここで差異が起こるために、一寸ややこしい作業をすることになるからです。
 bitbucket上の「README.mdを作成してください」というような記述が気になる場合は、ローカルリポジトリにしているフォルダに「README.md」、つまり同名のファイルを作り、それを先の手順と同じようにリポジトリの管理下に追加してからpushしてください。

ステップ5(ファイナル): バージョン管理システムを使ってバージョンを管理する

 最後のステップとして、バージョン更新を行ったり、差分を確認する方法などを書いておきます。
 バージョン管理システムは、「コミット」と呼ばれる作業を行うことで、コミットを行ったときのリポジトリ内の状態を記録します。
 そのファイルの状態をバージョンと考えてしまっていいと思います。
 これにより、リポジトリ内に現在の管理ファイルの状態を登録するのです。
 もちろん、それ以前にコミットを行ったときの状態も記録したままですから、「前にコミットしたとき」と「現在コミットした状態」や、「5回前にコミットしたとき」と「3回前にコミットしたとき」の、ファイルの状態の差分などもチェックが可能です。
 このような便利な機能があるからこそ、バージョン管理システムはよく利用されているともいえるでしょう。
 また、ローカルリポジトリの情報(コミット含む)をリモートリポジトリに反映させることもできます。これを「PUSH(プッシュ)」といいます。
 ステップ4で説明した方法の大半は、要するにこれらの機能を駆使したものです。

 なお、コミットでリポジトリ内の情報として追加するには、管理ファイルとしての登録もいりますが、これに関しては以下に紹介する手順内に含まれていますので、省略します。不明な場合は、コメントなどで質問いただければと思います。

 というわけで、以下にコミット、コミット同士の差分の比較、プッシュの方法を書いておきます。
 なお、これらすべてSourseTreeを使ったものになります。

コミット(更新)

 コミットの手順は以下の通りです

  1. ローカルリポジトリを開く
  2. 「ファイルステータス」→「作業コピー」、もしくは画面左上の「コミット」を押す
  3. 追加するファイル、更新するファイルにチェック(除外したいファイルがない場合は大体チェックすればいいです)
  4. 下のテキストエリアにコミットに関するメモ(「~を追加」や「~を加筆/修正」等)を記入
    • これを記入しないとコミットボタンが有効になりません
  5. テキストエリア下(画面右下)の「コミット」をクリック
  6. 問題なければ追加されて完了

 これにより、リポジトリにコミットが登録されます。なお、「ブランチ」→「デフォルト」を押すと一覧が出ます

差分の比較

 ローカルリポジトリを開き、「ブランチ」→「デフォルト」から、比較したいコミットをCtrl+クリックで二つ選びます。
 下のウィンドウに相違が表示されます。ファイルごとに見たい場合は、変化を見たいファイルの名前をクリックしてください。

プッシュ

 ステップ4の「ローカルリポジトリからリモートリポジトリにPUSHする」とほぼ同じです。
 リモートリポジトリを設定してある場合はそのままPUSHし、そうでない場合は設定からリモートリポジトリを登録します。
 あとはPUSHを押すだけ。問題があるときは画面に表示されます。

まとめ

 全体的な流れとしては、
+ 分散バージョン管理システムを扱える環境を整える。
+ ローカルリポジトリを作る(PUSH先のリモートリポジトリも好きなタイミングで作る)
+ 小説をその管理下におく
+ 適宜コミットやPUSHしてバージョンを管理する

 ということになります。使い慣れない方は少し時間がかかると思いますが、それでも便利だと私は思っています。

その他

リモートリポジトリとSourceTreeの認証

 リモートリポジトリを扱うとき、SourceTreeにおけるリモートリポジトリをホスティングしているアカウントの認証が切れているとPUSHやPULLができないこともあります。
 ですので、プライベートリポジトリからデータを引っ張ってこれない、もしくはPUSHできないという場合は、「ツール」→「オプション」→「認証」から再び認証を行ってみてください。

他人のリポジトリからファイル一式もってくるなどしたい場合

 小説などを執筆する際はあまりありませんが、共同執筆をする場合や、Webをただよっていると、たとえばGitHubやBitbucketなどでホスティングされているファイル一式をダウンロードしたい、という場合があります。
 その場合はNew TabからCloneで可能です。ただ、Cloneは最初の一回だけで、内容を更新したい場合はPULLになります。そのあたりはMergeなどまざって来る可能性があり、ここでは説明しきれません。
 そういったステップに進みたい方は、「事前知識」の項のリンクや、「バージョン管理」等で検索してみてください。難しめの知識にはなりますが、このページで解説してあることも含め、よりよくわかると思います。

その他コメントなど

 自分がやっていてなかなか便利なので、書きました。一度やってみるとかなり便利なのがわかっていただける、と…思います。たぶん。
 Mercurial+テキストエディタ+SourceTree、おすすめです。
 なお、MercurialやSourceTreeに関しまして、何かありましたらコメント欄にて聞いていただければ、私で答えられる範囲でしたら、回答できると思います。

広告

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA