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


9

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

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

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

これの問題は、VPNが時々落ちるので、私のsshfsマウントが壊れて、私のIDEがフリーズすることです。私が行うことは、手動でVPNを再接続し、sshfs再度実行して、作業に戻ることです。

しかし、VPNより頻繁に落下するので、それは迷惑になります。

だから、私は何らかのsshfsキャッシュのための設定があり、それが私に働き、VPNが戻ったときにのみ変更を同期するのではないかと思います。

リモートドライバーが利用できない場合、何も書き込む必要がないため、これは意味がありません。では、watchある種のものを使用rsyncし、双方向に変更を移動するために使用する別の設定についてはどうですか(ファイルを保存するとき、またはファイルを保存するときgit pull

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

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


3
git正気な方法を使ってみませんか?リポジトリのクローンを作成し、リモートで作業します。
zecrazytux 2013年

私がgit cloneすることはできません。「ローカルで」動作するように環境全体を再現することはできないため、コードをサーバーに置いて、テスト/確認する必要があります。サンドボックスであるURLにアクセスできます。変更を確認するたびにgit pushすることはできません
Asgaroth

1
熟成、それはかなり壊れています。
EEAA 2013年

それは悪い質問ですか?インフラストラクチャを変更したり、インフラストラクチャを決定したりできるわけではないので、リモートで作業する方法が必要です。
アスガロス2013年

回答:


2

zecrazytuxは正しいです - リポジトリのクローンを作成し、リモートで作業し、変更をマスターにプッシュして、本来の方法を使用しgitてみませんか?

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


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


その理由は、レッドマインがあり、各コミットには特定のフォーマットが必要であるためです。そのため、単一のタスクでは大量のコミットは受け入れられません。また、ブラウザーに移動して更新(F5)を実行する前にgit commit + pushを実行する必要があると、現在よりも許容度が低くなります。セミコロンを逃しただけの理由で+プッシュをコミットする必要があることを想像してみてください(私は大げさですが、アイデアはわかります)
Asgaroth

we have redmine and each commit should have a specific format<-したがって、開発ブランチのフォーマットをマージすると、マージのコミットがredmineが期待する方法になります。git:-)
voretaq7 2013年

セミコロンがないことは単純です:間違いをしないでください(私は誇張ですが、アイデアはわかります-プッシュする前に、静的構文チェックを実行して、そのような小さなことを排除できます。Redmineは、マージダウンコミットを参照してください。いずれにしても、screen
開発

それは本当かもしれませんが、変更を確認するにはコミット+プッシュする必要があります。もちろん、構文チェッカーを使用しています。しかし、あなたはウェブアプリで作業するとき、何かを作業するときに多くのページを更新する必要があることを知っています。ここでも、commit + puhsは現在よりも許容度が低くなります。
アスガロス2013年

この設定ができるはずです:origin→remote clone→local clone。ローカルクローンからリモートクローンへのプッシュが行われます(Redmineによる制限を受けません)。redmineにとって適切と思われる状態になったら、リモートクローンを元の場所にプッシュできます。
Alfe、2017

0

レイテンシを最小限に抑えるために、このsshfsオプションを使用しています。

sshfs -o Ciphers=arcfour,compression=no,nonempty,auto_cache,reconnect,workaround=all user@development.net:/usr/local/gitdev/ ~/dev/code

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

これらのオプションについては、sshfsのマニュアルを参照してください。少なくとも私の設定では、これらのオプションが最速であることがわかりました。

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.