portable: release 0.91

portable: tog: add keyword.c

visit the cvg/ subdir during 'make clean' and 'make obj'

tog: add support for commit keywords Allow keywords as arguments to options and operands for the blame, diff, log, and tree commands. Also, return 1 when exiting tog with error rather than 0 so regress can discern success from failure. ok stsp@

use a separate .cvg meta data directory for cvg(1) work trees This prevents mixing the use of got and cvg clients in the same work tree. Avoids confusion going forward while cvg differentiates itself further. tog(1) and gotadmin(1) remain compatible with both work tree formats. These tools only read work trees to locate the corresponding repository.

remove stray .Pp that I overlooked in my previous commit

apply brevity tweaks for newly added keyword docs

got: enable more commands to accept commit keywords More work adding commit keyword support to the blame, cat, ref, tag, and tree commands. With this, all Got commands that take a <commit> option argument or operand now support keywords. Regress flub saved by op! fixes + ok op@

reword commit keyword argument descriptions in got.1 for brevity

reorder some paragraphs in got.1 to make default behaviour easier to spot

expand support for commit keywords to more got commands Add the ability to use keywords in the backout, branch, checkout, cherrypick, and patch commands. Includes some basic regress tests for the new commands, and also some more contrived test cases for 'got log -c[:]keyword[:(+|-)[N]]'. ok stsp

portable: add keyword.c

avoid HEAD when talking about a work tree; HEAD is specific to the repository ok jamsek

move discussion of keyword arguments to -c into separate paragraphs

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

cvg: restore accidentally deleted "tag" and "add" man page bits ok jrick

abort histedit if the user quits the editor without saving the script Also document that the commit/import/tag operations are aborted when the user fails to save the log message from the invoked editor. ok jamsek stsp

always report stat() error with path ok stsp

tog: fix double-free in blame view error path open_diff_view() has already called view_close() on error. Patch by Josiah Frentsos.

always report stat() error with path ok stsp

prevent useless EEXIST errors filling up the global custom error array While checking out files, do not attempt to create every directory that exists in the repository tree without paying consideration to their existence on disk. Instead, let functions which add files worry about creating any missing parent directories. This shakes out two other bugs in broken symlink installation code which ended up passing an absolute path to add_dir_on_disk() and forgot to report progress in an unreachable code path that is now getting used. Problem reported by + ok naddy@

fix typo in a comment

plug got_object_id leak in cmd_log() backport of b161263abf48e69eb1f05028b633808dfe337357 to cvg

plug got_object_id leak in cmd_log() ok stsp@