cvs2svn mime 类型

Posted

技术标签:

【中文标题】cvs2svn mime 类型【英文标题】:cvs2svn mime types 【发布时间】:2009-02-03 15:14:28 【问题描述】:

为了考虑 Richard 的评论和 Steen 的回答,我必须独立于类型 mime 文件和独立于 CVS 中标记的类型文件进行指定,我正在寻找如何在 cvs2svn 中将所有文件视为二进制文件?也许是不可能的?

请 Richard(或其他人),您能告诉我如何知道 CVS 中给定文件的标记类型吗?


你好, 如何将所有文件视为二进制文件? (cvs2svn 的)所有 16 次通过都正确完成,但有几个二进制文件已损坏(如 .gif)。不作为二进制文件处理!

我使用的命令行是:

python C:\noinstaller\cvs2svn-2.2.0\cvs2svn -s "SVN_REPO" "CVS_REPO" --use-cvs
--encoding=latin1 --mime-types=svn-mime-types --eol-from-mime-type 
--keywords-off --sort=C:\noinstaller\UnxUtils\usr\local\wbin\sort.exe

阅读CVS2SVN FAQ后,我尝试了许多其他选项,但相同的文件总是损坏。

谢谢。克里斯蒂安。

【问题讨论】:

快速提问:gif 文件在 CVS 中是否标记为二进制文件? 请 Richard 告诉我如何知道 CVS 中给定文件的标记类型? 【参考方案1】:

Subversion 使用启发式算法来确定文件是否为二进制文件。首先,它检查是否设置了 mime-types-file 配置参数,并使用它来将文件映射到 mime 类型。如果没有找到这样的配置,它会查看前 1024 个字节,如果超过 15% 不在 ASCII 范围内或其中任何一个为空值,则该文件被视为二进制文件。要专门设置给定文件类型的 MIME 类型,您必须使用 auto props。

请注意,如果 subversion 确定您的文件是 mime 类型 image/x-xbitmapimage/x-xpixmap,它将被视为文本文件

Auto-props 影响 svn addsvn import 操作,并使用 runtime configuration 设置,它们通过命令行选项或在 config 文件中指定用于颠覆,在subversion 安装 conf 目录。 应设置以下值:

# default is 'no', so we enable auto props with
enable-auto-props = yes

# specify absolute path to mime.types like file, e.g.
mime-types-file = /etc/mime.types

这应该正确映射您的二进制文件。

编辑:来自cvs2svn 手册:

--auto-props=文件

以Subversion的配置文件格式指定一个文件,其 [auto-props] 部分可用于设置任意属性 Subversion 存储库中的文件基于它们的文件名。 (这 [auto-props] 部分标题必须存在;的其他部分 config 文件,包括 enable-auto-props 设置,将被忽略。) 文件名与文件名模式匹配,不区分大小写, 与 Subversion 的行为一致。自动道具文件可能 有这样的内容:

[auto-props]
*.txt = svn:mime-type=text/plain;svn:eol-style=native
*.doc = svn:mime-type=application/msword;!svn:eol-style

所以,使用命令行开关--auto-props 和自动道具 文件,您应该能够获得所需的功能 cvs2svn脚本

【讨论】:

我与 Brainkiller 合作,感谢您的回答(顺便 +1)。但是,问题似乎出在 mime-types-file 选项中:out "mime-types" 文件似乎没有被考虑在内。如果是,我们可以确保所有内容都被视为二进制。【参考方案2】:

关于如何让 cvs2svn 将所有文件都视为二进制的问题,我只能指向FAQ中与EOL相关的部分

从 2.0 版开始,cvs2svn 的默认行为是将所有文件视为二进制文件,但明确确定为文本的文件除外。

也来自常见问题解答:

如果文件在 CVS 中被标记为二进制文件(使用 cvs admin -kb,那么 cvs2svn 将始终将该文件视为二进制文件。

要查看文件是否标记为二进制文件,请在 CVS 中查找文件的 -kb 选项。在 WinCVS 中,有这方面的列以及编码。

很遗憾,我没有适合您的解决方案,但我会尝试简化您的命令参数,以专注于那些不适合这些文件的内容。使用 --auto-props 文件可以让您最终控制每个文件。如果您的 CVS 文件是“干净的”(意味着所有文件都以文本和二进制文件的形式正确提交),那么 --default-style=native 参数应该会给出最好的结果。

祝你好运,让我们知道什么对你有用。

【讨论】:

感谢 Richard,并为这些指针 +1。 Brainkiller和我现在正在调查它。一个问题是我们在 Windows 平台上 cvs2svn,来自 Unix 的 CVS repo... @VonC:有趣,我正在做同样的事情。 Unix 上的 CVS -> Windows 上的 SVN。不幸的是,SOX 阻止我接触系统,所以我不能用你做实验。无论如何,我们的二进制文件使用 --default-style=native 可以正常工作。 @Richard Morgan:你在使用 2.2.0 版本的 python-script cvs2svn 吗? @VonC:实际上,我认为它只是 2.0。看来我应该调查升级。谢谢。【参考方案3】:

我推断不可能强制 cvs2svn 将所有文件都视为二进制文件。

【讨论】:

对不起,你没有运气;这是另一个帮助markmail.org/thread/iup7e3kdhsurgvja的帖子

以上是关于cvs2svn mime 类型的主要内容,如果未能解决你的问题,请参考以下文章

jmeter上传的参数mime类型

为啥 MIME 类型用于 HTML 文本,而 MIME 类型用于 XHTML 应用程序?

JavaWeb学习—MIME类型(十四)

不支持视频格式或 MIME 类型。 IIS 确实具有正确的 MIME 类型。

收到错误:MIME 类型 ('text/html') 不是受支持的样式表 MIME 类型,并且使用 DJANGO PYTHON 启用了严格的 MIME 检查

MIME类型(JSP中)