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

RE: git-bugreport-2021-01-06-1209.txt (git can't deal with special characters)

From
Randall S. Becker <rsbecker@nexbridge.com>
Date
Jan 6, 2021, 23:07 UTC
Message-ID
<002601d6e480$c193bd00$44bb3700$@nexbridge.com>
In-Reply-To
<A342FAE0-A363-4280-848C-162F38C22C8E@icloud.com>
On January 6, 2021 5:22 PM, Daniel Troger wrote:
Show 77 quoted lines
> Hi, maybe this helps you reproduce. I think I should have committed before
> doing the second changes but I still got the error message and the two
> names for one folder:
> 
> me@iMac:/tmp$ mkdir git_bug
> me@iMac:/tmp$ cd git_bug
> me@iMac:/tmp/git_bug$ git init
> hint: Using 'master' as the name for the initial branch. This default branch
> name
> hint: is subject to change. To configure the initial branch name to use in all
> hint: of your new repositories, which will suppress this warning, call:
> hint:
> hint: 	git config --global init.defaultBranch <name>
> hint:
> hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
> hint: 'development'. The just-created branch can be renamed via this
> command:
> hint:
> hint: 	git branch -m <name>
> Initialized empty Git repository in /private/tmp/git_bug/.git/
> me@iMac:/tmp/git_bug$ ls -la total 8
> drwxr-xr-x   4 daniel  wheel   128 Jan  6 23:13 .
> drwxrwxrwt  27 root    wheel   864 Jan  6 23:13 ..
> drwxr-xr-x   9 daniel  wheel   288 Jan  6 23:12 .git
> -rw-r--r--@  1 daniel  staff  1283 Jan  6 23:13 paulbrunngård-springyard.zip
> me@iMac:/tmp/git_bug$ unzip paulbrunngård-springyard.zip
> Archive:  paulbrunngård-springyard.zip
>    creating: paulbrunnga??rd-springyard/
>   inflating: paulbrunnga??rd-springyard/.DS_Store
>    creating: __MACOSX/
>    creating: __MACOSX/paulbrunnga??rd-springyard/
>   inflating: __MACOSX/paulbrunnga??rd-springyard/._.DS_Store
>  extracting: paulbrunnga??rd-springyard/empty me@iMac:/tmp/git_bug$ rm
> -rf __MACOSX/ *.zip me@iMac:/tmp/git_bug$ ls -la total 0
> drwxr-xr-x   4 daniel  wheel  128 Jan  6 23:15 .
> drwxrwxrwt  27 root    wheel  864 Jan  6 23:13 ..
> drwxr-xr-x   9 daniel  wheel  288 Jan  6 23:15 .git
> drwxr-xr-x@  4 daniel  wheel  128 Jan  6 12:20 paulbrunngård-springyard
> me@iMac:/tmp/git_bug$ cd paulbrunngård-springyard/
> me@iMac:/tmp/git_bug/paulbrunngård-springyard$ nano empty
> me@iMac:/tmp/git_bug/paulbrunngård-springyard$ cat empty Initial
> content me@iMac:/tmp/git_bug/paulbrunngård-springyard$ git add empty
> me@iMac:/tmp/git_bug/paulbrunngård-springyard$ nano empty
> me@iMac:/tmp/git_bug/paulbrunngård-springyard$ cat empty Initial
> content
> 
> 
> Line I want to keep
> 
> Line I want gone
> me@iMac:/tmp/git_bug/paulbrunngård-springyard$ git restore -p .
> BUG: pathspec.c:495: error initializing pathspec_item Cannot close git diff-
> index --cached --numstat --summary
> 4b825dc642cb6eb9a060e54bf8d69288fbee4904 --
> :(,prefix:27)paulbrunngård-springyard/ () at
> /usr/local/Cellar/git/2.30.0/libexec/git-core/git-add--interactive line 183.
> me@iMac:/tmp/git_bug/paulbrunngård-springyard$ cd ..
> me@iMac:/tmp/git_bug$ git status
> On branch master
> 
> No commits yet
> 
> Changes to be committed:
>   (use "git rm --cached <file>..." to unstage)
> 	new file:   "paulbrunnga\314\212rd-springyard/empty"
> 
> Changes not staged for commit:
>   (use "git add <file>..." to update what will be committed)
>   (use "git restore <file>..." to discard changes in working directory)
> 	modified:   "paulbrunnga\314\212rd-springyard/empty"
> 
> Untracked files:
>   (use "git add <file>..." to include in what will be committed)
> 	.DS_Store
> 	"paulbrunng\303\245rd-springyard/"
> 
> me@iMac:/tmp/git_bug$
Is it possible that the å character is coming from a UTF-16 encoding and is not representable in UTF-8? I'm wondering whether the name has a double-byte representation where one of the bytes is null, resulting in a truncated file name coming from readdir(). The file name would not be representable on some platforms that do not support UTF-16 path names.

Regards, Randall

-- Brief whoami:
 NonStop developer since approximately 211288444200000000
 UNIX developer since approximately 421664400
-- In my real life, I talk too much.
Previous: Daniel TrogerNext: Philippe Blain
Message 6 of 22 in “git-bugreport-2021-01-06-1209.txt (git can't deal with special characters)”
  1. Daniel TrogerJan 6, 2021
  2. Torsten BögershausenJan 6, 2021
  3. Daniel TrogerJan 6, 2021
  4. Torsten BögershausenJan 6, 2021
  5. Daniel TrogerJan 6, 2021
  6. Randall S. BeckerJan 6, 2021
  7. Philippe BlainJan 7, 2021
  8. Torsten BögershausenJan 7, 2021
  9. Philippe BlainJan 7, 2021
  10. Torsten BögershausenJan 8, 2021
  11. 1/1 git restore -p . and precomposed unicodetboegi@web.de, Jan 24, 2021
  12. Junio C HamanoJan 24, 2021
  13. Torsten BögershausenJan 25, 2021
  14. 1/1 MacOS: precompose_argv_prefix()tboegi@web.de, Jan 29, 2021
  15. Junio C HamanoJan 29, 2021
  16. Junio C HamanoJan 31, 2021
  17. 1/1 MacOS: precompose_argv_prefix()tboegi@web.de, Feb 2, 2021
  18. Junio C HamanoFeb 2, 2021
  19. 1/1 MacOS: precompose_argv_prefix()tboegi@web.de, Feb 3, 2021
  20. Junio C HamanoFeb 3, 2021
  21. Junio C HamanoFeb 3, 2021
  22. Torsten BögershausenFeb 5, 2021

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.