重新安装svn+apache以后,发现一个问题,比如java源代码,现在是通过浏览器下载,而不是直接在浏览器中展示了。
以前是怎么做的呢?想不起来了。文档啊文档,很重要的。现在重新想办法吧。
最简单的办法:apache强制mime类型
其实最简单的办法,是借助apache 核心模块的指令ForceType,见:
http://httpd.apache.org/docs/2.2/mod/core.html#forcetype
可以强制配置mime类型,比如:
<Location /svn>
…
ForceType text/plain
</Location>
这样就可以在浏览器看源代码文本了,但是也有副作用,比如二进制文件怎么办,比如html页面,应该在浏览器中展示而不是显示代码。
subversion hook:在提交的时候触发服务器端程序写mime类型
subversion提供了hook,钩子,可以在比如提交前执行钩子脚本。
利用这个特性,可以在提交前,比如发电子邮件,比如检查是否写log message了。
当然,也可以在提交前,改mime type,可以按照这个python脚本改写:
http://pear.reversefold.com/dokuwiki/svn:pre-commit
但是,subversion不建议这样做,因为,所有hook操作,最好不再修改提交的文本,只做只读的操作。如果做写文本或者属性的操作,svn用户的local work copy,将和服务器端不一致。比如我提交一个java文件,没有设置mime type,提交到svn,将触发svn hook,比如修改为text/plain,然后提交到svn库中,这时库中的记录和该用户的work copy不一致。可能会带来很多其他不可预知的问题。
svn自带的手动设置mime类型方式
svn可以为提交的文件定义mime类型,比如这样:
$ svn propset svn:mime-type image/jpeg foo.jpg
property 'svn:mime-type' set on 'foo.jpg'
如果是在tortoiseSVN客户端,可以通过交互界面实现类似的功能,而且还可以递归操作:
缺点是,无法根据扩展名做区分。比如目录下有jpg,也有java文件,这个操作将所有文件都增加了text/plain mime类型。
eclipse的svn插件,subclipse也有类似功能。
svn提供的自动设置mime类型方式
在svn客户端,有个config文件,在windos xp,路径应该是:
C:\Documents and Settings\user_name\Application Data\Subversion\config
如果想让java代码的mime类型是text,可以这样写:
enable-auto-props = yes
[auto-props]
*.java=svn:mime-type=text/plain
这样,每次提交代码的时候,svn会自动将mime-type设置为text。不需要上面的手工设置了。
缺点是,需要维护一个config配置文件,比如很多开发人员,各种不同的环境,都需要事先做这样一个配置。
希望有这样的解决方案
比如,google code,用户提交上去的代码,自动就以text方式在浏览器端展示,不需要设置svn的配置文件。而且,用户可以手工设置mime type,比如有个html页面,如果设置成text/plain,则在浏览器中显示的是html源代码,如果设置为text/html,则显示的是页面的效果。
目前还没有找到这样的办法,估计要在apache设置方面做些工作。
分享到:
相关推荐
SVN 代码比较工具 SVN 代码比较工具 SVN 代码比较工具 SVN 代码比较工具
“在使用SVN管理本地代码过程中,会自动生成一个名为.svn的隐藏文件夹,其中包含重要的源代码信息。但一些网站管理员在发布代码时,不愿意使用‘导出’功能,而是直接复制代码文件夹到WEB服务器上,这就使.svn隐藏...
EclipseSVN冲突详细解决方案.docx
SVNMerge源代码SVNMerge源代码SVNMerge源代码
svn查看代码工具
SVN 常见错误及解决方案汇总帖
所以我就去找其它的替代工具,试了下GIT,VSS都不是很好用,还是觉得SVN好用,然后就在网上发现了这个文档,在本机搭建一个SVN,又不会对其它人造成影响,终于可以方便快捷的管理本机的代码了,分享给大家~
svn(subversion)是近年来崛起的版本管理工具,是cvs的接班人。目前,绝大多数开源软件都使用svn作为代码版本管理软件。
查看本机svn账号密码,双击运行即可查看,如果忘记自己的密码可以使用; 查看本机svn账号密码,双击运行即可查看,如果忘记自己的密码可以使用
SVN代码管理使用 SVN代码管理使用
svn的常见问题解决,可以帮助你解决常见的突发问题!
svn代码库如何备份到本地
如何为CVS项目团队实现升级SVN的解决方案书,包括前期预研报告和方案对比报告,以及详细的实现方案和升级代码讲解。
“在使用SVN管理本地代码过程中,会自动生成一个名为.svn的隐藏文件夹,其中包含重要的源代码信息。但一些网站管理员在发布代码时,不愿意使用‘导出’功能,而是直接复制代码文件夹到WEB服务器上,这就使.svn隐藏...
ant 脚本从svn上取代码打包代码全,同时包括相关的jar包
SVN冲突解决方案.docx
svn代码合并步骤
svn作为我们经常使用的版本管理服务器,在使用过程中经常需要通过clean up操作来完成本地文件与服务器文件信息及版本信息同步,然而有时会在执行清理命令时提示“清理失败,请执行清理”,并且提示的中文路径显示...
SVN提交代码时格式填写,入门级教程,大家可以参考下,谢谢!