From ArcanistUpgradeWorkflow:
try {
phutil_passthru('git pull --rebase');
} catch (Exception $ex) {
phutil_passthru('git rebase --abort');
throw $ex;
}Nothing's checking the return value of phutil_passthru (the exit status of the git pull). So even if there's an error, the "now up to date" message is still printed.