Just to make it clear, since we don't have a ton of public iterator APIs just yet, you may want to elaborate here that a return of 0 means no error, GIT_ITEROVER means the iteration is done, and any other negative value is an error code.