The Branch.Remote property can throw when it attempts to resolve a remote for a remote-tracking branch, and the remote cannot be found or is ambiguous. In those situations, Branch.Remote should return null. If there is a need for the specific exception to be returned, we can look at transitioning to a method for this functionality.
When global user.name or user.email is set to an empty value, it will now throw a LibGit2SharpException with proper explanatory message. Previously it would throw an ArgumentException with obscure message: "String cannot be empty\nParameter name: name".
If reverting with the option to commit on success, and the revert completes successfully but there are no changes to commit, then revert will clean up the revert operation in progress state and the RevertStatus will indicate that there was nothing to revert.