外部でファイルが~

  1. こんにちは。
    他エディタから移行しました。(今さらながら)アウトラインプラグイン、素晴らしい!!
    以前にも検討していたのに気づかなかった。。。

    「外部でファイルが変更されています。読み直しますか?」のダイアログを抑制できるといいのですが、
    何か方法あるでしょうか?

     |  すなふきん  |  返信
  2. Mery をご試用くださりありがとうございます。

    > 他エディタから移行しました。(今さらながら)アウトラインプラグイン、素晴らしい!!

    ありがとうございます!
    アウトラインプラグインはあまり凝ったことはできませんので、使い込むと少し物足りなくなるかと思いますが・・・^^;

    > 「外部でファイルが変更されています。読み直しますか?」のダイアログを抑制できるといいのですが、
    > 何か方法あるでしょうか?

    現在のところ抑制する方法はありませんでした。
    抑制したい、というご意見ということで今後の開発の参考にさせていただきたいと思います。

     |  Kuro  |  返信
  3. すっかり忘れていました、すみません!
    どのバージョンからだったか定かではありませんが、外部からの更新チェックを抑制する機能を搭載しておりました。

    「外部でファイルが変更されています。読み直しますか?」のダイアログで「いいえ」を CTRL を押しながらクリックすると、そのファイルについては更新チェックをしなくなります。

     |  Kuro  |  返信
  4. > すっかり忘れていました、すみません!
    > どのバージョンからだったか定かではありませんが、外部からの更新チェックを抑制する機能を搭載しておりました。
    >
    > 「外部でファイルが変更されています。読み直しますか?」のダイアログで「いいえ」を CTRL を押しながらクリックすると、そのファイルについては更新チェックをしなくなります。

    この機能ですが、Version 2.6.7では効かないようです。
    Googleドライブからファイルを開くと数分に1回のペースで表示されるで、対応されると大変うれしいです。

     |  もき  |  返信
  5. ご報告ありがとうございます。

    Ver 2.6.7 で確認してみましたが、私の環境ですと特に問題なく動作しているようです。Google ドライブは使ったことがなかったのでインストールして確認してみたのですが、問題なく想定どおりの動作をしているように見受けられました。

    Google ドライブについては知識がないもので、お手数をおかけしますが現象の確認のため、以下の情報をいただけますでしょうか?

    (1) Google ドライブでひとつのファイルを複数の人が編集している状況ですか?

    (2) それとも Google ドライブの中のひとつのファイルを自分ひとりだけで編集している状況でしょうか?

    (3) もし、(2) の場合、Google ドライブの仕様 (バージョン管理とか?) で勝手にファイルの更新日時が変更されたりすることがあるのでしょうか?

    また、お使いの Windows のバージョンと Google ドライブのバージョンも教えていただけますとなるべく近い環境を用意して検証することができますので、ご協力よろしくお願いいたします。

     |  Kuro  |  返信
  6. 横から失礼します。
    以前は本当に外部でファイルを変更していた時に出ていたのですが、バージョンを上げてから外部で変更していなくともダイアログが出るようになりました。(今使用しているのはVer 3.3.4です)

    > (2) それとも Google ドライブの中のひとつのファイルを自分ひとりだけで編集している状況でしょうか?

    こちらに近いです。
    ファイルを編集しているの一人ですが、端末は3つ利用しています。
    以前はPCでファイルを開きっぱなしにしたまま、タブレットなどの別端末でファイルを変更した後、PCで再び編集をしようとした時に表示され、とても重宝していました。
    しかし現在では、別端末でファイルを変更していなくとも、表示されるようになり、うっかり編集後未保存のファイルを読み直して変更内容が全部消えてしまったことも……

    > (3) もし、(2) の場合、Google ドライブの仕様 (バージョン管理とか?) で勝手にファイルの更新日時が変更されたりすることがあるのでしょうか?

    自分で保存しない限りは更新日時が変更されることはないように思います。
    読み直して内容が消えた(というか編集し始める前の状態に戻った)時も、更新日時は最後に更新した日のままでした。

    > また、お使いの Windows のバージョンと Google ドライブのバージョンも教えていただけますとなるべく近い環境を用意して検証することができますので、ご協力よろしくお願いいたします。

    Win10,Googleドライブ58.0.3.0 です

    よろしくお願いします。

     |  はるか  |  返信
  7. ご報告ありがとうございます。

    私のほうでも Google ドライブ: 58.0.3.0 を Windows 10 の 2 台にインストールして確認してみたのですが現象は再現されませんでした。

    Google ドライブの設定も [ファイルをストリーミングする] と [ファイルをミラーリングする] を試してみましたがいずれも問題なさそうです。

    考えられる原因をひとつずつ潰していくしかなさそうなので、お手数をおかけしますが以下の点をご確認いただけますでしょうか。

    (1) 3 台の端末はすべて Windows 10 + Mery ですか?

    タブレットが Android や iOS だったり、Mery 以外のアプリでそのファイルを閲覧したりなどがあれば、タブレット端末の情報、Mery 以外のアプリの情報を教えていただけると手掛かりになるかもしれません。

    (2) 3 台の端末がきちんと同期されていますか?

    Google ドライブは単純なファイル共有ではなく、端末内のデータを一度、サーバーにアップロードしてから各端末にデータを配信します。

    ファイルを更新してもすぐに各端末に反映されるわけではなく、同期に数秒から数分かかることもありますから、思っていないタイミングでダイアログが表示されてしまうということは考えられます。

    (3) 具体的な状況を教えてください

    例えば…

    ・特定のファイルでのみ発生する?
    ・1 台の端末のみで編集しているときにも発生する? (他の 2 台は電源オフ)
    ・1 台の端末で [上書き保存] したあとに、何もしてないのにその端末でダイアログが表示される?

    など。

    (4) Google ドライブの仕様?

    私の環境ですと、Google ドライブをインストールするとファイルシステムが自動的に FAT32 になりました。

    NTFS (Windows 10 標準のファイルシステム) と FAT32 はファイルの更新日時に互換性がありません。NTFS は 100 ナノ秒単位なのに対し、FAT32 は 2 秒単位です。

    したがって、NTFS のドライブから FAT32 のドライブにファイルをコピーすると、ファイルの更新日時は 2 秒単位で切り捨てられます。

    Google ドライブ (FAT32) のファイルを更新するだけなら問題ないはずですが、お使いのタブレット端末が iOS や Android だったりすると Google ドライブのファイルシステムが違ったりするのかもしれません。

    直接的な原因はまだわかりませんが、このあたりで気づいた点などございましたら教えていただけると調査の助けになります。

     |  Kuro  |  返信
  8. 早速ご確認して下さってありがとうございます。

    > (1) 3 台の端末はすべて Windows 10 + Mery ですか?
    > タブレットが Android や iOS だったり、Mery 以外のアプリでそのファイルを閲覧したりなどがあれば、タブレット端末の情報、Mery 以外のアプリの情報を教えていただけると手掛かりになるかもしれません。

    いいえ、PC1台(Win10+Mery)、タブレット1台、スマホ1台(タブレットとスマホはどちらもAndroid+JotterPad※ただしVer違いあり)です。

    ただ、本日ダイアログが出た時には、他の端末ではファイルを開いたり更新したりといったことはしていませんでした。
    PCでファイルを編集中、離籍している間にスリープになっており、再び戻ってきてスリープから復帰した後、表示されました。編集中で未保存のファイルです。
    以前同じような状況になった時にも、PCで編集中に他の端末でファイルを開くといったことはしていなかったように思います。「他ので開いてないのに、何でだろう?」と思った記憶があります。

    > (2) 3 台の端末がきちんと同期されていますか?
    >
    > Google ドライブは単純なファイル共有ではなく、端末内のデータを一度、サーバーにアップロードしてから各端末にデータを配信します。
    >
    > ファイルを更新してもすぐに各端末に反映されるわけではなく、同期に数秒から数分かかることもありますから、思っていないタイミングでダイアログが表示されてしまうということは考えられます。

    ここ最近はほとんど他の端末を使用することはないのですが、閲覧時にはきちんと同期されていると思います。

    > (3) 具体的な状況を教えてください
    > ・特定のファイルでのみ発生する?

    以前起こったファイルと今回起こったファイルは別のものです。

    > ・1 台の端末のみで編集しているときにも発生する? (他の 2 台は電源オフ)

    スマホは常に電源がついてますが、タブレットは電源オフでした。
    PCで編集中には同ファイルを開いてません。

    > ・1 台の端末で [上書き保存] したあとに、何もしてないのにその端末でダイアログが表示される?

    ついさっきも表示されたのですが、上書き保存した後にも表示されることがあるようです。未保存の時表示される「*」印が消えていたので間違いないかと思います。
    編集後未保存の時も上書き保存後も、毎回ではないので、何かのタイミングだとは思うのですが……
    スリープからの復帰後以外にも、Meryでファイルを開いたまま、しばらくブラウザや他のソフトなどを使用後、再びMeryに戻ると表示されることがあるようです。

    > (4) Google ドライブの仕様?

    こちらでもファイルシステムはFAT32になっています。
    Androidの方ではどうなっているのかは分かりませんが……

    いつ出始めたのか、詳細を思い出せず、申し訳ありません。
    少し前にPCを買い替えて、その時にMeryもGoogleドライブも新しいバージョンのものをインストールしたので、その後からだとは思うのですが……

    どうぞ宜しくお願い致します。

     |  はるか  |  返信
  9. ご確認いただきありがとうございます。

    私のほうでも Android のタブレットとスマホに JotterPad をインストールして、PC 側をスリープしたり 1 時間ぐらい放置したりしてみたのですが現象は再現されませんでした。

    ひとつ確認させていただきたいのですが、JotterPad は Google ドライブ (クラウド) と連携して編集する機能は課金コンテンツになっているようですが、その機能をご利用でしょうか?(以前のバージョンでは無料だったのかも?)

    その場合、普通に Google ドライブを使うのではなく、Google ドライブ API というものを経由して Google ドライブにアクセスされているはずなので、Google ドライブ API と JotterPad の仕様も関係してくると思います。

    例えば、JotterPad 側で自動保存機能やバックアップ機能が定期的に発動している、など。(私はまだ課金してないので検証できていません)

    Mery は単純にファイルの更新日時をチェックしているだけなもので、他に原因が思い浮かばないところではあります…

    タブレット、スマホの電源をオフにした状態で現象が発生するかご確認いただけると助かるのですが、さすがに今の時代、スマホの電源オフは難しいですよね。

    あと、PC 側の Google ドライブの設定が [ファイルをストリーミングする] か [ファイルをミラーリングする] のどちらになっているか教えてください。

    ミラーリングだと何かのタイミングでローカルのファイルが更新されてしまうというのはあるかもしれないので、設定次第では再度検証させていただきたいと思います。

     |  Kuro  |  返信
  10. その後、いくつか検証できたので確認事項を整理させていただきます。

    > JotterPad は Google ドライブ (クラウド) と連携して編集する機能は課金コンテンツになっているようですが、その機能をご利用でしょうか?

    以前のバージョンの JotterPad をインストールすることで検証できましたが、現象は再現しませんでした。

    > JotterPad 側で自動保存機能やバックアップ機能が定期的に発動している、など。

    ファイルを開いてない状態だと問題なさそうですね。

    つきましては、以下の 3 点をご確認いただけると助かります。

    1) Google ドライブの設定

    PC 側のタスクトレイにある Google ドライブのアイコンを右クリックして右上の歯車マークから [設定] を開き、[Google ドライブ] の項目のオプションが [ファイルをストリーミングする] と [ファイルをミラーリングする] のどちらになっているか教えてください。

    2) JotterPad のバージョン

    2 台の端末それぞれの JotterPad のバージョンを教えていただけると、近い環境で検証できるので助かります。

    それと、バージョン管理機能をご利用されているかどうかも気になります。(検証に使った JotterPad だとバージョン管理機能は課金コンテンツになっていたので使えませんでした)

    3) Mery のワークスペース機能のオン・オフ

    ワークスペース機能 (起動時に前回の作業内容を復元する機能) を有効にしているか教えてください。

    ワークスペース機能はファイルの更新日時の情報を使用するので、通常利用時の問題なのか、ワークスペース復元時の問題なのかを切り分けるためです。

    お手数をおかけしますがよろしくお願いします。

     |  Kuro  |  返信
  11. ご確認ありがとうございます。

    > つきましては、以下の 3 点をご確認いただけると助かります。
    >
    > 1) Google ドライブの設定
    >
    > PC 側のタスクトレイにある Google ドライブのアイコンを右クリックして右上の歯車マークから [設定] を開き、[Google ドライブ] の項目のオプションが [ファイルをストリーミングする] と [ファイルをミラーリングする] のどちらになっているか教えてください。

    最初に書き込ませて頂いた時は[ファイルをストリーミングする] になっていました。
    書き込んだ後、Googleドライブの設定のせいかもしれないと思い、 [ファイルをミラーリングする] に変更したのですが、その日の夜、再びダイアログが表示されましたので、どちらの設定でも起こるようです……

    > 2) JotterPad のバージョン
    >
    > 2 台の端末それぞれの JotterPad のバージョンを教えていただけると、近い環境で検証できるので助かります。
    >
    > それと、バージョン管理機能をご利用されているかどうかも気になります。(検証に使った JotterPad だとバージョン管理機能は課金コンテンツになっていたので使えませんでした)

    スマホの方はバージョン12.9.1-piとなっています。
    タブレットの方はバージョン12.10.3-piです。こちらをインストールした時点で、クラウド同期に制限がかかっていましたので、Googleドライブの同期はAutosync for Google Driveという別のアプリを使用しています(自動同期ではなく手動ですが……)。
    仕様変更でクラウド同期の機能が制限されたりなど、使いづらい方向に仕様変更されていっているため、アプリを更新せずに使っている状態です……
    JotterPadを開いた時のファイルの動きを見ていると、開いてから同期→ファイル並べ替えが行われており、同期されるまでは前回開いた時のファイル順のままなので(更新順にソートしてます)、

    > 3) Mery のワークスペース機能のオン・オフ

    オフで使用しています。

    スマホの電源を切った状態でもダイアログが出るか、確認してみたいと思います。

     |  はるか  |  返信
  12. ご確認いただきありがとうございました。

    > 仕様変更でクラウド同期の機能が制限されたりなど、使いづらい方向に仕様変更されていっているため、アプリを更新せずに使っている状態です……

    そうみたいですね。しかも初期の頃に課金したユーザーは置いてけぼりで、今は月額のサブスクリプション形式になっているのだとか…

    ひとまず、いただいた情報とほぼ同じ環境が用意できました。

    スマホとタブレットで閲覧や同期などを試してみて、PC のスリープ、Mery の放置なども軽く検証してみましたが、今のところ現象は発生してないです。

    回線速度や HDD への書き込み速度などの影響も考えられるので、明日にでも有線、無線 LAN、HDD、SSD などで詳細な検証をしてみたいと思います。

    あと、私のほうでも調査していましたところ、私の環境では再現しないのですが、他のエディターでも同様の現象が発生するという情報はみつかりました。

    【Notepad++ での問題】
    https://github.com/notepad-plus-plus/notepad-plus-plus/issues/5863

    【TeXstudio での問題】
    https://github.com/texstudio-org/texstudio/issues/614

    【Google ドライブのサポートコミュニティ】
    https://support.google.com/drive/thread/5375875/google-drive-file-stream-spurious-warning-file-modified-by-another-application?hl=en

    サポートコミュニティを見ると Google ドライブのバグという感じもしていて、どちらのアプリも現象は認識しているけど対応できていない状態っぽいです。

    でも、私の環境だと問題ないんですよね…。現象さえ再現できれば Google ドライブのバグだとしても何らかの対策は練れると思うのですが…。

    > スマホの電源を切った状態でもダイアログが出るか、確認してみたいと思います。

    お手数をおかけします。スマホもタブレットも関係ないとなると Google ドライブの問題に絞れるのでだいぶ調査しやすくなります。

    取り急ぎ、現状のご報告でした。引き続き検証を行いますので、また何かわかったらご連絡いたします。

     |  Kuro  |  返信
  13. 検証を行いました結果ですが、現象の再現には至りませんでした。

    しかしながら、以下の条件下において本件に近い現象が発生することが確認できました。

    (1) Google ドライブを [ファイルをストリーミングする] に設定する
    (2) 4 バイト以下のテキストファイルを作成する (Mery だと半角英数字 4 文字以下の UTF-8 BOM 無し、など)
    (3) Mery で上書き保存する
    (4) 別のアプリなどにフォーカスを移動してから Mery に戻す

    この条件だと現象が発生し、再現性もありました。

    ただ、はるかさんの環境ですと 4 バイト以下というわけでもなさそうですし、[ファイルをミラーリングする] でも発生するとのことだったので、上記の現象とは別かもしれません。

    上記の現象は Google ドライブの問題のようで、ファイルを保存した後に勝手にファイルの更新日時が書き換えられてしまうことが原因でした。

    具体的には、ファイルを保存した直後と、その後 (1 ミリ秒後とかでも) で、きっちり 5 ミリ秒だけズレて更新日時が書き換えられてしまうようです。

    環境やスペックの異なる複数の PC で確認してみましたが、いずれも 4 バイト以下のファイルでのみ、確実に発生しました。

    これが Google ドライブのサーバー側の問題だとすると、サーバーによってはファイルのサイズに関係なく更新日時の書き換えが発生する、ということも考えられなくないですね。

    Mery 側での対策は難しいところですが、やるとしたらファイルの更新日時を比較するときに数ミリ秒ほどの誤差は無視するようにする、といった感じになるかと思います。

    はるかさんの環境での問題が解決するかどうかは微妙なところですが、次のバージョンでは上記の対策を仕込んでみますので、また動作確認にご協力いただけると幸いです。

     |  Kuro  |  返信
  14. 検証ありがとうございます。

    > ただ、はるかさんの環境ですと 4 バイト以下というわけでもなさそうですし、[ファイルをミラーリングする] でも発生するとのことだったので、上記の現象とは別かもしれません。

    確かに、ファイルが4バイト以下ということはなかったです。

    Googleドライブ側の問題なのですね。

    何度かスマホをオフにした状態で同じ現象が起きるか試してみましたが、同じ現象は今のところ起きておりません。
    スマホがオンの場合も、毎回起きるというわけではありませんので、起きる条件が揃ってなかっただけかもしれませんが……

    色々とご対応ありがとうございます。
    また、似たような現象が起きましたら、ご報告したいと思います。
    これからも開発頑張って下さい。

     |  はるか  |  返信
スポンサーリンク