I understand "we just took what little pieces we needed instead of adding a dependency on the entire thing", but what is meant by "the code grew in a different direction due to various reasons"?
We started using commons-io as just a dependency, but after a while we needed some tweaks to better let it integrate with Wicket (at least that's what I remember) and later on, when we tried to cut down on dependencies we went from a 'patched' version to just taking the classes we needed. Eelco