libgit2/libgit2 — pull request #1123 by carlosmn (2012-12-07 14:29:35+00:00)
Title: tree: relax the filemode parser

There are many different broken filemodes in the wild so we need to
protect against them and give something useful up the chain. Don't
fail when reading a tree from the ODB but normalize the mode as best
we can.

As 664 is no longer a mode that we consider to be valid and gets
normalized to 644, we can stop accepting it in the treebuilder. The
library won't expose it to the user, so any invalid modes are a bug.

Inspired by libgit2/rugged#123