Tag: svn

gource is so cool !!

我竟然今天才发现这个cool 极了的东西!!!

http://code.google.com/p/gource/

项目主页在这里,里面有视频。

读取版本管理的日志,然后通过很炫的动画,将版本的变动表现出来,cool 啊!!支持多种版本管理软件,包括我熟悉的svn 和不算太熟悉的git 。

homebrew 下很方便,brew install gource ,安装完成后,在代码的根目录,直接运行 gource 就行了!!

然后,就欣赏很炫的动画吧!!

nginx+apache+dav_svn 的怪异问题

最近帮朋友的网站做个小优化,由apache 迁移到nginx ,结果问题多多,svn 在提交的时候竟然有这个错误:

$ svn ci -m”fix the mail problem “
Sending        util.php
svn: Commit failed (details follow):
svn: File ‘util.php’ is out of date
svn: ‘/svn/!svn/bc/496/trunk/util.php’ path not found
但是提交其它文件貌似没有问题。怪异到爆!!!

首先说说nginx 的配置。

svn 仍然使用 apache 的dav_svn ,只是端口由80 改为 1234,其它配置不改。

location  /svn {

proxy_pass http://127.0.0.1:1234 ;

proxy_set_header Host “svn.mysite.net” ;

}

终于在google 大神找到一篇俄文的mailing-list(http://www.lexa.ru/nginx-ru/msg39625.html),竟然有人和我同样的错误,也终于弄清楚什么事了。。。简直是自己白痴!!
我的php 的配置:
location ~ \.php$ {
root           /var/www/backend/  ;
fastcgi_pass   127.0.0.1:9000;
fastcgi_index  index.php;
include        fastcgi.conf;
}
这个location 用了正则匹配,比svn 的普通location 优先级高,结果svn 提交util.php 的时候(会发送一堆svn 的指令如propfind , option 等),优先到php 的location 里,结果就出错了。。。
那svn 也用高优先级的location 匹配吧,修改一下,用前缀匹配:
location ^~ /svn
ok , 成功了。。。
事后我才看到,nginx 本身就有一个404 的log :
211.102.143.12 – hello [03/Jul/2011:15:34:53 +0800] “PROPFIND /svn/!svn/bc/496/trunk/util.php HTTP/1.1″ 404 31 “-” “SVN/1.6.15 (r1038135) neon/0.28.6″ “-“
唉。。。怪自己~~

64 位linux 上安装svn 1.4.x 的错误

很久没更新了,随便更新一篇吧,2011 年的1 月一篇blog 都没有post 。。。皆因全去做杂事了。做事情的人了,没有技术上的长进阿!

部门内部的svn 用了很旧的版本,1.4.6 了,最近把它迁移到一台64 bit 的机器上,svn 编译不过去,具体报错如下:

cd subversion/libsvn_ra_dav && /bin/sh /home/download/subversion-1.4.6/libtool –tag=CC –silent –mode=link gcc  -g -O2  -g -O2 -pthread    -rpath /usr/local/lib -o libsvn_ra_dav-1.la  commit.lo fetch.lo file_revs.lo log.lo merge.lo options.lo props.lo replay.lo session.lo util.lo ../../subversion/libsvn_delta/libsvn_delta-1.la ../../subversion/libsvn_subr/libsvn_subr-1.la /home/download/subversion-1.4.6/apr-util/libaprutil-0.la -lexpat /home/download/subversion-1.4.6/apr/libapr-0.la -lrt -lm -lcrypt -lnsl  -lpthread -ldl /home/download/subversion-1.4.6/neon/src/libneon.la -lz
/usr/bin/ld: /home/download/subversion-1.4.6/neon/src/.libs/libneon.a(ne_request.o): relocation R_X86_64_32 against `a local symbol’ can not be used when making a shared object; recompile with -fPIC
/home/download/subversion-1.4.6/neon/src/.libs/libneon.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make: *** [subversion/libsvn_ra_dav/libsvn_ra_dav-1.la] Error 1

其实它也提到了解决方案,recompile with -fPIC ,但。。。我不知道在哪里加……

祭出google 大神,竟然要自己手动改Makefile 。。。

修改 neon/src/Makefie 的 CFLAGS 为 -fPIC -g -O2

困扰了一会,顺便更新一下blog 。