Bitbucket

BitbucketでSublime Textの設定ファイルを管理

出先でWindows版Sublime Textの設定ファイルを参照したい

現在、自宅のWindowsデスクトップマシンと、モバイル用のMacBook Airの両方でSublime Textを利用しています。

まだまだ設定を模索中なので、作業中にどんどん設定が変わっているので、外出中にWindowsでの変更内容を参照したいことがしばしばあります。

方法としては、設定内容をどこかのクラウドサービスにメモしておくとか、ファイルそのものをDropboxにコピーするとか、何ならDropboxにハードリンクを作っておくとか色々考えられますが、いまいちしっくり来ませんでした。

そこで、設定ファイルをGit管理し、どちらの端末でも参照できるようにすると同時に、差分を取れるようにすることを考えました。

なお、以下はSublime Text 3前提です。

Gitのインストール

たぶん、ここでOSに合わせたインストーラ落とせば大丈夫です。

Bitbucketに既存の設定ファイルを追加

BitbucketとかGithubを始めよう的な記事を見ると、とりあえずリモートリポジトリ作ってローカルにクローンせいというようなことが書いてあります。

Gitの仕組み上、「本体」はリモートであってローカルではありません。私はリモートリポジトリに変更をコミットさせていただきお伺いを立てるワンオブ開発者です。例え他の開発者がいなくとも。

しかし、作成した空のリモートリポジトリを、Sublime Textの設定ファイルがあるフォルダにクローンしようとすると失敗します。ローカル側のフォルダは空である必要があるためです。

既存の設定ファイル群をどかして、クローンしてから戻してやればいいような気もしますが、コマンドラインから既存のファイルをリモートリポジトリに追加できるようなのでやってみました。

既存のファイルをリモートリポジトリに追加する

これは、手順としては次の通りです。

  1. 既存のファイルが存在するフォルダをGit管理下に置く
  2. 既存のファイルをコミット対象とする
  3. 既存のファイルをコミットする
  4. コミットされた変更されていないファイルをリモートへプッシュする

1〜3

上記を参考にしました。

まず、Windowsなら、「すべてのプログラム」からGit shell、Macならターミナルを起動します。

次に、カレントディレクトリをSublime Textの設定フォルダに移動します。

Bitbucketで管理すべきフォルダは、Windows 7ならc:\Users\MM\AppData\Roaming\Sublime Text 3\Packages\User、Macなら/Users/user/Library/Application Support/Sublime Text 3/Packages/Userです。

コマンドは、Winならcd "c:\Users\MM\AppData\Roaming\Sublime Text 3\Packages\User"。フォルダパスにスペースが含まれているので、二重引用符で括る必要があります。ペーストは右クリックメニューからできます。

Macならcd /Users/user/Library/Application\ Support/Sublime\ Text\ 3/Packages/User。ターミナルにフォルダをドラッグ&ドロップすると簡単です。

以下は共通です。

  • git init
  • git add .
  • git コミット -m "message"

messageの部分は任意のテキストです。

これで、既存のフォルダと設定ファイル群がGitの管理下に入り、コミット対象として追加されました。

4

次に、ブラウザでBitbucketのウェブサイトにアクセスしてログイン、リポジトリを作成します。アクセスレベルをプライベートリポジトリにし、リポジトリタイプはGitを選択します。先に作っておいてもいいです。

新規リポジトリページにアクセスすると、以下のような内容が表示されます。

新規リモートリポジトリ

ここで「I have an existing project」をクリックすると、以下のようなコマンドが表示されます。

cd /path/to/my/repo
git remote add origin https://masafumi_moriyama@bitbucket.org/masafumi_moriyama/sublime-text-3-win.git
git push -u origin --all # pushes up the repo and its refs for the first time
git push -u origin --tags # pushes up any tags

1行目はカレントディレクトリの移動です。「/path/to/my/repo」の部分は適宜コミットすべきファイルのあるフォルダを指定するのですが、もうできているのでやらなくていいです。

2〜4行目を順に実行すると、すべてのファイルがBitbucket上のリモートリポジトリにプッシュされます。

別の端末から参照

リモートリポジトリに置かれたファイルは、Bitbucketウェブサイトで閲覧したり、別の端末でクローン(ダウンロード)できます。

例えば、リポジトリページ左メニューの「ソース」にアクセスすると、プッシュされたファイル一覧が表示されます。

ファイル一覧

この中のファイル名をクリックすると、内容が表示されます。

ファイル内容

変更してからコミットすると、SourceTreeでも表示され、ファイルや属するフォルダを開いたりできます。

SourceTreeでの表示

また、ウェブサイトからクローンすれば、全てのファイルが指定したローカルフォルダにダウンロードされます。

クローンメニュー

これで、重要な変更があるたびにコミットすれば、MacからもWinの設定ファイルを参照できます。Keymapはともかくとして、SettingはMac/Winで互換性があるので、クローンして上書きしてもよいでしょう。

個人的なバージョン管理に便利なBitbucketについて、Githubと比較

GithubとBitbucket

Gitなどのバージョン管理システムは、ソフトウェア開発者でなくても役立ちます。

自分でサーバーを立てずにバージョン管理システムを利用できるホスティングサービスとしては、現在、GithubとBitbucketのふたつが主流です。

さらに、無料アカウントでは全てのリポジトリ(バージョン管理用データベース)が公開になるGithubに対して、Bitbucketでは無料で非公開のリポジトリを作成できるため、公開を前提としない用途では、Bitbucketを利用すべきです。

しかし、Bitbucketは関連する固有名詞が多くて混乱したので、Githubとの対応表を作ってみました。

Bitbucket github
運営元 Atlassian Pty Ltd. GitHub, Inc.
アカウント Atlassian account Github account
サポートするVCS Git / Mercurial Git
管理用アプリケーション SourceTree Github Desktop
プライベートリポジトリ 無料 有料アカウント
Wiki Bitbucket wiki Github Wiki
スニペットホスティング なし Gist
ウェブサイトホスティング なし Github Pages

補足

SourceTreeはBitbucket以外も管理できる

SourceTreeはAtlassianが提供するアプリケーションですが、Bitbucketに加え、GithubやStashといったサービスにホストされたリポジトリも管理できます。

個人的には、SourceTreeのインターフェースは玄人向けっぽすぎて苦手なのですが、Github Pagesも管理できることを考えると、これ一本に絞ったほうが楽かもしれません。

Bitbucket Wikiは非公開にできる

当たり前のようですが重要なポイントかと思います。実は、単に個人用Wikiサービスとして使うだけでもなかなか便利なのではないでしょうか。

小説の原稿をBitbucketで管理し、資料をプライベートなWikiにまとめるという使い方はすぐに思いつきます。まあ、そうすると資料自体はGitで管理できないわけですが、Wiki Linkが(多分)使えることは利点といえます。

なお、Bitbucket Wikiではmarkdown / creole / rest / textileが利用できます。MarkdownではFenced Codeblockが利用できるので、たぶんGitHub Flavored Markdownというか、Github Wikiの記法でいいのでは。

まとめ

Git入れてAtlassianアカウント取ってSourceTreeインスコしたら使える。