3

更新: 誰かが SSHFS で PyCharm を使用しようとしているのを見ましたが、JetBrains は「いいえ」と言いました。おそらくこれだけではうまくいきませんか?

私が働いているクライアントのオフィスで、SSHFS マウントされたディスクで WebStorm を使用しようとしています — 以前に SSHFS を使用したことがありません。私はOSX 10.9.2を使用しており、自作でSSHFSをインストールし、OSXFUSEをインストールしています。

いずれにせよ、SSHFS マウントは定期的にマウント解除されますが、WebStorm を使用しようとして以来、WebStorm を起動するたびにマウント解除され、SSHFS ディスク上のファイルのスキャンが開始されます — WebStorm は「外部ファイルの変更の同期が遅い可能性があります:プロジェクト ファイルを監視できません (ネットワーク マウントされていますか?)」というメッセージが表示され、ファイルを開こうとするとフリーズします。その間、SSHFS ディスクはマウント解除されました。ターミナル経由で再マウントすると、WebStorm は満足せず、フリーズするか、そこに留まります。

「既存ファイルからの新規プロジェクト」を使用して WebStorm プロジェクトをセットアップしました — SSHFS をサーバーとして使用してセットアップする方法はありますか? SSHFS ディスクへのログインとパスワード以外に、サーバー固有の情報はありませんが、おそらく入手できるでしょう。

助けてくれてありがとう — </p>

4

1 に答える 1

6

これが私の操作方法であり、おそらくあなたを助けることができます. 私が見落としていると思われる構成設定がある場合は、質問してください。修正します。しかし、全体として、これは素晴らしく成功しています。

私のビルド環境は Linux ディストリビューションに隠れていますが、開発環境は Mac デスクトップ (職場にいるとき) と Mac Air (家にいるとき) に同じ場所にあります。私のプロジェクトは膨大であり、契約上、ラップトップが盗まれた場合にアクセスできる可能性のあるマシンにコードを移動することはできません。そのため、何かを成し遂げるには ssh (および sshfs) を使用する必要があります。

家にいて仕事をするときは、手動で VPN を開始します。非常に多くのバリエーションがあるため、この部分の実行方法を知っていることを前提としています。

ターミナルを開き、次を呼び出します。

caffeinate &

コンピューターがスクリーン セーバーに入るたびに切断されるのが嫌いだからです。これがあなたが切断される理由かもしれませんか?開発中は常にこのターミナルを開いたままにします。また、端末セッションをコンピューター間で共有できるように tmux も使用しています。ともかく...

サーバーとクライアントの間にマウントポイントを設定しました。マウント ポイントがダウンしたときに実行するスクリプトがあります (独自の作業に合わせてカスタマイズします)。

umount -f /Volumes/$MOUNTDIR/
umount -f /Users/$HOMEUSER/$MOUNTDIR
mkdir /Users/$HOMEUSER/$MOUNTDIR
sshfs $HOMEUSER@@SERVERADDR:/usr/$HOMEUSER/$MOUNTDIR /Users/$HOMEUSER/$MOUNTDIR

次に、Webstorm、PyCharm、ADS、IntelliJ を起動します (私は Jetbrains のファンです)。

この時点で、$MOUNTDIR 内のディレクトリを開いて作業を開始できます。ビルドを実行する必要がある場合のヒントは次のとおりです。ローカルでビルドしないでください。代わりに、SSH を使用してサーバー上でビルド コマンドを発行 (またはスクリプトを実行) します。ビルドが実行された後の同期のオーバーヘッドは、ビルドのすべてのステップをフェッチして書き込むよりもはるかに少ない可能性があります。

VPN を失った場合にのみ切断されることがわかります。コンピューターがスリープ状態になるたびに、接続が切断されていました。カフェインはそれを修正しました。

妥当なサイズのプロジェクトの場合、おそらくこれで十分です。したがって、以下は最適化です。頭が痛い場合にのみ実行してください。

読み込み時間を短縮するために、マウントの一部ではないローカル プロジェクトを作成します。プロジェクトとして最初に開いたディレクトリのベースに作成され、書き込まれる .IDEA ディレクトリがあります。このディレクトリ内には、大量に書き込まれる多数のファイルがあり、ネットワークの速度によっては、問題が発生する可能性があります. どこに行ってもいくつかの設定を維持する必要があることを意味しますが、私の場合、大きなパフォーマンスの向上のために支払うのは小さな代償です.

したがって、これを行うため、プロジェクトにディレクトリを手動で追加する必要があります ([設定]/[ディレクトリ] の下)。しかし、巨大な API を扱う場合は、とにかくこれを行う可能性があります。インデクサーでの作業を容易にするために、参照する必要のないディレクトリを「除外」としてマークするように注意しています。私は他の何千人もの従業員と共有ディレクトリ構造で働いており、ストリームが交差しないようにしています。

現在、何千ものファイルがあり、同期が遅くなる可能性があるのは事実です。しかし、同期はアプリを離れて戻ってきたときにのみトリガーされます。正直なところ、適切なインターネット接続がある限り、それほどひどいものではありません.

これが役立つことを願っています。これをワークフローとして使い始めたら、二度と戻りませんでした。

于 2014-09-20T22:54:54.720 に答える