It turns out that `git_index_update_all` will return an error (Operation couldn't be completed) if you return -1. This is problematic because returning an error indicates that the operation failed completely, which is inaccurate. Take this example:
``` Objective-C
BOOL success = [Index updatePathspecs:NULL error:NULL  passingTest:^BOOL(NSString *matchedPathspec, NSString *path, BOOL *stop) {
if ([matchedPathspec isEqualToString:@"fileName.txt"]) {
    *stop = YES:
    // Found it! Add it to the Index.
    return YES;
} else {
    return NO; 
}
}];
if (!success) // Success is NO, even though we did update the file we were looking for.
```
This makes me doubt weather or not the `stop` parameter is nesscery.