Tag Archive: subversion


关闭TortoiseSVN引起的IE浏览器警告

在Windows 7 下面安装了TortoiseSVN后,在浏览器中如果要上传某个文件时,在文件打开对话框中每选择一个目录,都会跳出烦人的警告信息,提示“网站正在使用您计算机上的程序打开web内容”。查看其详细信息,是由于TSVNCache.exe这个程序引起的。

这个警告信息的原因是TortoiseSVN会监视磁盘上的文件,如果是被版本控制的文件,当文件被更改后,就会用自定义的图标覆盖文件原有的图标,以示区别。在浏览器中的文件打开对话框中,TSVNCache监视进程默认也是工作的,所以会有警告信息。

去除的办法很简单,打开TortoiseSVN的设置选项,在图标覆盖选项下,将“仅在资源管理器中显示图标覆盖和上下文菜单”勾上就可以了。下次再启动浏览器后,就不会出现这个警告信息了。

Advertisements

TortoiseSVN奇怪的403 Forbidden错误

浏览器通过https网址访问版本库一点问题都没有,但是用TortoiseSVN用同一个https网址访问版本库始终出现server sent unexpected return value(403 forbidden)in response to options…… ,察看了下apache的ssl错误记录,发现原来是指定了DocumentRoot的缘故。在ssl.conf中注释掉DocumentRoot这一行就可以了。http也是一样的,如果你配置了虚拟主机,就不能指定该ServerName的DocumentRoot。

在Visual Studio中使用Subversion

AnkhSVN是一个开源的用于Visual Studio的Subversion插件,可以从http://ankhsvn.open.collab.net/下载所需的版本(注意:最新的2.0版只支持VS2005以上的版本)。安装好以后,在VS2005的工具->选项中,选择源代码管理插件为AnkhSVN就可以调用Subversion功能了。主要用到的也就是Commit(提交修改到subversion)和Update(从subversion获取最新版本)。当然用法还有很多,慢慢研究了。

通过https访问subversion

终于把subversion装上去了,从源代码编译安装的关键是apr和apr-util,如果要从http访问,还有那个apxs。subversion 1.5.2 需要apr和apr-util的版本为1.x,早期的0.9x是没法用的。编译时需要apr-config,这就要安装apr-devel和apr-util-devel两个安装包。这时候configure就能成功了,不过mod_dav_svn被跳过了,因为没有apxs这个工具来配置httpd,安装下httpd-devel安装包就有了。要注意apr-devel, apr-util-devel, httpd-devel这三个开发包的版本与已安装的组件要对应。

configure成功后,make,make install就安装好了。

接下来就是配置httpd.conf使能够通过http访问subversion了,参考下svnbook来配置/etc/httpd/conf.d/subversion.conf就行了。

如果需要通过https来访问,这就要弄些证书什么的,还有/etc/httpd/conf.d/ssl.conf中的配置。可以参考下面的一个关于证书制作的文章:http://www.dedecms.com/web-art/fuwuqi/20060914/26240.html

subversion的安装

如果能从源代码编译安装,那是最理想不过的了,不过要想编译成功也得费点周折。我就偷懒,直接用人家编译好的RPM安装包了。能找到合适的subversion二进制RPM安装包的版本是1.51,参见(1)。

安装subversion 1.51 之前要确认下apr和apr-util的版本,要大于0.9.7,只好又从(2)这里下载了最新的1.2.8。
本来打算执行rpm -Uvh apr-1.2.8-1.i386.rpm 来升级原来的apr-0.9.4的,可是不成功,apr-0.9.4被httpd等依赖着。只好安装两个版本了:rpm -ivh apr-1.2.8-1.i386.rpm。同样,安装rpm -ivh apr-util-1.2.8-1.i386.rpm

接下来安装subversion,依次执行
rpm -ivh mod_dav_svn-1.5.1-1.i386.rpm
rpm -ivh neon-0.27.2-1.i386.rpm
rpm -ivh neon-0.27.2-1.i386.rpm
如果没有问题的话,就可以用了。不过要配置Apache+subversion还是比较麻烦的,先用svnserve好了。

先要创建一个版本库:
mkdir /abs/path/to/repository
svadmin create /abs/path/to/repository
你可以用svn客户端程序导入最初的文件:
svn import /abs/path/to/project file:///abs/path/to/repository/project -m “initial import”

接下来就是要启动svnserve了守候连接请求了
svnserve -d -r /abs/path/to/repository 如果你不想使用默认的3690端口,加个参数 –listen-port 8080

根据你守候的端口,要配置下防火墙,否则别人连接不进来。
iptables -I INPUT -p tcp –dport 3690 -j ACCEPT
为什么要用-I而不用-A呢?因为某些系统默认的防火墙在INPUT里配置了reject,加到最后的话,不起作用的。
不放心的话,用telnet 192.168.1.2 3690 这样的命令尝试连接下,如果有回应并且出现svn字样,肯定是通了的。

当然,这还不能用了,关于权限什么的设置都没搞呢,反正安装参考链接(3)里面的慢慢搞吧。

参考链接:
(1)subversion 二进制安装包的一个下载地址:http://summersoft.fay.ar.us/pub/subversion/
(2)apr 安装包的一个下载地址:http://mirrors.axint.net/apache/apr/binaries/rpm/i386/
(3)使用subversion进行版本控制:http://www.subversion.org.cn/svnbook/1.4/index.html
(4)一些Tips:http://linuxgazette.net/128/ramanathan.html