通过redmine repository看代码,有时候按review按钮,可是浏览器却弹出download画面, 导致不能和看DIFF一样直接在线观看,非常不方便。
经过google搜索, 有人回答原因如下。
ruby中如果string中有超过30%ascii码或者回车换行符以外的字符的话, 就会被认为是二进制数据,导致不能在网页中直接打开,而显示了Download画面。
解决方法
参照以下DIFF文件
Index: app/controllers/repositories_controller.rb
===================================================================
--- app/controllers/repositories_controller.rb (revision 1709)
+++ app/controllers/repositories_controller.rb (working copy)
@@ -102,7 +102,7 @@
@content = @repository.cat(@path, @rev)
show_error_not_found and return unless @content
- if 'raw' == params[:format] || @content.is_binary_data?
+ if 'raw' == params[:format] || @content.include?("\x00")
# Force the download if it's a binary file
send_data @content, :filename => @path.split('/').last
else
分享到:
相关推荐
Redmine 是一个用 Ruby on Rails 开发的项目管理软件,提供了问题跟踪、项目管理和文档协作等功能。本文将深入探讨 Redmine 的主要数据库表结构及其关联关系。 1. **用户(User)**: `users` 表包含了用户的个人信息...
Redmine 是一个开源的、基于Web的项目管理应用软件,由Ruby on Rails开发。它提供了问题跟踪、项目管理和文档管理等功能,广泛应用于软件开发团队,帮助团队协作、追踪任务进度和管理项目。作为一位Redmine管理员,...
SVN,全称为Subversion,是一个开源的版本控制系统,用于管理软件项目的源代码和文档。它允许团队成员在开发过程中跟踪和控制文件的变化,同时提供了冲突解决机制,确保多个人协同工作时的版本一致性。 **二、SVN...
- 分支(Branch):创建项目的一个独立副本,用于开发新功能或修复,不干扰主干。 - 合并(Merge):将分支的更改合并回主干或其他分支,保持代码同步。 5. **SVN备份与恢复** - 备份:定期导出版本库到外部文件...
Redmine是一个开源的项目管理和问题跟踪系统。 **操作步骤:** 1. 安装Redmine及其依赖项; 2. 创建数据库; 3. 配置Redmine; 4. 启动Web服务器。 #### 六、数据库备份 (mysqlhotcopy) 数据库备份对于保障数据...
AnkhSVN为Visual Studio提供了一个源代码控制系统。通过此插件,开发者可以直接在Visual Studio环境中执行版本控制操作,如检查文件状态、签出、签入等。 ##### 什么是版本库浏览器? 版本库浏览器(Repository ...
WebKitGTK+ 是一个基于 GTK 的 WebKit 版本,它可以用来开发跨平台的 Web 浏览器和其他需要渲染 Web 内容的应用程序。本篇文章将详细介绍如何从源码构建 WebKitGTK+,包括源码获取、依赖环境搭建、编译及运行的详细...
- **TortoiseSVN**: 是一个易于使用的SVN客户端,它通过集成到Windows资源管理器中来提供SVN的功能。 - **安装与配置**: - 下载并安装TortoiseSVN; - 使用TortoiseSVN客户端从指定的SVN仓库地址(如:...