I see two problems ;-). Maybe it's better to assert because it forces the developer to validate the path before blindly giving it to us (it's gonna get used *while* the operation is in progress, which means a network operation that is doomed to fail if you don't check before. The other problem is that our current NSError machinery isn't really adapted to non-`libgit2` errors (yet ;-)).
Also, this assert merely checks that the user isn't passing anything else than a `file://` URL in there (I'm asserting for `nil` just above, but we *require* a local path in there).