2006-10-26 23:51:25

svnbook 復活

也許有人發現, 中譯 svnbook 所在的 svn.ntcu.net 早就不見了. 沒關係, 還有 freebsd.sinica.edu.tw 這一台, 雖然早就沒有權限可以編輯. 但是... 為什麼前兩個月它也不見了...

昨天有人發現 (?) 了, 跑來問我, 就在某頻道講, 結果獲得廣大的回應 (感謝各位), 所以現在又有機器可以放了. 新的位址在 http://svn.stu.edu.tw/svnbook/.

這樣就會有點力氣想要更新它了.

其實以前 svn.ntcu.net 不見時就唉過了, 不過沒人理我. 反正當初也是某長輩無償提供擺放的機器, 有就有, 沒有就算了.

至於 freebsd.sinica.edu.tw, 嗯... 那台很久很久很久以前, 很神祕地我的目錄通通變成 owned by root, 完全沒辦法編輯自己目錄下的檔案. XD

所以... 再來照這篇文章來發願更新它吧. XDDDD

由 plasma 於 11:51 PM 所發表 | 迴響 (7)

2006-05-25 22:17:14

小球上廁所 II

小球要尿尿之前, 會自己跑來說 "便便", 等大人把小鴨鴨弄好, 再坐上去尿尿.

由 plasma 於 10:17 PM 所發表 | 迴響 (2)

2006-04-10 00:47:16

SVN::Mirror

好久沒動這個模組了. 其實我只是想 mirror Ingy 的 repository, 只想用其中的 Sporx 而已啊.

Anyway, 昨天改了一下, 今天跑了一下, 今天再改一下, 已經可以直接 mirror Ingy's 回來. 目前還在跑 subversion's. 不過有將近 20k revisions, 還要很久.

S::M 本身的 test 不過, 問題很類似, 都是預期有 n 個 revision, 但是結果有 n+1 個.

我用手邊已經 mirror 的 svn, 跟用來測試的 svn_test, 發現了:

/svn/
svk log -v -r11085:11095 /svn/depot
11091 - 11586
----------------------------------------------------------------------
r11091 (orig r11586):  breser | 2004-10-23 08:13:43 +0800
已修改路徑:                                  
  A  /depot/tags/1.1.1 (來自 /depot/branches/1.1.x:11086)
   M /depot/tags/1.1.1/subversion             
   M /depot/tags/1.1.1/subversion/include
  MM /depot/tags/1.1.1/subversion/include/svn_version.h

Tagging release 1.1.1 with svn_version.h matching tarball.
----------------------------------------------------------------------

r236 (orig r235)
r237 (orig r237)

/svn_test/
svk log -v -r11580:11590 /svn_test/depot
11587 - 11586
----------------------------------------------------------------------
r11587 (orig r11586): breser | 2004-10-23 08:13:43 +0800
已修改路徑:
A /depot/tags/1.1.1 (來自 /depot/branches/1.1.x:11582)
M /depot/tags/1.1.1/subversion
M /depot/tags/1.1.1/subversion/include
MM /depot/tags/1.1.1/subversion/include/svn_version.h

Tagging release 1.1.1 with svn_version.h matching tarball.
----------------------------------------------------------------------

然後我找了一個 rev 來對:

from /svn_test/
----------------------------------------------------------------------
r237 (orig r236):  xela | 2001-10-15 01:54:55 +0800
已修改路徑:
   M /depot

first draft of native class implementation
----------------------------------------------------------------------

plasma@plasmanb:~(0)> svk diff -r236:237 /svn_test/depot
Prototype mismatch: sub SVK::Util::resolve_alias: none vs ($) at /usr/local/lib/perl5/5.8.8/autouse.pm line 57.

的屬性更動:
___________________________________________________________________
名稱:svm

from svn's
------------------------------------------------------------------------
r236 | xela | 2001-10-15 01:54:55 +0800 (一, 15 10 2001) | 1 line

