git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Does GIT require property like Subversion?

From
LYLiu Yubao <yubao.liu@gmail.com>
Date
Oct 9, 2006, 02:53 UTC
Message-ID
<4529B9C7.7000000@gmail.com>
In-Reply-To
<200610081752.10940.robin.rosenberg.lists@dewire.com>
Sorry, I forgot to reply all.
Robin Rosenberg wrote:
Show 22 quoted lines
> söndag 08 oktober 2006 12:16 skrev Jakub Narebski:
>> File content encoding is something (if it is outside US-ASCII of course)
>> that you would want either to have some default convention, or have it
>> embedded in the file itself (like XML, HTML, or Emacs' file variables)
>> to be able to read file _outside_ SCM.
> Except for CR/LF, this is best solved outside of the SCM. There aren't that
> may tools/users to warrant the complexity or performance hit I imagine to 
> solve it.
> 
>> Path name encoding is something that is global property of a repository,
>> I think. We have i18n.commitEncoding configuration variable; we could
>> add i18n.pathnameEncoding quite easily I think (and some way for Git to
>> detect current filesystem pathname encoding, if possible). Although
>> BTW I think that i18n.commitEncoding information should be made persistent,
>> and copied when cloning repository.
> 
> *I* think git should use UTF-8 internally. Always. Clients could then have
> the option to convert to local conventions.
> 
> Same for pathname. Internally all paths should be UTF-8 encoded. Encoding 
> commit info that way would make the i18n option obsolete also.
> 

I am afraid it's not a good idea to convert file content to UTF-8 encoding as GIT can manage non-text file, it's not safe to modify file content stealthily by a VCS.

But I agree to use UTF-8 for path name in tree object, or add an encoding property(not a user defined property) to the head of tree object, so GIT won't do useless enc -> UTF-8 -> same_enc conversion. The second way has a fault: two tree objects with same content in different encoding have different SHA1 digests.

Show 9 quoted lines
> I have a patch for both these, but it's very ugly and probably has some memory 
> management problems, so I'll refrain from submitting for now. Knowing that it 
> exists may perhaps serve as starting point for discussion. It encodes 
> filenames in UTF-8 using LC_CTYPE as the local encoding, as well as commit 
> messages. An exception is when something looks like UTF-8, in which case it 
> will not convert input to git. When UTF-8 cannot be converted to the local 
> encoding on it's way out of git, the data remains in UTF-8 format. Branch and 
> tags names are not managed (yet, at least).
> 
 >
Good, hope GIT can deal with path names that are not in 8859_1 or UTF-8 encoding.
Previous: Jakub Narebski
Message 8 of 8 in “Does GIT require property like Subversion?”
  1. Liu YubaoOct 8, 2006
  2. Jan-Benedict GlawOct 8, 2006
  3. Jakub NarebskiOct 8, 2006
  4. Jakub NarebskiOct 8, 2006
  5. Robin RosenbergOct 8, 2006
  6. Petr BaudisOct 8, 2006
  7. Jakub NarebskiOct 8, 2006
  8. Liu YubaoOct 9, 2006

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.