当我将一个Shell脚本(foo.sh)添加到Subversion时,默认情况下会将
有什么好的值可以设置吗?
更新
根据下面的建议,我将mime-type设置为text/x-shellscript。然而,blame仍然认为它是二进制文件。
svn:mime-type
设置为application/x-shellscript
。由于这不是以text/
开头的,因此diff和blame基本上会忽略该文件。我查看了官方的文本mime-type列表,但没有看到任何类似于Shell脚本的东西。有什么好的值可以设置吗?
更新
根据下面的建议,我将mime-type设置为text/x-shellscript。然而,blame仍然认为它是二进制文件。
$ svn blame file.sh
Skipping binary file: 'file.sh'
$ svn proplist file.sh
Properties on 'file.sh':
svn:executable
svn:mime-type
$ svn propget svn:mime-type file.sh
text/x-shellscript
还有什么其他的事情我需要做,才能让subversion相信它是一个文本文件吗?
text/x-shellscript
完全取决于所讨论的文件的 _shebang 行_,而不是其文件名后缀(.sh
),如果有的话。简而言之:shebang 行必须为#!/bin/(sh|bash|csh|tcsh|ksh|zsh)
(表示为正则表达式;不确定是否还有其他的);请注意,基于#!/usr/bin/env
的 shebang 行是 不会 被识别的。如果不满足这些条件且文件是文本文件,则返回text/plain
。 - mklement0