[[!comment format=mdwn username="http://joeyh.name/" ip="209.250.56.146" subject="comment 8" date="2014-03-06T20:21:16Z" content=""" Analysis: Remote.Git's onLocal calls Annex.new to make a new AnnexState for the local remote. This state is not cached, and is regenerated for each file. Since it runs a Annex.Branch check of the location log on the remote, it needs to start catFile, and since the state is not reused, a new CatFileHandle is allocated each time. I'm not sure, but there may have been a recent-ish change that caused the location log to get checked and so catfile to be run; the general inneficiency of making a new AnnexState each time is not new. Fixing this by caching the AnnexState will not only fix the resource leak, but should speed up local to local copies significantly! """]]