-2

我正在寻找有关 Git 存储库中文件命名约定的建议。

  • 将存储库签出到具有不同操作系统和区域设置的客户端计算机并从其提交,这些计算机可能不具有完全一致的字母大小写敏感性和字符编码,以及对某些特殊字符的行为;

  • 出于商业原因,存储库的文件名必须包含多个完整的英文单词,例如,某些文件名必须包含home_value, or home-value, orHomeValue而不是完整英文单词无法识别的缩写形式,例如h_vor h-vor HV

所以我想知道应该为团队制定哪些约定规则,以减少潜在问题。更改约定或稍后强制文件命名样式可能会带来痛苦并适得其反。所以我想从一开始就制定尽可能详细的约定。然后我可以制作 Stewart 脚本来自动验证代码库。

一些初步的想法:

  • 我能想到的一些可能的格式约定

    foo_bar # 使用 _ 作为单词分隔符 foo-bar # 使用 - 作为单词分隔符 FooBar # 使用 CamelCase

  • 其中一些文件是 HTML 文件,将在 Web 服务器上提供。

  • 始终使用 ASCII 字符

  • 非 ASCII 字符应转换为 Unicode 代码,例如U+12345

  • 始终使用小写,例如foo_bar但不使用Foo_Baror ,以避免名为andFooBar的两个文件之间发生冲突。可能的问题是我上面提到的一些完整的英语单词是专有名词,需要首字母大写。如果信息在文件名中丢失,则需要以其他方式存储。foo_barFoo_Bar

  • 如果始终使用小写字母,则不能使用 CamelCase

  • 里面可以有一些完整-的英文单词,比如一些英文名字,所以看起来foo-bar风格不是一个选项。唯一剩下的可能性是foo_bar

  • 如果我然后允许大写字母来容纳专有名词,那么一般来说,文件名是

    foo_Bar_FooBar

但这是个好主意吗?

4

1 回答 1

1

唯一真正的技术挑战是对 Unicode 文件名的支持很差。它们通常是非便携式的,可能会导致一些奇怪的问题。另一个问题是 Windows 不区分大小写,而基于 Unix 的操作系统则不区分大小写。这意味着您可以在 Mac 或 Linux 计算机上创建命名HomeValuehomevalue相邻的文件,当您迁移到 Windows 时会出现问题。

我的建议是使用 ASCII 字母,并且除了大小写之外不要有两个相同的名称。至于分词,空格应该可以正常工作。没有理由使用_-除非您想通过 HTTP 服务它们。

于 2012-05-05T20:46:32.910 回答