Commits


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


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@


gotadmin cleanup: don't delete pack files that are too young similar to what we do for loose objects, avoid deleting pack files that were created "too soon" unless -a is given. This prevents races when gotadmin load, got fetch or gotd are installing a new pack file and a concurrent gotadmin clean attempts to remove it. ok stsp


purge_redundant_pack(): don't special-case .pack or .idx leftover, the error handling of unlink() a couple of lines below used to carry a similar special-casing but was dropped; drop it here too.


take reachability in consideration when cleaning redundant packfiles This wraps the cleaning up of loose objects and redundant pack files under a new functions, making the _prepare() and _complete() functions unnecessary. It walks the reachable commits unconditionally since that information is always needed and adapt how we purge loose objects after this change. The progress function is changed too and we log `ncommits' first, followed by the number of loose objects, followed by the rest. Pack files are now considered redundant when all their objects are provided by a bigger pack or are unreachable. ok stsp


make 'gotadmin load' always read data from standard input This provides better symmetry with 'gotadmin dump', and allows us to pass the list of references as command line arguments, replacing the -b option. The -l option now takes an argument which specifies the bundle file rather than requiring data to be fed on stdin with -l which feels awkward. ok op@


refer to the dump stream's format as "bundle" rather than "dump"


fix copy-paste error in gotadmin.1 load section


unfold a line


gotadmin load: don't add a newline when listing refs the newline is only needed after the progress output, which is not present in the 'listing refs' case.


add an initial implementation of gotadmin load it is intended to be the counterpart of `gotadmin dump' and, just like it, there's planned support for handling fast-import stream. At the moment it only deals with git bundles. ok stsp


plug leak in got_fetch_pack error path set err and goto done instead of an early return that leaks various things. ok jrick


remove documentation of Got commands which cvg will not implement


remove the cvg ref command; we do not expect that users will need it ok jrick