Junio C Hamano wrote: > 2. git-pickaxe -M: blame line movements within a file. > > This adds logic to find swapped groups of lines in the same > file. When the file in the parent had A and B and the child > has B and A, "single diff with parent" would find only one > of A or B is inherited from the parent, not both. This > re-diffs the remainder with the parent's file to find both. > > I used to have heuristics to avoid trivial groups of lines > from being subject to this step, but in this version they > have been removed, so that we can see the core logic and > need for heuristics more clearly. > > On the other hand, the version I used to have in "pu" gave > blame to the first match. This one tries to find the best > match and assign the blame to it. > > 3. git-pickaxe -C: blame cut-and-pasted lines. > > This adds logic to find groups of lines brought in from > existing file in the parent. We scan the remainder using > the same logic as -M detection, but it is done against > other files in the parent. > > There was a heuristic that gave the blame to the parent > right then and there when we find a copy-and-paste instead > of allowing the parent to pass blame further on to its > ancestors; again I removed this heuristics in the reordered > series. The names of options clash somewhat with -M and -C in diffcore, which detect contents 'M'oving (renaming files), and contents 'C'opying (copying files), where in git-pickaxe -C is still about code movement, only across files (-M -M or --MM?). Would git-pickaxe try to do also copy-and-paste within the file, and across files? -- Jakub Narebski Warsaw, Poland ShadeHawk on #git - 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