Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> writes: > This new helper is identical to base_name_compare(), except it compares > conflicting directory/file entries as equal in order to help handling DF > conflicts (thus the name). > > Note that while a directory name compares as equal to a regular file > with the new helper, they then individually compare _differently_ to a > filename that has a dot after the basename (because '\0' < '.' < '/'). Uh, that screams just bloody murder at me with regard to working on sorted material. You'll never even get into the situation where the conflicting "equal" entries will be compared if you presorted them with something in between. Consider the case of a merge of A: blubb blubb.hi B: blubb.hi blubb/ Any traversal that is done reasonably efficiently will never compare blubb to blubb/ and I don't see how to get around this. Basically, I think you need a special traversal routine. This routine will push all non-directory entries during a parallel traverse into a might-conflict-queue, appending a slash in the course. The front of this queue then gets compared with the next processed entry. If it is larger, it is kept at the front, if it is equal, the conflict gets treated/resolved, if it is smaller, it gets popped (since it can't conflict anymore). -- David Kastrup, Kriemhildstr. 15, 44793 Bochum -- 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