warn() tries to warn you when you overspecify a commit (by
giving more than one of ref, tag, branch, or sha1).
1) fix it to actually work (it was always warning)
2) Improve the warning to indicate not only which is taking
precedence but what was supplied for the others.