Google Codeにプッシュする大きなサイズのクローンがあり、プッシュが起動されてから認証ダイアログが表示されるまでに長い時間がかかるので、TortoiseHgプッシュデータは最初に2番目に認証されますか?
2 に答える
更新:バグが修正されました。
durin42による編集:完全に修正されているわけではありません。間近ですが、デフォルトで書き換えがオンになる前に、まだやるべきことがいくつかあります。私たちは、切り替えを本当に保守的にしようとしています。(2012年1月現在の正確なステータス。今後の更新については、Mercurialのリリースノートをご覧ください。)
TL; DR:ここではhttplibが本質的に壊れているため、この問題が発生します。人々はこれを修正するために取り組んでいます。
これは、urllibとhttplibの動作方法の不幸な副作用です。httplib / urllibは認証をプリエンプティブに送信しませんが、これは残念なことです。
良いニュースは、これを修正するための進行中の作業があることです。悪いニュースは、合理的な動作にするには、本質的にhttplibを完全に書き直す必要があるように見えることです。特に、httplibは半二重であり、(早期応答を検出するために)着信パケットをピークする方法がないため、ダイジェスト認証プロンプトを取得する前に、最初に要求を送信する必要があります(ダイジェスト認証の使用を想定しています。最良のオプションです)。一部のサーバー実装は、401 Authorization Requiredを送信するとソケットを閉じることさえあります。これは、パイプの破損エラーを発生させることにより、実際にはhttplibを完全に破損します。hg 1.4にあるその問題の回避策を提出しましたが、これはユーザーの不快感を修正するだけであり、実際のパフォーマンスソリューションではありません。
サーバーからチェンジセットのリストを収集し、サーバーに表示されないローカルチェンジセットを認識し、転送する必要があることを期待しています。基本的には。と同等ですhg outgoing
。プッシュするチェンジセットを決定した後でのみ、何かを書き込む必要があります(違いがない場合は、書き込まない可能性があります)。そのため、実際に必要になるまで認証されません。