Commit Briefs

Thomas Adam

reset committer during rebase and histedit

ok op@



Thomas Adam

fix wrong error return in cmd_commit()


Thomas Adam

We don't care about the length of the read line.

Found by llvm's scan-build (dead store). OK stsp


Thomas Adam

Dot not ignore error from got_object_id_str().

Found by llvm's scan-build (dead store). OK stsp


Thomas Adam

typo in cat_commit

otherwise prints the author instead of the committer


Thomas Adam

got commit: add flag to specify the author

This adds a new flag, `got commit -A', that allows to specify the commit author but retains the "committer" (which is obtained as usual via GOT_AUTHOR, got.conf or git config.) with lots of help from and ok stsp


Thomas Adam

fix email address parsing

we were both too strict and too lose. To avoid breaking got object parser (and to some extent ours too) we need to ensure that there aren't any line feeds, extra < or > and no trailing gibberish. The '@' is not actually required in the email. various tweaks and ok stsp


Thomas Adam

portable: add back sys/queue.h

Now that the handling of including sys/queue.h is better, there's no need to remove those lines from the source. Copy the location of those original sys/queue.h lines from upstream at the same line number, so as to avoid any conflicts in the future.


Thomas Adam

histedit: make sure mesg is only used after pick or edit

It doesn't really make sense to use mesg after a fold or drop, or after another mesg. it currently "works" as intended, but the behaviour is confusing and not useful, better abort the operation as it's probably not what the user intended. Suggested by and ok stsp@



Thomas Adam

add signer_id option to got.conf(5)

Setting this option will cause 'got tag' to sign all created tags using the SSH key, unless overridden by the -s flag. ok stsp@


Thomas Adam

move 'got init' command to 'gotadmin init'

This functionality is better suited for gotadmin because it is technically a server-side repository operation when we consider the 'got' tool as the client-side tool. I have plans to move 'got import' into gotadmin as well. ok op@


Thomas Adam

portable: remove sys/queue.h

This is included portably.








Thomas Adam

fix tag signing when the key file does not exist

This should fail without creating any tag. Before, ssh-keygen(1) would print an error to stderr, but got would create an unsigned tag. ok op@


Thomas Adam

rename got.conf(5) mirror-references to mirror_references for consistency

Existing configuration files will keep working for now since the old name with dashes is still recognized by the config parser.


Thomas Adam

rename got.conf(5) fetch-all-branches to fetch_all_branches for consistency

Existing configuration files will keep working for now since the old name with dashes is still recognized by the config parser.


Thomas Adam

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@


Thomas Adam

fix leftovers from long -> int change

when changing the line addresses to be int from long the report callaback was forgotten.