VTRyo Blog

一歩ずつ前に進むブログ

bash on windowsで管理しているファイルが勝手に消えてる問題

はじめに

業務で使用している端末がWindows10のため、ansibleを叩いたりサーバにssh接続したいときのためにbash on windowsを使っています。 ついでに/home/user配下にgitディレクトリを作って、共有リポジトリの編集やらpushやらもしています。 なので形上、ローカル環境でコードの編集をしてそのまま対象サーバにコードを流したりが可能になっています。

が!

「金曜日の夜にpushしたはずのファイルが消えてる!」 という現象が、月曜日の朝にありました。 「ansibleディレクトリ配下のhostsとserver.ymlがねえ」みたいなことになってるわけです(それも何度も)

以前にも、WindowsとATOMの改行コードが問題でサーバを停止させる事態に発展したことがあったので、「またおまえかよWindows」という感じです。

環境

  • Windows10
  • bash on windows: Ubuntu14.04
  • git version 1.9.1 (Ubuntu 14.04 の公式パッケージは、1.9.1 が入ります)

bash on windows内に以下のような構成でリポジトリをpullしています。 /home/username/git/reponame

さらに、WindowsローカルのATOMで編集したいのでATOMのプロジェクトフォルダとして上記のパスをマウントさせています。 (bash on windowsの実体は/User/username/Appdata/local/lxssにある) /User/username/Appdata/local/lxss/home/username/reponame/

これでローカルのATOMからbash on windowsにpullしたファイル等を編集できるようにしていました。

bash on windowsの落とし穴?

結論から言うと、bash on windows内のファイルをWindowsから編集したりするとファイルがぶっ壊れるらしいのです。

Bash on WindowsでWindows側からUbuntu側のファイルをいじると壊れることがあるので注意

既知の問題だったこともあり、「本当になんだかな~だよね」って感じです。 なので、私のような使い方(bash on windows内のファイルをATOMで編集する)のはそもそも間違っていて、せめて逆にしろってことです。

  • windows10内にgitリポジトリ作成する。ansibleを叩くなら/mnt/c/を使ってWindows10に入って叩く

もっと快適な管理、編集方法はないのかよ

「vim使ってbash内で作業完結させればよくね?」と先輩はいいますが、個人的にbash on windowsで作業したくないのです。(端末Macにならないかな)

ベストプラクティス見つかったら追記します。