Also, I feel that something like the following would be a bit better:

```
if (!NIL_P(checkout_branch_val)) {
    CHECK_TYPE(checkout_branch_val, T_STRING);
    ret->checkout_branch = StringValueCStr(rb_path);
}
```