12

リモートサーバーで git リポジトリを実行しています。リモートサーバーにsamba共有を設定して、ローカルのWindows 7マシンではなくそこにコードを保存できるようにしました。svn は非常に遅く、信頼性が低いため、git の使用を検討しています。私たちが git で抱えている問題は、samba 共有へのコミット/クローン/プルを実行すると、実行速度が非常に遅くなることです。Windows 7 マシンのローカル ディレクトリに commit/clone/pull を実行すると問題なく動作しますが、リモート サーバーにコードを配置する必要があります。何か案は?本当に使えました。

編集:

また、既に git gc --aggressive を実行しましたが、速度は向上していません。

4

4 に答える 4

3

SMB 共有での Git のパフォーマンスにも同じ問題がありました。残念ながら、ローカル マシンで開発コードを実行できないため、SMB を使用してリモート ディレクトリをマウントし、ローカル マシンで適切なテキスト エディターを使用してソース ファイルを編集します。

リポジトリにコミットするときに快適さが必要なので、ローカル マシンで実行される GUI クライアントを好みます。ただし、前述のパフォーマンスの問題があるため、これは少し注意が必要であり、多くの時間がかかります。

ただし、洗練された小さな回避策を見つけました。rsyncリポジトリに何かをコミットする前に、次のようにを使用してリモート ソースのコピーをローカル ハード ドライブにプルします。

rsync -az --progress --exclude ".git" dev@my.devserver.com:/home/myapp/sourcecode /Devel/portal-mirror

そうすれば、差分とコミットを実行する前に、リモート状態の完全な 1 対 1 の同期 (これを私の Git アプリのキーボード ショートカットにバインド) を実行するのに 1 秒もかかりません。魅力のように機能します。git reset --hardコミットしてリポジトリにプッシュした後git pull、開発サーバーで変更を同期します。

于 2013-07-11T15:47:24.570 に答える
3

Git は、この構成で使用するためのものではありません。F1 を入手して未舗装の道路でレースをするようなものです。

Git は DVCS、つまり分散バージョン管理です。つまり、すべての開発者がクローンを取得します。

必要なことは、その samba マシンに git サーバー リポジトリをセットアップし、http または ssh 経由でリポジトリにアクセスすることです。

GitBlitのようなプロジェクトを使用することも、 Github のアカウントを使用することもできます。

于 2012-08-23T16:09:27.757 に答える
2

php-storm と組み合わせて、git と samba で同じ構成を実行しています。その動作は非常に良好です。巨大なプロジェクトで「SourceTree」を使用しようとした場合にのみ、更新に時間がかかります。これは、(私が思うに) git がすべてのファイルをスキャンしてそうするからです。

私が試したことの 1 つは、Samba サーバーを少し調整することでした。

構成ファイル:

socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=65536 SO_SNDBUF=65536

Sambaの高速化を探しているときにその行を見つけました。

別の解決策は、samba の代わりにバックグラウンドで常時実行される 1 対 1 の同期です。おそらく、rsync を多少変更してそうすることができます。

于 2014-01-22T09:32:51.410 に答える