kivyLauncher と DropSync は相性良いぞ

本家 DropBox クライアントで頑張ってたが耐えられなくなって…。

kivyLauncher アプリケーションは、android 機の /sdcard/kivy にスクリプトフォルダを置く。置くだけで動く。ので元々「フォルダ同期」と相性が良い。

のだけれども、本家 DropBox の android クライアントは PC でハードディスクとクラウド側のドライブが完全にミラーになるのとは違って、一個一個(複数選択は出来るにせよ)「エキスポート」を手動で繰り返すことしか出来ない。まぁコレ自体は本来は「ストレージが限られていたスマホ向け」の設計としては致し方がない、ということ。

DropSyncの紹介は結構見つかると思う。自動翻訳っぽいやや不自然な日本語の紹介文の一部:

双方向自動同期は、最初から公式Dropboxアプリの中心的な機能でなくてはなりません。 いずれにせよ、その機能は搭載されていません。 Dropsyncはその公式アプリに足りない機能を補います。

DropSync が「スマホ向けとしてよく出来てる」のは、PC での同期とは反対に「個別フォルダ同期」が基本スタンスなこと、だろうね。DropBox は無料アカウントだって 3GB 使えるんだから、少ない SD カードに 3GB もガシガシ放り込めるヒト、放り込みたいヒトはそうそうおらんであろ。

ほかにも特定パターンの同期除外や、同期の方向性(双方向/ダウンロードのみ/アップロードのみ、など)の制御も出来る。

さて。kivyLauncher との関係。「kivyLauncher アプリケーションは、android 機の /sdcard/kivy にスクリプトフォルダを置く。置くだけで動く。」わけなのだが、スマホのエディタで開発する、なんてのはバカげているわけで、

  • PC の DropBox フォルダ内で編集
  • スマホ側で DropSync
  • のうえでさらに Mercurial でソースコード管理出来たらステキ

これが理想形。

ので…

  1. BitBucket に(例えば) 4dropsync というレポジトリ作成
  2. このレポジトリを PC の DropBox 同期フォルダ(ワタシの場合は c:/Users/hhsprings/Dropbox) に clone
  3. c:/Users/hhsprings/Dropbox/4dropsync の下に android 機のツリーに似た構造 sdcard/kivy を掘ってここを DropSync の同期ポイントとする。
  4. android 機側では DropSync で「リモート」として4dropsync/sdcard/kivy、「デバイス(スマホ)」側として/sdcard/kivyを指定
  5. DropSync 設定では:
    • .kivy を PC 側に転送して logs を見たいので、「隠しファイル(ドットで始まる)除外」は外…してみます? (これは好み)
    • ↑これ外すと Mercurial の .hg を同期してしまうので、除外パターン指定に加えておく。
    • その他、**/*~ などお決まりのものは忘れずに追加しておく。

てふわけでこれで kivyLauncher アプリが何か問題起こして落っこちた場合に、スマホのせまっちい画面の使いにくいエディタで覗き込むことなく、PC の emacs で全部用が済ませられて、なおかつ SCM 管理をその場(DropBox 管理下の場所)でしちまえるぜ、ってことで、ただ一点を除き快適。

ただ一点の問題点。結構致命的でもあるんだけれど、.hg が DropBox に同期されちゃうことなのねぇ。スマホ側に同期されなくても DropBox そのものでは同期されちゃうわけ。DropBox クライアント本体では「除外」って概念がないから…。レポジトリが育ってくるとスゲー肥大してくんだよなぁこやつ…。(個人のプライベートレポジトリなら、残しておく必要のなくなった古い履歴を一掃するためにたまにレポジトリを再構築するとかするしかないかもなぁ。)

DropSync の「自動同期」なんだけど、ワタシは手動更新の方がいいなぁ。結局「スマホ向け」に穏健で静かに自動同期するってポリシーなわけですよ。なので「10分に一回同期」みたいなね。自分で何してるのか、何したいのかはわかってるわけなんだから、手動で更新ボタンの方が精神衛生上良いわ。