iCloud管理下のフォルダでgitリポジトリをクローン ⇄ rm -rf 繰り返したら、覚えのないファイルが生成されつづけて困った話
私は普段MacBookAirで開発を行っており、データはほぼ全てiCloudと同期を取っている。
そのおかげでクリーンインストールからの復元も簡単なわけだけど、開発中のリポジトリもiCloud管理下に置いた結果、えらく困ったことが起きた。
話せば長いのでざっくり説明すると、
- iCloud管理下のDocumentフォルダで
git clone
とrm -rf
を繰り返していたら、覚えのないファイルが大量に生成されるという現象が発生 - リポジトリをiCloudの管理外に置いたら解決した
- gitのリポジトリ(というより同名ファイル?)の削除と復元を短時間の間に繰り返すと、iCloudとの同期が取れなくなることがある模様
- 開発中のリポジトリはiCloudで管理しない方が良さそう
というお話。
発生した現象:ローカルリポジトリに知らぬ間にファイルが増えている
GitHub上のとあるリポジトリを、自分のMacのDocumentフォルダ下にクローンしたのだが、いろいろエラーが出たりしたため、何度かリポジトリをrm -rf
してgit clone
し直すということを繰り返した。
そのうち問題が解消されたようだったので、ひきつづきコードエディタで開発を進めようとしたところ、ふと気づいたら知らないファイルが大量に生成されていた。
どうやら既存のファイルと同名のファイルが増えているようで、"Gemfile 5"とか"~~ 3.rb"のように、既存のファイル名にスペースと数字が付加されていた(下図参照)。 ちなみにファイルの中身は既存のファイルとまったく一緒だった。
なんだろうと不思議に思いつつ、増えたファイルを全部削除したのだが、しばらくするとまた同じようなファイルが増えている。
仕方ないのでローカルからリポジトリごと削除して再度クローンしたが、それでも直らない。
他のアプリを全て終了してみても、Macを再起動しても、果てはMacのクリーンインストールまでしてみたが、それでも症状は改善しなかった。
リポジトリをiCloud管理外に置いたら直った
色々試してもうまくいかず困っていたところ、同じフィヨルドブートキャンプで勉強中の@imaizumimrさんから、「iCloudとの同期が取れてないのでは?」との指摘をいただき、こんな参考記事を教えていただいた。
リポジトリを置いていたDocumentフォルダはiCloud管理下にあるので、その可能性はありそう・・・。
と言うことで、ホームディレクトリ直下(iCloud管理外)に新しくディレクトリを作り、そちらにリポジトリを置くようにしたところ、知らないファイルが増えることは無くなった!
考察
今までもソースコードはiCloud管理下のフォルダに置いていたが、今回のように同期が取れなくなることはなかったと思う。
いつもと違う点としては、リポジトリをrm -rf
してgit clone
し直すというのを何度か繰り返したことくらい。
短時間に同名のファイルを消したり復元したりを繰り返すと、iCloudの同期が狂うということか?
まとめ
今回得られた教訓は、「iCloud管理下には開発中のリポジトリを置かない方が良さそう」と言うこと。
Document下に置くのは本当に「書類」だけにしといた方がいいのかも。
Dropboxなど、他のクラウドサービスではそういったことは起こらないと言う意見も聞いた。サービスごとに同期性能には差があるらしい。
でも結局のところ、継続的なバックアップ目的なら、外付けHDDを用意してTime Machineを
使うのが一番安全なのかもしれない。
Time Machineに対応したNASを用意する方法もあるらしい(下記のリンク参照)ので、そのうち試してみたい。