first draft of native class implementation
------------------------------------------------------------------------

嗯... 先記下來.

(看不懂? 我本來就只打算寫給自己看而已. XD)

由 plasma 於 12:47 AM 所發表 | 迴響 (2)

2005-06-13 09:51:27

svn.ntcu.net

blah... 好久了, 大概是回不來了.... T_T

由 plasma 於 09:51 AM 所發表 | 迴響 (0)

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)

2003-12-22 10:24:43

Subversion 0.35.1 port tarball for FreeBSD

Subversion 0.35.1 is released. And this is the tarball of my private port for subversion:

http://freebsd.sinica.edu.tw/~plasma/subversion-ports.0.35.1.tar.gz

The main difference between FreeBSD's and mine is perl binding. Pass 'WITH_PERL=yes' to enable it.

And I'm building this port with www/apache2. If you have any problem compiling with devel/apr, please try to solve any problem yourself. And remember to send me a patch. :)

由 plasma 於 10:24 AM 所發表 | 迴響 (0)

2003-12-20 16:33:05

Subversion 0.35.0 port tarball for FreeBSD

Subversion 0.35.0 已釋出. 小弟自行維護的 svn port tarball 的位置在

http://freebsd.sinica.edu.tw/~plasma/subversion-ports.0.35.0.tar.gz

請慢用.

Subversion 0.35.0 is released. And this is the tarball of my private port for subversion:

http://freebsd.sinica.edu.tw/~plasma/subversion-ports.0.35.0.tar.gz

The main difference between FreeBSD's and mine is perl binding. Pass 'WITH_PERL=yes' to enable it.

由 plasma 於 04:33 PM 所發表 | 迴響 (0)

2003-12-04 10:56:01

Subversion 0.34.0 port tarball

Subversion 0.34.0 已釋出. 小弟自行維護的 svn port tarball 的位置在

http://freebsd.sinica.edu.tw/~plasma/subversion-ports.0.34.0.tar.gz

請慢用.

Subversion 0.34.0 is released. And this is the tarball of my private port for subversion:

http://freebsd.sinica.edu.tw/~plasma/subversion-ports.0.34.0.tar.gz

The main difference between FreeBSD's and mine is perl binding. Pass 'WITH_PERL=yes' to enable it.

由 plasma 於 10:56 AM 所發表 | 迴響 (1)

2003-06-25 17:14:30

subversion 與 repos 權限

今天繼續與 svn 奮鬥.

由於架上 mod_dav_svn 後, repos 就不只自己的 svn 會存取, 所以要處理一下 repos 的檔案權限. 我的作法, 是先建立 svn 用戶與群組, 並且把 svn 用戶設為不可登入. 把 www 與我自己加入 svn 群組, SVN_ROOT 目錄裡的檔案目錄群組設為 svn, 並將檔案權限設為664, 目錄權限設為 775.

接下來要防止不當的 umask 重設 repos 的檔案. 首先先改 /usr/local/etc/rc.d/apache2.sh, 在執行其它程式前, 先設定 umask:

umask 002

接下來在 /etc/csh.cshrc 裡加上兩個 alias:

alias svn         "umask 002; /usr/local/bin/svn"
alias svnadmin    "umask 002; /usr/local/bin/svnadmin"

大功告成.

由 plasma 於 05:14 PM 所發表 | 迴響 (4)

2003-06-24 18:00:30

Subversion 與 Apache2

下午都在把 apache1 換成 apache2, 花了不少時間, 其實最主要就是要裝上 svn 的網路伺服器, 這樣我可以從公司別台機器連回自己的 nb, 省去作成 tarball 再 co 過去的麻煩.

不過 apache2 裝起來, 再裝上 Subversion 遇到了一個問題:

/usr/libexec/ld-elf.so.1: /usr/local/lib/libaprutil-0.so.9: Undefined symbol "libiconv_open"

