3

Subversion の最新バージョン (SVN v1.7.5) を使用していますが、突然更新できなくなりました。更新しようとすると、次のようになります。

E235000: 1538 行目でアサーションが失敗しました

これにより、既存の作業コピーを更新できなくなります。何か提案はありますか?

4

1 に答える 1

5

特定の条件が誤って無効としてマークされるノード処理にバグがあります。

あなたの最善の策は、SVN をゼロから再構築することです。Apache.org からソースをダウンロードし、ソースに次の変更を加えます。

$ diff -u update_editor.orig update_editor.c 
--- update_editor.orig 2012-04-26 13:02:08.000000000 +0900
+++ update_editor.c  2012-05-30 02:27:24.000000000 +0900
@@ -1578,9 +1578,8 @@
     /* When the node existed before (it was locally deleted, replaced or
      * edited), then 'update' cannot add it "again". So it can only send
      * _action_edit, _delete or _replace. */
-    SVN_ERR_ASSERT(action == svn_wc_conflict_action_edit
-                   || action == svn_wc_conflict_action_delete
-                   || action == svn_wc_conflict_action_replace);
+    ;
+
   else if (reason == svn_wc_conflict_reason_added)
     /* When the node did not exist before (it was locally added), then 'update'
      * cannot want to modify it in any way. It can only send _action_add. */

最後に、次のコマンドを使用してクライアントのみ (サーバーはビルドしない) をビルドできます。

./configure \
--without-berkeley-db \
--without-apache \
--without-apxs \
--without-swig \
--with-ssl

make

make install

「make install」コマンドの代わりにsrc2pkgcheckinstallなどのツールを使用すると、後で簡単にアンインストールできるようになります。このパッチは理想的ではありませんが、仕事は完了します。

ソース:

于 2012-06-07T16:46:25.950 に答える