Should first try to interpret commit id as a destination commit; look it up, find the corresponding source commit. If this fails, try to interpret the parameter as a source id.
Then process that one commit with --verbose output, and exit immediately without actually committing it.
This would make debugging cases like https://github.com/facebook/fbshipit/blob/master/DEBUGGING.md#why-are-filescommits-being-skipped somewhat easier.