On Tue, Aug 31, 2010 at 7:50 PM, Junio C Hamano <gitster@xxxxxxxxx> wrote: > Chris Patti <cpatti@xxxxxxxxx> writes: > >> function parseCommit($old_sha1,$new_sha1) { >> # if this is the first commit on a new branch, $old_sha1 will >> be a bunch of zeroes, and so >> # git diff --raw will fail, since there's no old ref to >> compare against. So, we parse the >> # results of git diff-tree -root=$new_sha1 instead to get the >> blob and filename we'll need. >> if (detectNewBranch($old_sha1,$new_sha1)) { >> $diffcmd="git diff-tree --root $new_sha1"; > > This somehow feels wrong. If the tree of the new commit is flat without > subdirectory, the above would do, but don't you need "diff-tree -r" here? > I tested with subdirectories, and subdirs with subdirs, and no failures, worked perfectly. So, not sure what feels wrong to you, but for now, it works :) I will seek to better understand the internals I'm mucking with here so I can figure out why you see the current implementation as being suspect. -Chris -- Christopher Patti - Geek At Large | GTalk: cpatti@xxxxxxxxx | AIM: chrisfeohpatti | P: (260) 54PATTI "Technology challenges art, art inspires technology." - John Lasseter, Pixar -- 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