現在、私が取り組んでいるプロジェクトのコードベースは、会社のサーバー上にリモートであります。そしてそれはそのようにとどまらなければなりません。また、リモートの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を実行できません。
zecrazytuxは正しい -git
を想定どおりに使用しないのはなぜですか:リポジトリのクローンを作成し、リモートで作業する、変更をマスターにプッシュしますか?
変更を確認するたびにgit Push
作業を「できない」理由はわかりません(理想的には、開発ブランチにプッシュし、テストされて動作が証明されたときにマージされます)-多くの人がこれを行います。その部分を自動化したい場合は、post-receive
フックを使用して変更を環境にデプロイすることもできます。
(あなたは明らかにこれをしたくない、しかしあなたは理由を何も与えていないので私はあなたの前提を拒否します問題。)
率直に言って、信頼性の低いネットワーク接続を「許容可能」にするためにできることは何もありません(特にネットワークファイルシステムをマウントしようとしている場合)-上記のようにリモートで作業し、システムにSSHで接続して直接作業することができます(screen
はあなたの友達です)、または根底にあるネットワークの不安定性を調査して修正します。
「それを許容できるようにする」ために他のことをしようとすることは、無益な練習です(「ハリケーンの中のカクテル傘」を考えてください)。
私はこの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