implement support for keywords as got <commit> arguments
commit9139e0049a78ea0a4d285e4e5e4874893c0b9a09
authorMark Jamsek <mark@jamsek.dev>
Mon, 17 Jul 2023 07:48:41 +0000 (17 07:48 +0000)
committerThomas Adam <thomas@xteddy.org>
Mon, 17 Jul 2023 16:31:44 +0000 (17 17:31 +0100)
tree79c4804b9596753870bfdc3b8f812650468467bd
parent5a44570065e95758417914d5380e371907987be5
implement support for keywords as got <commit> arguments

This begins enabling the use of keywords in got wherever commit ids or
references are used, with more work intended to expand support across all
such instances (e.g., branch, checkout, etc.), and add more keywords.

The keywords ":base" and ":head" can be passed to 'got {diff,log,update} -c'
commands as a substitute for the corresponding commit hash id. Keywords and
references can also be modified by appending a ':+' or ':-' and an optional
integer N to specify by first parent traversal the Nth generation descendant
or antecedent, respectively. If N is omitted, a '1' is implicitly appended.

tweaks + ok op and stsp
got/got.1
got/got.c
include/got_error.h
include/got_keyword.h [new file with mode: 0644]
lib/error.c
lib/keyword.c [new file with mode: 0644]
regress/cmdline/common.sh
regress/cmdline/diff.sh
regress/cmdline/log.sh
regress/cmdline/update.sh