#daiizメモ

Cosenseに夢中

Chromebook の ChromeDevEditor で Git したときのトラブル

Chromebookでプログラミングをするときに、かなりお世話になっている Chrome Dev Editor について書きたいと思います。

個人的には Chrome Dev Editor はとても便利なアプリだと思います。コードを書くためのエディタ機能だけでなく、以下のようなことが簡単に行えます。

Git に対応してくれているのは特に嬉しいことです。

こんなにも真剣に Git の機能を盛り込んでくれているのに、ひとつだけ残念な事態が生じていることに気づいてしまったので、ここに書いておくことにしました。

今後 Chrome Dev Editor でプロジェクトの Git 管理を始める予定の方の参考になれば嬉しいです。

f:id:daiiz:20141101173002p:plain

トラブル再現

まずは、Chrome Dev Editor(CDE) を起動し、ウィンドウ下部の左の方にある歯車アイコンをクリックします。表示される設定パネルの「Root Directory」の欄に「Google Driveの中にある適当なフォルダ」を指定し、Closeします。

f:id:daiiz:20141101175419p:plain

続いて、GitHubからプロジェクトをCloneします。ウィンドウ上部の左側の「横三本線ボタン(ハンバーガーボタン)」をクリックし、表示されたメニューから「Git Clone...」を選択します。続いて表示されたウィンドウにGitHubホスティングされている適当なプロジェクトのURLを入力します。

f:id:daiiz:20141101175952p:plain

「Clone」をクリックすると、先ほど「Root Directory」に指定したフォルダの中に GitHub からプロジェクト一式がダウンロードされます。(少し時間がかかります。)

ダウンロードが完了すると CDE の左側のフォルダ・ファイル一覧パネルに、いまCloneしたプロジェクトのフォルダが現れます。これを右クリックして、「Properties...」をクリックします。すると、以下のようなウィンドウが開きます。

f:id:daiiz:20141101180632p:plain

「Location」の欄に記載されている内容に注目してください。この値は、プロジェクトのフォルダが、Chromebook内部のどの場所に保存されているかを表しています。これをよく見ると、drive-4bda01a1e0d7d530798a08c6f0c558c7e3e8f87cというランダムそうな文字列が割り当てられていることがわかります。

Chromebook内部では、Googleドライブと同期するためのフォルダを/special/drive-ランダムな値/rootと命名して扱っていることがわかりました。同様に調べてみると、ダウンロードしたものを保存しておくためのフォルダは~/Downloads/と、USBなどの外部メディアは/media/removable/USBメモリの名称/と命名されていることがわかりました。

ここまで確認できたら、Chromebook を再起動します。

再起動後、ふたたび CDE を起動します。左側のパネルに注目してください。 先ほど Clone したプロジェクトフォルダが表示されていないことと思います。それでは、もう一度フォルダを指定して開いてみましょう。横三本線ボタンをクリックして「Open Folder...」を選択して、プロジェクトを開きます。

f:id:daiiz:20141101182904p:plain

フォルダが読み込まれて一件落着、と思いきや、再起動前にはなかった「青い印」がプロジェクト内のすべてのファイルに付いていることに気づくと思います。この印は、ファイルの内容が変更された時に表示されるもので、Git add や Git commit する必要があることを知らせています。

しかし今回の場合は、単に再起動をしただけでファイルの中身やファイル名は全く変更していません。なぜこのマークが表示されてしまったのでしょうか?
これでは、OSを起動するたびにすべてのプロジェクトのすべてのbranchにたいして Git add しなければならず、かなり大変です。うっかり電源を切れなくなってしまいます。

ためしに、フォルダ名を右クリックして「Properties...」を確認してみます。

f:id:daiiz:20141101183818p:plain

例のランダムな値も含めて、フォルダのパスは何も変更されていないことがわかりました。

回避策

このような現象を回避するために、僕は現時点では以下のようにして対応しています。

  • Chrome Dev Editor の Root Directory を 「ダウンロードしたものを保存しておくためのフォルダ(~/Downloads/)」または「USBなどの外部メディア(/media/removable/メディアの名称/)」にする。
  • Git プロジェクトはGoogle Drive(と同期されているフォルダ)内ではなく、上記の場所に Clone する。

この方法でとりあえずは問題なく開発作業は行えますが、「大切なデータはつねにクラウドストレージと同期されているので、PC本体が壊れてもOKで、USBメモリも不要!」は Chromebook の最大の特長だと思うので、改善されることを期待しています!

検証した CDE のバージョン

今回紹介した事象は今後のアップデートにより解消されるかもしれません。

f:id:daiiz:20141101185722p:plain