Linux, Programming @ 25 October 2007, “No Comments”

公司的版本库由 CVS 转到了 SVN,转的过程就不说了,Google 上一搜一把。 为了实时看到 SVN 版本库的状态,在网上找了一个很好用的工具叫 StatSVN,会把当前 SVN 库的状态用数据和图表的方式展现出来,可以按开发者、目录、commit log 分别展示,很是强大。 在计划写个脚本每天凌晨自动生成前一年的报表的时候,碰到一些麻烦。刚开始的脚本是这样的:

#!/bin/bash
(/usr/bin/svn update /root/SVN)
(/usr/bin/svn log /root/SVN --xml -v > /root/SVN/svn.log)
(/usr/local/jdk/jre/bin/java -jar /root/statsvn-0.3.1/statsvn.jar /root/SVN/svn.log /root/SVN/ -out
put-dir /usr/local/apache2/htdocs/SVN/svnstat/ -title CNFOL -threads 50 -mantis http://xxx.com/bugs
/ -no-developer admin -include **/*.php:**/*.java:**/*.html:**/*.htm:**/*.js:**/*.css:**/*
.shtml:**/*.xml:**/*.sql:**/*.jsp:**/*.do:**/*.cfg)
(/bin/rm -f /root/SVN/svn.log)

第二天发现脚本没有自动运行,再尝试着把所有和 PATH 有关的环境变量都加进去,还是不行。后来在 winger 的协助下,通过记录日志的方式,把脚本的错误输出都记录了下来,发现出错的脚本在 /usr/local/jdk/jre/bin/java -jar /root/statsvn-0.3.1/statsvn.jar 这行,错误信息如下:

Parsing SVN log '/root/SVN/svn.log' exclude pattern ''
Logfile parsing failed.
svn log: svn info: XML document structures must start and end within the same entity.

奇怪的是,在控制台下手工运行都没问题,放到脚本里面就报错。看起来还是环境变量有问题,最终还是 winger 帮忙发现了问题,只要在脚本的头部加入

export LANG=en_US.UTF-8

就一切正常了。

<%image(20040407-java.png|100|134|Thinking in Java 3rd edition)%>

终于要开始进攻 Java了,好久没有过这种兴奋的感觉了。虽然有些担心,不过不管怎样,学多少算多少吧。呵呵。

想到昨天写第一个 HelloWorld 偶就汗……
先是编译器没?对,找不到 javac。
然后是编译通过后 java Helloworld.class 运行不起来。汗,后来才知道运行的时候不用加后缀的。

今天偶尔去书店逛逛,本来没打算买书的,不过看到这本《Thinking in Java 3rd edition》就走不动了。呵呵。虽然偶已经有一本中文的第二版的了,不过这个是最新的,又是经典之作,偶看一眼就心动了。(汗……以后不能轻易去书店)中文译本还没有,只能买影印的。能啃一点算一点了。:P

Tags: , ,