很明顯地, 與 Subversion 的中文紀錄送交訊息 是一樣的問題. 在 /usr/ports/www/apache2/Makefile 裡的 CONFIGURE_ARGS 裡再加上一行:

--with-iconv=${LOCALBASE}

然後重編 apache2 與 Subversion 就好了.

由 plasma 於 06:00 PM 所發表 | 迴響 (2)

2003-06-19 23:07:26

debug subversion 學 gdb

前幾天 Subversion 0.24.0 放出來, 結果我無法執行 export 命令. 在 irc 與 sussman 交談, 他完全沒有這種問題. 由於不太想把 repo 拿給別人測試, 所以就自己試著 debug. 學到了幾個指令, 趁著還記得時, 趕快寫下來, 以免下次還會用到.

1. gdb svn
2. break main
3. run export file://$SVN_ROOT/svn/trunk svn
4. break export.c:close_file
5. c
6. s
7. n
8. p *((struct file_baton*) file_baton)
9. p *((struct file_baton*) file_baton)->keywords_val

解說:

  1. 以 gdb 執行 svn
  2. 設定 main() 為中斷點
  3. export file://$SVN_ROOT/svn/trunk svn 為引數, 執行 svn.
  4. 設定 export.c 檔案裡的 close_file() 為中斷點.
  5. 執行, 直到遇到中斷點停下.
  6. 單步執行. 進入副函式.
  7. 單步執行. 不進入副函式.
  8. file_baton 為 void*. 強制以 (struct file_baton*) 來看內容.
  9. file_baton->keywords_val 的內容
由 plasma 於 11:07 PM 所發表 | 迴響 (0)

2003-05-20 09:29:51

Subversion 0.23 on freebsd

這兩天有人問我, 裝 subversion 要 devel/libtool14 嗎?

NO. 前一篇的迴響已經有說了, svn 0.22.1 已修正這個問題, 所以 ports 裡的是正常的.

大概沒有特別說明的關係. 希望以上大大的 no 能明確地說明. :-)

由 plasma 於 09:29 AM 所發表 | 迴響 (0)

2003-05-10 00:01:41

Subversion 0.22 on freebsd

這一版比較麻煩. Subversion 0.22 需要 libtool 1.4, 雖然有 devel/libtool14, 但是它是蓋過原先 libtool 1.3. 而且 這兩個看起來裝的是同一個檔案, 但是產生的結果不一樣......

因為不知道怎麼處理, 所以本版請手動處理. 首先先換到 libtool 1.4:

portupgrade -o devel/libtool14 -fv libtool

然後對 ports/devel/subversion 使用以下的 patch:

===================================================================
--- distinfo    (revision 677)
+++ distinfo    (working copy)
@@ -1 +1 @@
-MD5 (subversion-0.21.0.tar.gz) = b2ad91127fb652e764b750f4c0002528
+MD5 (subversion-0.22.0.tar.gz) = 13f00c5cca1e16b62fcd9dd6acc27641
Index: Makefile
===================================================================
--- Makefile    (revision 740)
+++ Makefile    (working copy)
@@ -5,9 +5,9 @@
 # $FreeBSD: ports/devel/subversion/Makefile,v 1.28 2003/05/02 18:23:08 bmah Exp $
 
 PORTNAME=      subversion
-PORTVERSION=   0.21.0
+PORTVERSION=   0.22.0
 CATEGORIES=    devel
-MASTER_SITES=  http://subversion.tigris.org/files/documents/15/3712/
+MASTER_SITES=  http://subversion.tigris.org/files/documents/15/4016/
 MASTER_SITES+= ${MASTER_SITE_LOCAL}
 MASTER_SITE_SUBDIR=            bmah
 

然後以

portupgrade -v subversion

更新. 安裝完了之後, 可以使用

portupgrade -o devel/libtool -fv libtool

把 libtool 換回來.

由 plasma 於 12:01 AM 所發表 | 迴響 (1)

2003-04-08 12:03:34

Subversion Tips

