需要在Git存储库中建立良好的文件命名约定

时间:2012-05-05 20:35:09

标签: git version-control encoding naming-conventions

我正在寻找在Git存储库中提交命名约定的建议。

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

  • 由于业务原因,存储库中的文件名必须包含多个完整的英文单词,例如,某些文件名必须包含home_value,或home-valueHomeValue而不是一些缩写形式,其中完整的英语单词无法识别,例如h_vh-vHV

所以我想知道应该为团队制定什么样的惯例规则,以减少潜在的问题。约定的改变或后来强制文件命名样式的努力可能是一种痛苦和反作用。所以我想尽早建立尽可能详细的约定。然后我可以制作stewart脚本来自动验证代码库。

一些初步的注意事项:

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

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

  • 部分文件是将在网络服务器上提供的HTML文件。

  • 始终使用ASCII字符

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

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

  • 如果始终使用小写字母,那么CamelCase不是一个选项

  • 一些完整的英文单词可以包含-,例如一些英文名称,因此似乎foo-bar样式不是一个选项。唯一的可能性是foo_bar

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

    foo_Bar_FooBar

但这是个好主意吗?

1 个答案:

答案 0 :(得分:1)

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

我的建议是使用ASCII字母,除了大小写外,没有两个相同的名称。对于单词分隔,空格应该可以正常工作。除非您想通过HTTP提供服务,否则没有理由使用_-