Per Junio's email, with core.quotepath=false, there are no differences with sorting in either ls-files or the tree named in the GIT_TRACE_2 output: $ git config --local core.quotepath false $ git ls-tree --name-only -r 74332b7d653cde7ba3b999cc7b0adcfd9d924440 > ls-tree $ LANG=C LC_ALL=C sort ls-tree > ls-tree-sorted-lc-all $ diff -s ls-tree ls-tree-sorted-lc-all Files ls-tree and ls-tree-sorted-lc-all are identical $ git ls-files > ls-files $ LANG=C LC_ALL=C sort ls-files > ls-files-sorted-lc-all $ diff -s ls-files ls-files-sorted-lc-all Files ls-files and ls-files-sorted-lc-all are identical ________________________________________ From: McHenry, Matt Sent: Friday, May 22, 2015 10:47 PM To: Duy Nguyen Cc: Junio C Hamano; git@xxxxxxxxxxxxxxx Subject: RE: recovering from "unordered stage entries in index" error > So maybe you can do "GIT_TRACE=2 git svn fetch" and post the output. > I'd expect to see something like "git read-tree <sha1>" before "fatal: > unorder...". You can then use git ls-tree <sha1> to examine this tree, > try to sort the file list with "LANG=C sort" and compare with the > original list. There is no read-tree in the output (below). The sha1 that is mentioned, 74332b7, is the one for the current trunk: $ git svn log -1 --show-commit --oneline trunk r231655 | 74332b7 | CLT: changed skill from not compound to compound. So not surprisingly, I guess, I get basically the same results as with the ls-files commands earlier: files with Unicode chars are quoted and sort at the front: $ git ls-tree --name-only -r 74332b7d653cde7ba3b999cc7b0adcfd9d924440 > ls-tree $ LANG=C LC_ALL=C sort ls-tree > ls-tree-sorted-lc-all $ grep -n Ninja__Beta ls-tree* ls-tree:36974:"curriculum/Fluency/Hurix work/source from May 2014/For_Anesh/06 Deliverables/Phase 2/FT3 \342\200\223 Ninja/FT3 \342\200\223 Ninja__Beta.zip" ls-tree-sorted-lc-all:89:"curriculum/Fluency/Hurix work/source from May 2014/For_Anesh/06 Deliverables/Phase 2/FT3 \342\200\223 Ninja/FT3 \342\200\223 Ninja__Beta.zip" (Just sorting with LANG=C but without LC_ALL=C produced a ton of other differences, mostly around numeric vs. lexical ordering as far as I could tell.) I tried this same thing with my test repo, and it exhibits the same quoted-filename-sorts-to-the-top behaviour, but does not exhibit the git svn fetch write-tree error. $ GIT_TRACE=2 git svn fetch 22:21:16.683918 git.c:557 trace: exec: 'git-svn' 'fetch' 22:21:16.683945 run-command.c:351 trace: run_command: 'git-svn' 'fetch' 02:21:16.918593 git.c:348 trace: built-in: git 'rev-parse' '--git-dir' 02:21:16.920218 git.c:348 trace: built-in: git 'rev-parse' '--show-cdup' 02:21:16.921997 git.c:348 trace: built-in: git 'config' '--bool' '--get' 'svn.fetchall' 02:21:16.923609 git.c:348 trace: built-in: git 'config' '--int' '--get' 'svn.repack' 02:21:16.925164 git.c:348 trace: built-in: git 'config' '--get' 'svn.repackflags' 02:21:16.926706 git.c:348 trace: built-in: git 'config' '--get' 'svn.revision' 02:21:16.928847 git.c:348 trace: built-in: git 'config' '--bool' '--get' 'svn.nocheckout' 02:21:16.930410 git.c:348 trace: built-in: git 'config' '--bool' '--get' 'svn.useSvnsyncProps' 02:21:16.931963 git.c:348 trace: built-in: git 'config' '--bool' '--get' 'svn.localtime' 02:21:16.933538 git.c:348 trace: built-in: git 'config' '--get' 'svn.includepaths' 02:21:16.935107 git.c:348 trace: built-in: git 'config' '--get' 'svn.username' 02:21:16.936675 git.c:348 trace: built-in: git 'config' '--bool' '--get' 'svn.noauthcache' 02:21:16.940413 git.c:348 trace: built-in: git 'config' '--bool' '--get' 'svn.quiet' 02:21:16.942064 git.c:348 trace: built-in: git 'config' '--bool' '--get' 'svn.uselogauthor' 02:21:16.943696 git.c:348 trace: built-in: git 'config' '--bool' '--get' 'svn.noMetadata' 02:21:16.945344 git.c:348 trace: built-in: git 'config' '--bool' '--get' 'svn.useSvmProps' 02:21:16.947607 git.c:348 trace: built-in: git 'config' '--bool' '--get' 'svn.parent' 02:21:16.950737 git.c:348 trace: built-in: git 'config' '--bool' '--get' 'svn.addauthorfrom' 02:21:16.952532 git.c:348 trace: built-in: git 'config' '--get' 'svn.authorsprog' 02:21:16.954133 git.c:348 trace: built-in: git 'config' '--get' 'svn.ignorepaths' 02:21:16.955704 git.c:348 trace: built-in: git 'config' '--bool' '--get' 'svn.followparent' 02:21:16.957287 git.c:348 trace: built-in: git 'config' '--get' 'svn.configdir' 02:21:16.958930 git.c:348 trace: built-in: git 'config' '--get' 'svn.authorsfile' 02:21:16.962142 git.c:348 trace: built-in: git 'config' '--int' '--get' 'svn.logwindowsize' 02:21:16.963913 git.c:348 trace: built-in: git 'config' '--get' 'svn.ignorerefs' 02:21:16.966130 git.c:348 trace: built-in: git 'rev-parse' '--symbolic' '--all' 02:21:16.970537 git.c:348 trace: built-in: git 'config' '-l' 02:21:16.972410 git.c:348 trace: built-in: git 'config' '-l' 02:21:16.974187 git.c:348 trace: built-in: git 'config' '--bool' 'svn.useSvmProps' 02:21:16.976074 git.c:348 trace: built-in: git 'config' '-l' 02:21:17.136056 git.c:348 trace: built-in: git 'config' '--int' '--get' 'svn-remote.svn.branches-maxRev' 02:21:17.137928 git.c:348 trace: built-in: git 'config' '--int' '--get' 'svn-remote.svn.tags-maxRev' 02:21:17.140124 git.c:348 trace: built-in: git 'config' '--get' 'svn-remote.svn.url' 02:21:17.142192 git.c:348 trace: built-in: git 'config' '--get' 'svn-remote.svn.pushurl' 02:21:17.144203 git.c:348 trace: built-in: git 'config' '--get' 'svn-remote.svn.uuid' 02:21:17.149689 git.c:348 trace: built-in: git 'rev-list' '--pretty=raw' '--reverse' '74332b7d653cde7ba3b999cc7b0adcfd9d924440..refs/remotes/trunk' '--' 02:21:17.152412 git.c:348 trace: built-in: git 'config' '--get' 'svn-remote.svn.rewriteRoot' 02:21:17.154482 git.c:348 trace: built-in: git 'config' '--get' 'svn-remote.svn.rewriteUUID' 02:21:17.160391 git.c:348 trace: built-in: git 'cat-file' '--batch' 02:21:17.582641 git.c:348 trace: built-in: git 'config' 'svn-remote.svn.branches-maxRev' '231655' 02:21:17.585237 git.c:348 trace: built-in: git 'config' 'svn-remote.svn.tags-maxRev' '231655' 02:21:17.590152 git.c:348 trace: built-in: git 'config' '--get' 'svn-remote.svn.usesvmprops' 02:21:17.592063 git.c:348 trace: built-in: git 'config' '--get' 'svn-remote.svn.nometadata' 02:21:17.593997 git.c:348 trace: built-in: git 'cat-file' 'commit' '74332b7d653cde7ba3b999cc7b0adcfd9d924440' 02:21:17.596529 git.c:348 trace: built-in: git 'write-tree' fatal: unordered stage entries in index write-tree: command returned error: 128 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html