Subversion の最新バージョン (SVN v1.7.5) を使用していますが、突然更新できなくなりました。更新しようとすると、次のようになります。
E235000: 1538 行目でアサーションが失敗しました
これにより、既存の作業コピーを更新できなくなります。何か提案はありますか?
特定の条件が誤って無効としてマークされるノード処理にバグがあります。
あなたの最善の策は、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」コマンドの代わりにsrc2pkgやcheckinstallなどのツールを使用すると、後で簡単にアンインストールできるようになります。このパッチは理想的ではありませんが、仕事は完了します。
ソース:
SVN ソース: http://subversion.apache.org/
サーバー コンポーネントを使用せずにソースから SVN クライアントのみをビルドする: http://www.tek-tips.com/viewthread.cfm?qid=1249332 :
SVN 1.7.5 の問題を修正するためのパッチ http://dqn.sakusakutto.jp/2012/05/svn_E235000_In_file_subversion_libsvn_wc_update_editor.c_line_1583%20.html