Commits


provide functions to parse/serialize different hashes it abstracts over the hash type and ensures that object ids are zero'ed before their sha1 digest is written. Needed by the incoming sha256 support. ok stsp@


introduce got_object_id_hex to replace some got_sha1_digest_to_str() It's an analogous to got_object_id_str but writes to the given buffer. ok + improvements by stsp@


provide a getline-style function for blobs ok jamsek


add got_object_blob_is_binary function needed for future use by gotwebd. ok stsp@


drop unconventional got_object_commit_dup() routine Replace with got_object_commit_retain() to increment commit object reference counter. suggested by and ok stsp@


tog: add new log view limit feature to filter commits Use the & key map to enter a pattern with which to limit the displayed commits to those matching the provided pattern; similar to less(1) and mutt's limit feature. Includes various tweaks from op. ok plus fixes from op@


remove trailing whitespace; patch by Josiah Frentsos


create and verify tags signed by SSH keys This adds a new -s flag to 'got tag' that specifies the signer identity (for example, a key file) of the tagger. The tag object will include a signature that validates each of the tag object headers and the tag message. Verifying these signed tags requires maintaining an allowed signers file which maps signer identities (i.e. the email address of the tagger) to SSH public keys. See ssh-keygen(1) for more details of the allowed signers file. After creating this file and providing the path to it in got.conf(5) using the allowed_signers option, tags may be verified using with 'got tag -V tag_name'. The return code will be non-zero if a signature fails to verify. ok stsp@


move got_opentempfd out of open_blob. ok stsp@


inline struct got_object_id in struct got_object_qid Saves us from doing a malloc/free call for every item on the list. ok op@


stop relying on commit cache for good performance of got_object_id_by_path() Instead of internally opening and closing the same commit object over and over again, require callers to pass an open commit object in. Avoids an inherent dependency on the commit object cache for reasonable performance. ok op@


wrap overlong lines


implement 'got diff -c' for diffing commits with optional filtering by path Need for filtering by path sugggested by kn@ ok naddy@


switch from SIMPLEQ to equivalent STAILQ macros The singly-linked tail queue macros were added to OpenBSD 6.9 and are more widely available on other systems. ok stsp


introduce got_object_id_queue_copy() This will be required by a future 'gotadmin pack' command.


add a user data pointer to struct got_object_qid This will be required by a future 'gotadmin pack' command.


fix type of filesize output parameter of got_object_blob_dump_to_file()


add symlink support to 'got cherrypick'; test non-conflict cases only for now


add got_object_tree_entry_is_symlink() and got_object_resolve_symlinks()


let 'got checkout' create symlinks in a work tree


make 'got/tog tree' show symlink targets like 'ls -lF' does: link@ -> target


convert tree entries from SIMPLEQ to an array


detect and ignore Git submodules


initial implementation of 'got tag' command


make 'got cat' output look more like raw object files