重新安装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的深入理解和合理运用,能够显著提高团队的开发效率和代码质量。
Subversion(SVN)是一种版本控制系统,用于...以上是SVN使用中的一些常见问题及解决方案,通过理解这些基本问题,可以更好地管理和协作开发项目。在实际工作中,遇到问题时,应参考SVN文档或在线资源以获取更多帮助。
AnkhSVN提供了工具栏、菜单项和解决方案资源管理器的上下文菜单,使得在VS中进行版本控制操作更为便捷。 4. **基本操作** - **创建仓库**:在SVN服务器上创建一个新的仓库,可以使用命令行工具如svnadmin,或者...
本文将深入探讨“Linux在线安装svn”的解决方案,适用于那些需要在Linux环境中搭建SVN服务器的开发者。 首先,我们需要理解什么是Subversion。Subversion是一个开源的集中式版本控制系统,用于跟踪文件和目录的修改...
#### 二、解决方案 ##### 工具与技术栈 1. **Java**:后端开发语言,用于处理数据逻辑和业务流程。 2. **JSP (JavaServer Pages)**:前端页面展示技术,用于动态生成HTML页面以展示搜索结果。 3. **VisualSVN-...
### Eclipse 下的 SVN 插件安装与配置:无需 SVN Connector 在进行软件开发的过程中,版本控制工具如 ...在实际使用过程中,如果遇到问题,可以参考本文提供的常见问题解决方案进行排查和解决。希望本文对您有所帮助!
10 3 开始使用 AnkhSvn10 3.1 安装 AnkhSVN 10 3.2 在 VisualStudio 中启用 AnkhSvn 10 3.3 将项目连接到 AnkhSVN 11 3.4 增加解决方案到版本库 12 3.5 浏览版本库13 3.6 增加工作拷贝到工作拷贝浏览器 14 4 版本...
该插件名为“Subversive”或“Subclipse”,它们都是Eclipse社区中流行的SVN集成解决方案。 Subversive和Subclipse这两款插件的主要功能包括: 1. **版本控制操作**:用户可以直接在Eclipse中对项目进行添加、删除...
例如,`<video>`和`<audio>`标签在这些浏览器中可能无法正常工作;CSS3的一些新样式也无法正确显示。因此,开发者需要采取一些策略来确保这些老版本浏览器也能访问并使用网站的基本功能。 #### 二、解决方案 1. **...
无论你是需要一个简洁易用的工具(如Versions),还是需要一个功能全面的专业级客户端(如Smart SVN),或是寻求深度集成和高效工作的解决方案(如Cornerstone),这些工具都能满足你的需求。在日常开发中,熟练掌握...
SVN(Subversion)是一种广泛使用的版本控制系统,...总之,SVN 1.9.7和TortoiseSVN 1.9.7的组合为开发者提供了一个强大且易于使用的版本控制解决方案,尤其对于那些需要中文界面的用户而言,这个安装包是理想的选择。
总的来说,Eclipse的SVN插件为开发者提供了一站式的版本控制解决方案,使得在Eclipse环境中进行版本控制操作变得简单而高效。无论是Subversive还是Subclipse,它们都是强大的工具,能够帮助团队协同工作,管理代码...
- 解决方案:通过`svn update`更新本地副本,或者手动解决冲突。 - **树冲突**:当一人移动、重命名或删除文件/文件夹时,而另一人也进行了类似操作,可能会导致树冲突。 - 解决方案:通常需要手动解决,确保两边...
将Apache与SVN整合,可以创建一个高效、安全的Web访问源代码仓库的解决方案。以下是对"Linux整合Apache和SVN"这一主题的详细讲解。 首先,了解SVN的基本概念。Subversion是一个集中式的版本控制系统,它记录了文件...
【描述】虽然描述为空,但我们可以推测博主可能分享了他在配置SVN与Apache服务器过程中的经验和心得,可能包括了一些常见问题的解决方案和最佳实践。 【标签】:“源码”和“工具”这两个标签表明了主题涉及的是与...
解决方案包括: - 确保URL末尾包含斜杠。 - 升级TortoiseSVN版本。 #### Q10: 执行cleanup时,出现错误”Subversion reported an error while doing a cleanup!” 当执行“Cleanup”操作时出现错误,可能是由于...
5. **集成的解决方案浏览器**:查看文件的历史版本,比较不同版本之间的差异,并进行版本恢复。 6. **性能优化**:不断改进的性能,确保与VS2008的兼容性和稳定性,减少对开发流程的影响。 7. **持续集成支持**:与...
- 在遇到问题时,查阅官方文档或社区论坛,通常能找到解决方案。 - 如果需要更新 SVNManager,按照新的版本发布说明进行升级,注意备份现有数据以免丢失。 总之,SVNManager 提供了一个直观的界面,使得 SVN 的...