1

コミットするとトランザクションエラーが発生することがよくあります。私の知る限り、これらは途中で失敗したコミットの結果です。できればTortoiseSVNなどのGUIを使用して、失敗した場所で自動的にコミットを再開し、すべてがコミットされるまで再試行を続ける方法はありますか?

失敗したコミットの例:

コミットに失敗しました(詳細は次のとおりです):'/svn/namcloud/!svn/wrk/02b0f9ff-2510-a147-892a-2ee0b7b442dc/src/sites/all/modules/globalredirect/LICENSE.txt'のPUT:応答本文を読み取れませんでした:既存の接続がリモートホストによって強制的に閉じられました。(http://XXX.XXX.XXX)

4

5 に答える 5

3

完全に自動化されているわけではありませんが、TortoiseSVN-> Settings...-> Dialogs 2->Reopen commit and branch/tag dialog after a commit failedチェックボックスがあります。これにより、煩わしさが少し軽減され、ログメッセージが自動的に復活します。

「既存の接続がリモートホストによって強制的に閉じられた」ということはRST、TCP/IP接続に沿って戻ってきたことを示している可能性があります。これは、あなたとリモートホストの間のあらゆるものによって生成される可能性があります。

Wiresharkのようなものをつかんで、すぐにわかるものがあるかどうかを確認することをお勧めします。(この種の診断は、慣れていない場合は注意が必要ですが、同じように簡単に調べる価値があります。)

AHが提案したように、サーバー管理者に連絡することをお勧めします。接続タイムアウトの証拠がWebサーバーまたはファイアウォールのログに表示される可能性があります。または、SSL構成ディレクティブなどですぐに明らかなタイムアウト設定が存在する可能性があります。

于 2011-09-19T23:20:50.600 に答える
3

残念ながら、使用するものや、サーバー側で使用するサポート/管理の種類を常に選択できるとは限りません。

それを回避するための「より邪悪な」方法の1つは、ツリー内のすべてのファイルを、すべてが成功するまで、何度も何度も個別にコミットするスクリプトを作成することです。

もちろん、大規模なコミットでは、ファイルごとに1つずつ、100以上のほぼ同一のログメッセージがあると誰かが不満を言うかもしれません。大規模なRCS / CVSコミットのように、人々は「更新」して、コミットとフィニッシュですが、管理とサポートが不十分であるにもかかわらず、作業を完了するために、あなたが抱えている問題と、あなたが頼らざるを得なかった「解決策」について彼らに伝えることができます。

残念ながら、特に大きなファイル、または特に「悪い」ネットワークの問題の場合、これはまだ機能しない可能性があります。

最悪の場合、プロジェクトの他の全員もスクリプトを要求します。

または、誰かがあなたを「解雇」する可能性があると思います。しかし、それはおそらく、目標を達成するためのあらゆる努力を妨害し、物事を成し遂げるために彼らの障害を克服しようとするときにあなたに「説明責任」を負わせるような環境で働くよりも良い結果でしょう。

于 2012-06-04T22:01:11.170 に答える
2

SVNの「トランザクション」または「アトミックコミット」はまさにそれです-すべてまたは何もありません。したがって、 auto_resumeはありません。できることは、最初からチェックインを開始することだけです。

より良い解決策は、適切なサーバー管理者に相談して原因を調査して修正することです。症状だけを治すことは決して良い考えではありません。

于 2011-09-19T22:39:09.060 に答える
2

TortoiseSVN->設定...->ダイアログ2->コミットが失敗した後、コミットとブランチ/タグダイアログを再度開きます

この機能は削除されたと思います。TortoiseSVN1.7.11ビルド23600にこのオプションが表示されません

于 2013-02-18T17:48:48.720 に答える
0

問題は、一部のネットワークプロバイダーが短時間のタイムアウト後に接続を切断することです。中国のホテル(またはカナダのロジャーズ)にあなたが望むすべてを不平を言ってください、彼らはそれを修正するつもりはありません。残念ながら、コミットが中断されると、すでにアップロードされているすべてのファイルが失われます。したがって、コミットを完了することはできません。

于 2018-12-08T14:52:41.987 に答える