On Sun, Nov 04, 2018 at 07:10:26PM +0100, Nguyễn Thái Ngọc Duy wrote:
When a commit is reverted (or cherry-picked with -x) we add an English
sentence recording that commit id in the new commit message. Make
these real trailer lines instead so that they are more friendly to
parsers (especially "git interpret-trailers").
A reverted commit will have a new trailer
Revert: <commit-id>
Similarly a cherry-picked commit with -x will have
Cherry-picked-from: <commit-id>
When reverting or cherry picking a merge, the reverted/cherry-picked
branch will be shown using extended SHA-1 syntax, e.g.
Revert: <commit-id>~2
Since we're not producing the old lines "This reverts commit ..." and
"(cherry picked from commit .." anymore, scripts that look for these
lines will need to be updated to handle both. Fresh new history could
just rely on git-interpret-trailers instead.
Overall, I like the idea of this series. This is a much cleaner way to
handle things and much better for machine-readability. I foresee git
cherry potentially learning how to parse this, for example, for cases
where the patch-id doesn't match due to context changes.
However, I do have concerns about breaking compatibility with existing
scripts. I wonder if we could add a long alias for git cherry-pick -x,
say "--notate" and have "--notate=text" mean "-x" and "--notate=trailer"
mean this new format. Similarly, git revert could learn such an option
as well.
One final thought: since our trailers seem to act as if we wrote "this
commit" (has been), I wonder if we should say "Reverts" instead of
"Revert" for consistency.
--
brian m. carlson: Houston, Texas, US
OpenPGP: https://keybase.io/bk2204