2005-01-31 13:50:45

"XML 剖析器無法處理 'apsfilter'" 後續

前一篇 今天升級 Subverison 1.1.3 忘了寫上後續了.

為什麼會有

subversion/libsvn_wc/entries.c:669: (apr_err=130003)
svn: XML 剖析器無法處理 'apsfilter'
subversion/libsvn_subr/xml.c:364: (apr_err=130003)
svn: Malformed XML: not well-formed (invalid token) at line 32

的問題呢? 原因很簡單, 在 /etc/apsfilter 這個目錄裡, 有一個目錄的檔名是 epsonp710. 但是它並不像表面上看起來那麼簡單, 因為它實際上是 epsonph^H710. 沒錯, 裡面夾雜了一個倒退鍵 ^H, 於是在 .svn/entries 這個檔案裡, 在檔名的部份就多了一個 XML parser 不認得的控制字元.

據 sussman 表示, 檔名中是不可以有控制字元的, 所以它本來就不應該出現在那裡. Subversion 目前沒有對它作檢查, 未來會把這個東西加進去. 也就是說, 包含控制字元的檔名會讓 Subversion 汪汪叫.

我怎麼解決這個問題? 因為我在 import /etc 的時候, 把目標路徑打錯了. 如果它是一個獨立的目錄的話, 直接丟 URL 讓 Subversion 進行檔案庫動作, 把它砍掉得了. 但是匯入進去的目錄裡面已經有檔案存在, 本來打算進行相反的合併, 把該修訂版所作的動作中和回來. 在這些動作都沒辦法進行的情況下, 只能把檔案庫 dump 出來, 把匯入的修訂版丟掉, 再重新建一個檔案庫 load 回來.

由 plasma 於 01:50 PM 所發表 | 迴響 (0)

2005-01-26 17:25:00

今天升級 Subverison 1.1.3

今天心血來潮, 要來作一件已經想了很久的事, 就是把 /etc 整個丟進 Subversion 裡.

svn import 跑完之後, 發現檔案庫路徑弄錯了, 打算把它取消掉. 先 checkout 成工作複本, 然後再 merge 回去, 結果得到以下的錯誤訊息:

subversion/libsvn_wc/entries.c:669: (apr_err=130003)
svn: XML 剖析器無法處理 'apsfilter'
subversion/libsvn_subr/xml.c:364: (apr_err=130003)
svn: Malformed XML: not well-formed (invalid token) at line 32

我想, 大概是 1.1.1 太舊了吧. 1.1.3 都出來了, 只是 FreeBSD ports 一直都沒有更新. 好吧, 手動改一下 ports, 更新成 1.1.3. 不過在開始編之前, 先把 ldconfig -r 裡看到的舊的, 還存在 /usr/local/lib 下的 libaprutil 給砍掉.

砍掉之後, ldconfig -R 讓它重新掃一次. 開始編... 咦? 遇到這個錯誤:

cc: /usr/local/lib/libaprutil-0.so: No such file or directory

會不會是 Apache 2 也要跟著重編呢? 重編吧. 結果還是一樣.

會不會有舊的 apr-config 還存在著? find /usr/local -name apr-config -print 找一下, 發現 /usr/local/apr, 砍掉. 再編一次, 結果還是一樣.

奇怪? 為什麼呢?

努力尋找 ldconfig 的 manpage, ldconfig -r 怎麼看, 裡面的連結都是對的. 後來執行 ls -la /usr/local/lib/*apu* 一看, 還有幾個餘孽在裡面... 而且 symbolic link 還不對. 砍掉之後, 重編就沒問題了.

我推測 ldconfig 去掃瞄時, 只會紀錄 +x 的 .so 檔, 但是這幾個並沒有 +x, 所以 ldconfig 不會紀錄下來. 但是 cc 去連結時, 還是會認得, 於是就出問題了.

編好之後, 再執行 svn, 那個 XML 的問題還是在... 得再來想要怎麼去解決這個問題.

由 plasma 於 05:25 PM 所發表 | 迴響 (0)