2011/11/5 Junio C Hamano <gitster@xxxxxxxxx>: > Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> writes: > >> Pathspec in "git log -p <pathspec>" is used for both commit pruning >> and diff generation. If --full-diff is given, then diff pathspec is >> reset to generate complete diff. >> >> This patch gives more control to diff generation. The first pathspec in >> "git log -p -- <pathspec> -- <pathspec>" is used as commit pruning >> as usual. The second one is used for diff generation. So --full-diff >> now is essentially "git log -p -- <pathspec> --". > > I agree that giving more control to diff generation is a good idea, and > this certainly is better than the previous round that nobody reviewed > before you rerolled this round. > > But I have doubts about declaring "--full-diff is equivalent to giving the > 'output' pathspec that is empty". The equivalent command should be "git log -p -- <pathspec> -- :/" (in case you're in subdir). What doubts specifically? > Have you thought about the interaction between this and -M/-C options? No, yes I may have problems there. > This is not a new "problem" (and it is probably not a problem to begin > with). If you had "--" in the working tree and you wanted to treat it as > a path, you said either one of these: > > $ git log HEAD ./-- > $ git log HEAD -- -- > > The latter is what your patch breaks, I suspect. > > Also it forces existing scripts and programs that knew "everything in this > array is a pathspec" and added "--" before adding the contents of the > array to form a command line to drive "git log" family of commands to be > updated. We could only recognize the second "--" when a new argument is given so it won't break existing use. But I'll need to look at -C/-M first. Smells like --follow problem. -- Duy -- 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