普段ソースコード管理にGithub for Macを使っているのだけど、ある時突然Commit & Sync使用とするとアプリが落ちる上に、その後何度アプリを起動しても即落ちるという現象に見舞われた。せっかくなので、どのように解決した記しておこうと思う。
アプリ再起動→落ちたときの画面を復元→再度落ちる という無限ループ
ソースを修正し、Github for Macを起動。リポジトリを選択し、historyを表示。すると落ちる。原因不明。再度Github for Macを起動するも、落ちたときと同じHistoryの画面で起動するので、再度同じように落ちる。
アプリが落ち続けている間はどうしようもないので、とりあえず起動するようにしたい。「落ちたときと同じ状態で起動されるという事は、どこかに設定ファイルなりキャッシュを保持しているのでは?」と思い、とりあえずアプリを動かすためにそれらをクリアする事にした。
アプリの削除だけでは設定・キャッシュは消えない
単純にGithub for Macをゴミ箱に突っ込むだけでは設定・キャッシュファイルは削除されない。そこで今回はAppCleanerを使う事にした。
AppCleanerにGithub for Macのアイコンを突っ込むと関連するファイルが表示される。
一覧一番上がアプリ本体なので、それ以外のファイルを選択して削除する。これで設定関連がクリアされるのでGithub for Macが立ち上がるようになった。
ローカルソースの退避とリポジトリからのクローン
設定関連が全て削除されたので、githubへのログイン情報なども再度設定する必要がある。とはいえ、リポジトリ本体はサーバーにあるので、認証情報を入れてつながってくれれば、あとは特にどうということはない。
この時、ローカルHDDを検索してローカルのリポジトリクローンが一覧として上がってくる場合があるが、異常を起こしたローカルリポジトリを再読み込みすると、再度同じ現象に見舞われてループに陥ってしまうので、読み込まないように気をつける。もちろん、異常を起こしたローカルリポジトリ以外は読み込んでサーバーリポジトリと再同期してしまって構わない。
この後github for Macでサーバーのリポジトリからローカルにクローンするが、異常を起こしたローカルのリポジトリクローンは、異常を起こした事により最新ソースがコミットされていない。その為、ローカルのソースを一度フォルダごと別名にリネームするなり別の場所に移動するなりして、最新のソースを退避させる。
その後Github for Macでサーバーのリポジトリを元あった場所にクローンする。クローンが完了したら、退避していた最新のソースをローカルのクローンに上書き。github for Macで変更を検知したらCommit & Sync。とりあえずこれで復旧できた。
結局原因はなんなのさ
というのが依然、不明のままなんだけど。最初、ソースの記述内容に特殊な文字等が紛れ込んでいて異常を引き起こしていたのかと思ったけど、再度そのソースを上書きして正常に動作しているところをみると、どうもそうではない気もする。
そのうちバージョンアップで治ってくれるのを期待するか。