Commits


got: improve reporting accuracy in branch listing output As suggested by stsp, show the out-of-date symbol for the work tree branch if it is not only out of date in relation to the branch tip but also if it contains mixed commits. Update regress and add new test to check for this case. Also, explain the mixed commit condition of * and ~ markers denoting work tree state in got(1) branch -l docs. ok stsp@


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


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


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


fix broken sentence in got.1 (was missing a word)


consistently mention 'got merge' as an alternative to 'got rebase' in got.1


histedit, rebase: document -c, -C are compatible


fix option processing for 'got merge' Don't make -C imply -c (a break statement was missing). Detect -an and -cn conflicts. Simplify by removing unneeded check for conflicting -aC (since -C requires -c, we can rely on the -ac conflict being detected). Update the man page to say -cC is allowed.


add -M option: tell got merge not to fast-forward ok stsp@


typo


tweak wording in got.1 which suggested that use of rebase was mandatory


explain why the first 'got clone' example in got.1 will often fail


provide a 'got merge' example in the EXAMPLES section of got.1


prevent 'got merge' from creating commits on branches outside of "refs/heads/" ok op, james


make 'got add' more forgiving about unversioned paths on the command line When users run 'got add *' the shell may pick up already versioned files and trigger errors about paths being in an unexpected status. Expand the check which previously only allowed files in added status to be double-added to cover the following status codes which are all safe to ignore: A M C m This should make bulk additions of files a bit easier in most cases. Problem reported by robert@ ok jamsek


Implement fast-forward merges. Split part of got_worktree_merge_prepare into a new function, got_worktree_merge_write_refs, since that part doesn't make sense in the fast-forward case. ok stsp@


show how to fetch a pull request in got.1 pull request example section


allow no-op merge commits to be created Requested by James Cook