title: Need suggestions to a good file naming convention in a Git repository
body: <p>I'm looking for suggestions to file naming convention in a Git repository.</p>
  
  <ul>
  <li><p>The repository is checked out to and committed from client machines with different OS's and locale settings, which may not have exactly consistent letter case sensitivity and character encodings, and behaviors towards some special characters;</p></li>
  <li><p>The repository has files whose file name must contain multiple complete english words for business reasons, for example, some file names must contain <code>home_value</code>, or <code>home-value</code>, or <code>HomeValue</code> rather than some abbreviated form where the complete English words aren't recognizable such as <code>h_v</code> or <code>h-v</code> or <code>HV</code>.</p></li>
  </ul>
  
  <p>So I am wondering what rules of convention should be set up for the team, to reduce potential issues.  A change of convention or an effort of coercing file naming styles later in could be a pain and counter productive. So I'd like to set up as detailed convention as possible from early on.  I could then make stewart scripts to automatically validate the code base.</p>
  
  <p>Some initial thoughtlets:</p>
  
  <ul>
  <li><p>some possible formatting conventions I can think of</p>
  
  <p>foo_bar  # use _ as word separator
  foo-bar  # use - as word separator
  FooBar   # use CamelCase</p></li>
  <li><p>some of the files are HTML files that will be served on web server.</p></li>
  <li><p>always use ASCII characters</p></li>
  <li><p>non-ASCII characters should be converted to Unicode code, for example <code>U+12345</code></p></li>
  <li><p>always use lower case, e.g. <code>foo_bar</code> but not <code>Foo_Bar</code> or <code>FooBar</code>, to avoid conflict between two files named <code>foo_bar</code> and <code>Foo_Bar</code>.  The possible issue with this is that some complete English word I mentioned above are proper nouns and needs to have capitalized initial letter.  If the information is lost in the file name, it will need to be stored in some other way.</p></li>
  <li><p>If lowercase letter is always used, then CamelCase is not an option</p></li>
  <li><p>Some complete English words can have <code>-</code> in it, for example some English names, so it seems the <code>foo-bar</code> style is not an option. The only left possibility is <code>foo_bar</code>?</p></li>
  <li><p>If I then allow capital letter to accomodate proper nouns, then in general, a file name is</p>
  
  <p>foo_Bar_FooBar</p></li>
  </ul>
  
  <p>But is it a good idea?</p>