5

私たちのチームはしばらくの間Mercurialを使用しており、すべてが素晴らしかったです。私たちは皆、リポジトリのクローンを持っており、マップされたドライブを介してアクセスされるLAN上にある中央のWindowsサーバーに名前付きブランチをプッシュ/プルします。

問題は、私が最近リモートで作業を開始し、パフォーマンスが大幅に低下したことです。VPN経由でオフィスに接続し、いつものように共有ドライブにアクセスしますが、以前は20〜30秒のプッシュでしたが、現在は10分以上かかっています。

私はまともなケーブル接続(30Mpbs / 2Mbps)を持っているので、小さな変更がプッシュするのにこれほど長い時間がかかるとは思わないが、私の変更セットがいくら小さくても、多くのMBが交換されるようです(プッシュ中のネットワークアダプターの監視から) )。これは、ソースファイルの1行だけを変更した場合でも当てはまります。また、リポジトリのサイズに依存しているように見えます。リポジトリは小さいほど良いですが、「高速」になることはありません。

Mercurialプッシュの内容についてはよくわかりませんが、最終的に何を送信するかを決定するには、メインリポジトリと私のリポジトリの間で多くのやり取りを行う必要があるようです。

合計5KB未満のコードを追加した5つのファイルのプッシュを完了しました。これは、hg push -b branch --debug --time13分以上の結果です。

これはVPN経由で「正常」ですか、それともある種の重要な構成が欠落していますか?

C:\inetpub\www\app1>hg push -b mynewbranch --new-branch --debug --time
pushing to X:\app1
query 1; heads
searching for changes
taking initial sample
searching: 2 queries
query 2; still undecided: 4, sample size is: 4
2 total queries
listing keys for "bookmarks"
5 changesets found
list of changesets:
7327fd8a913d019475783693fba7afc790bba11a
967e02cbdddb844b0cf1b67b452ff8e96614daa6
b5c9166ca22e98c499d71c9a0b7da2c36649f9f5
7e30ec219db545ba9309f7b8e8b015cf2a652383
79d028c22d2bc4554092ba5bad8249c7129d3caf
adding changesets
bundling: 1/5 changesets (20.00%)
bundling: 2/5 changesets (40.00%)
bundling: 3/5 changesets (60.00%)
bundling: 4/5 changesets (80.00%)
bundling: 5/5 changesets (100.00%)
bundling: 1/5 manifests (20.00%)
bundling: 2/5 manifests (40.00%)
bundling: 3/5 manifests (60.00%)
bundling: 4/5 manifests (80.00%)
bundling: Core/Module/Desktop/Display/file1.x 1/5 files (20.00%
)
bundling: Core/Module/Desktop/Display/file2.x 2/5 files (40.00%
)
bundling: Core/Module/Individual/Display/file3.x 3/5 files (60.00%
)
bundling: Core/Module/Individual/Forms/file4.x 4/5 files (80.
00%)
bundling: Public/Module/Desktop/file5.js 5/5 files (100.00%)
changesets: 1 chunks
add changeset 7327fd8a913d
changesets: 2 chunks
add changeset 967e02cbdddb
changesets: 3 chunks
add changeset b5c9166ca22e
changesets: 4 chunks
add changeset 7e30ec219db5
changesets: 5 chunks
add changeset 79d028c22d2b
adding manifests
manifests: 1/5 chunks (20.00%)
manifests: 2/5 chunks (40.00%)
manifests: 3/5 chunks (60.00%)
manifests: 4/5 chunks (80.00%)
adding file changes
adding Core/Module/Desktop/Display/file1.x revisions
files: 1/5 chunks (20.00%)
adding Core/Module/Desktop/Display/file2.x revisions
files: 2/5 chunks (40.00%)
adding Core/Module/Desktop/Display/file3.x revisions
files: 3/5 chunks (60.00%)
adding Core/Module/Desktop/Display/file4.x revisions
files: 4/5 chunks (80.00%)
adding Public/Module/Desktop/file5.js revisions
files: 5/5 chunks (100.00%)
added 5 changesets with 5 changes to 5 files (+1 heads)
listing keys for "phases"
try to push obsolete markers to remote
updating the branch cache
checking for updated bookmarks
listing keys for "bookmarks"
time: real 833.334 secs (user 0.577+0.000 sys 0.546+0.000)

C:\inetpub\www\app1>
4

2 に答える 2

7

リポジトリへの高速ローカルアクセスを想定したモードでMercurialを使用しています。許容できるLANを介して、ただし遅延が大きい場合は、表示されている効果が得られます。レイテンシーだけではありません。このモードでMercurialを使用すると、圧縮されていないVPNを介してファイル(または少なくともデルタ)が転送されます。

代わりに、中央サーバー(現在共有ドライブを介して公開している)でhgweb.cgiまたはmercurial-serverのいずれかを構成することをお勧めします。LAN経由でアクセスする場合でもこれをお勧めします。

リポジトリの公開に関する一般的な詳細情報。

于 2012-09-20T10:24:25.230 に答える
2

VPNを介してマップされたネットワークドライブと通信する場合、ネットワークを介した遅延の増加を疑う傾向があります。コマンドに追加--profileしてhg、出力を調べたり投稿したりできますか?

于 2012-09-20T00:56:10.333 に答える