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@vger.kernel.org
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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to