From: Junio C Hamano Date: Fri, 20 May 2005 15:29:22 GMT Subject: Re: "git-diff-tree -R A B == git-diff-tree B A"? Message-ID: <7v64xdvru5.fsf@assigned-by-dhcp.cox.net> In-Reply-To: >>>>> "LT" == Linus Torvalds writes: LT> On Fri, 20 May 2005, Junio C Hamano wrote: >> >> I was preparing a set of tests for diff family because I wanted >> to have something that catches screwups I am going to inflict >> upon them during the coming couple of days. One of the tests >> accidentally found out that the above is not true in the current >> implementation. Just an excerpt of relevant lines [*1*]: >> >> $ git-diff-tree -r $tree_B $tree_A >> >> +100644 blob 7e426fb079479fd67f6d81f984e4ec649a44bc25 AN >> +100644 blob 68a6d8b91da11045cf4aa3a5ab9f2a781c701249 DF/DF >> -100644 blob 71420ab81e254145d26d6fc0cddee64c1acd4787 DF >> -100644 blob 3c4d8de5fbad08572bab8e10eef8dbb264cf0231 DM >> >> $ git-diff-tree -R $tree_A $tree_B >> >> +100644 blob 7e426fb079479fd67f6d81f984e4ec649a44bc25 AN >> -100644 blob 71420ab81e254145d26d6fc0cddee64c1acd4787 DF >> +100644 blob 68a6d8b91da11045cf4aa3a5ab9f2a781c701249 DF/DF >> -100644 blob 3c4d8de5fbad08572bab8e10eef8dbb264cf0231 DM LT> Ahh.. "diff-tree" uses the wrong algorithm for selecting name ordering. LT> It thinks that "DF" and "DF/" sort equally because it just looks at the LT> name, not the type. So then, becuse the names sort the same, it will sort LT> them according to where they come from, and you get the behaviour you see. LT> It doesn't really matter, but you're right, I should fix it to be LT> consistent. Don't bother. I already have a fix with the test case.