web-dev-qa-db-ja.com

sshfs + VPN + gitを許容できる作業環境にする方法は?

現在、私が取り組んでいるプロジェクトのコードベースは、会社のサーバー上にリモートであります。そしてそれはそのようにとどまらなければなりません。また、リモートのgitリポジトリを公開することはできません。

私の現在のセットアップは:

  • VPNに接続
  • sshfsを実行してコードのコピーをマウントします
  • コードに取り掛かる
  • 完了したら:sshをリモートサーバーに送信し、そこでgitコマンドを実行します

これに伴う問題は、VPNが時々落ちるため、My sshfs mounthが壊れ、my IDEがフリーズすることです。VPNを手動で再接続することです。次にsshfsをもう一度実行して、作業に戻ります。

しかし、VPNが頻繁に落ちると、面倒になります。

ですから、何らかのキャッシュのためのsshfsの設定があり、それが機能し、VPNが回復したときにのみ変更を同期するのではないかと思います。

リモートドライバが利用できない場合、書き込むものがないため、これは意味がない場合があります。では、watchのようなものを使用し、rsyncを使用して変更を双方向で移動する別のセットアップについてはどうでしょうか(ファイルを保存するとき、またはgit pullを実行するとき)。 )

環境全体を再現して「ローカル」で動作させることができないため、gitcloneだけを実行することはできません(DBなど)

コードをサーバーに配置する必要があります。自分の作業をテスト/表示するには、サンドボックスであるURLにアクセスする必要があります。変更を確認するたびにgit Pushを実行できません。

9
Asgaroth

zecrazytuxは正しい -gitを想定どおりに使用しないのはなぜですか:リポジトリのクローンを作成し、リモートで作業する、変更をマスターにプッシュしますか?

変更を確認するたびにgit Push作業を「できない」理由はわかりません(理想的には、開発ブランチにプッシュし、テストされて動作が証明されたときにマージされます)-多くの人がこれを行います。その部分を自動化したい場合は、post-receiveフックを使用して変更を環境にデプロイすることもできます。
(あなたは明らかにこれをしたくない、しかしあなたは理由を何も与えていないので私はあなたの前提を拒否します問題。)


率直に言って、信頼性の低いネットワーク接続を「許容可能」にするためにできることは何もありません(特にネットワークファイルシステムをマウントしようとしている場合)-上記のようにリモートで作業し、システムにSSHで接続して直接作業することができます(screenはあなたの友達です)、または根底にあるネットワークの不安定性を調査して修正します。
「それを許容できるようにする」ために他のことをしようとすることは、無益な練習です(「ハリケーンの中のカクテル傘」を考えてください)。

2
voretaq7

私はこのsshfsオプションを使用して、待ち時間を最小限に抑えています。

sshfs -o Ciphers=arcfour,compression=no,nonempty,auto_cache,reconnect,workaround=all [email protected]:/usr/local/gitdev/ ~/dev/code

自動キャッシュとarcfourチッパーを使用した再接続フラグ、すべてのsshfs回避策があります。

あなたはsshfsマニュアルでそれらのオプションについて読むことができます、私はそれらの最も速いsshfsオプションを少なくとも私のセットアップに見つけました。

ETA:sshfsパフォーマンスの詳細については、こちらをご覧ください sshfs performance

0
diamonddog