On Thu, Mar 21, 2013 at 08:21:30AM -0400, Jeff King wrote: > On Thu, Mar 21, 2013 at 05:29:39PM +0530, Ramkumar Ramachandra wrote: > > > > This must be a trick question but the naïve way I think of is > > > > > > git log --diff-filter=A -- path1 path2 > > > > Thanks, I didn't know about --diff-filter. I'll need one extra step > > to figure out which commit corresponds to the introduction of which > > file, no? > > Maybe > > git log --format=%H --name-status --diff-filter=A -- path1 path2 | > perl -lne ' > if (/[0-9a-f]{40}/) { $commit = $& } > elsif (/^A\t(.*)/) { $h{$1} = $commit } > END { print "$h{$_} $_" for keys(%h) } > ' Actually, I only looked at your question, not the original point, which was not which commit was which, but which one was older. If you just want to know which is older, then just: git log --format=%H --name-status --diff-filter=A -- path1 path2 | grep ^A | tail -1 which uses the regular traversal order (i.e., mostly following commit timestamps). You can use --topo-order if you want to make sure it follows the graph structure. -Peff -- 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