return command output in more places; actually error out when we can't check out a branch instead of logging a message in a sea of information