檢查修改過的程式是否有文法錯誤:

foreach f (`svn status | awk '{print $2}'`)
perl -c $f |& grep -v OK
end

以上使用 tcsh.

由 plasma 於 12:03 PM 所發表 | 迴響 (0)

2003-03-28 10:34:22

FreeBSD port for Subversion 0.20.1

FreeBSD port for Subversion 0.20.1 is out. You could download it at here

The diff is sent to the maintainer of devel/subversion. Before use this port, you have to apply pr #50309 to upgrade apr to 0.92-alpha.

由 plasma 於 10:34 AM 所發表 | 迴響 (3)

2003-03-26 11:38:51

FreeBSD port for Subversion 0.20

因為

08:21 <@plasmabal> jabbot: msg
08:21 <@jabbot> plasmabal: from gugod: 求求你, 做個 svn 0.2 package 吧 3_3

所以就有了這個 port .

請先刪掉 devel/aprdevel/subversion, 然後再把壓縮檔裡的內容解出來.

diff 已經送回給 maintainer 了. 看看什麼時候會送 ports 吧.

由 plasma 於 11:38 AM 所發表 | 迴響 (0)

2003-03-24 21:59:45

Subversion 的中文紀錄送交訊息

剛剛在升級 Subversion 0.20, 研究出如何讓 --encoding 也能使用中文來寫. 以下是研究步驟:

  1. 首先先解開 tarball, 假設是 svn/
  2. build apr
  3. cd apr
    ./buildconf
    make all install
    cd ..
    
  4. build apr-util
  5. ./buildconf
    env CONFIG_SHELL=/bin/sh CPPFLAGS="-I/usr/local/include" \
      -LDFLAGS="-L/usr/local/lib" ./configure --prefix=/usr/local \
      i386-portbld-freebsd4.7 --with-apr=../apr --with-expat=/usr/local \
      --with-iconv=/usr/local
    make all install
    cd ..
    
  6. aprapr-util 兩個目錄砍掉
  7.  rm -rf apr apr-util
    
  8. build subversion
  9. ./configure --with-ssl \
      --with-berkeley-db=/usr/local/include/db4:/usr/local/lib \
      --with-apr=/usr/local --with-apr-util=/usr/local
    make all install
    

來試驗看看.

plasma@plasmanb:~/tmp> svn mkdir file:///home/plasma/tmp/SVN/REPOS --encoding big5 -m "建立 REPOS"

Committed revision 1.
plasma@plasmanb:~/tmp> svn log file:///home/plasma/tmp/SVN/REPOS
------------------------------------------------------------------------
rev 1: plasma | 2003-03-24 21:26:14 +0800 (Mon, 24 Mar 2003) | 1 line

建立 REPOS
------------------------------------------------------------------------

大功告成!


另外, 我的 terminal 的 locale 設定是 zh_TW.Big5, 所以上述的 --encoding big-5 可以拿掉也沒有問題.

再補充, 我的平台是 FreeBSD, 在安裝前, 請記得安裝 textproc/expat2 與 converters/iconv 兩個 port.

由 plasma 於 09:59 PM 所發表 | 迴響 (1)

2003-02-18 22:37:55

Subversion Book ch 1-3

最近很奇怪, 對 Subversion book 特別熱血.

Anyway, 剛剛把 ch1-ch3 都翻完了, 一些基本概念與日常常用命令己包含進去. 接下來先休息個兩天, 再繼續下去吧. 每天都太累也不好.

Subversion book 的中譯版在 http://freebsd.sinica.edu.tw/~plasma/svnbook/.

只要有進度, 我都會在告一段落後, 將它作成 html 送上來. 請逕自連上看看. 別再問我進度如何了, 好了就好了. :)

另, 我希望獨立完成它 (只是想證明自己也能獨立完成一件事), 所以目前先不考慮其它人的幫忙, 謝謝. :)

由 plasma 於 10:37 PM 所發表 | 迴響 (3)