Commit Briefs

94ff3fb6ac 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@


c4d68ce020 Thomas Adam

Use pipe() which is a more understood syscall than pipe2() which doesn't

exist on MacOS, for instance. Since we we're passing in 0 to pipe2(), this mean no fcntl() flags were being sent. As such, it's the same syscall as pipe() which also has the added benefit that it's more portable. committing on behalf of thomas with my ok


ea08db7370 Thomas Adam

whitespace fix


64313a9ca0 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@



459c9b5d72 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.


25eb584767 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.


634cb45445 Thomas Adam

tog: add C-g/backspace key map to abort compound cmds

Problem reported by stsp: 9999j would tie up tog till completed. While here, trim trailing whitespace in tog.1 and make C-g alias existing backspace abort key map for search and G in log view. ok op@ and stsp@


444d532558 Thomas Adam

tog: expand horizontal split support to all views

With this, hsplits are now available to the same parent/child view combinations as vsplits. Includes OB1 log truncation fix from op@ that was reported by stsp. ok stsp@


871bd03807 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@


39b829747f Thomas Adam

fix imsg_add TREE_ENTRY: Result too large on i386

There's a math error when computing the size of one entries in the batching code. Reported by semarie, ok semarie stsp


fd8b4acb31 Thomas Adam

fix leftovers from long -> int change

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


bb90ca7bc1 Thomas Adam

got patch: handle mangled whitespaces

This makes 'got patch' try to ignore whitespaces when trying to match a hunk. Discused with and ok stsp@


25a880e1b4 Thomas Adam

got patch: don't loose the x bit when merging with diff3

This fixes a regression introduced with the diff3 merge: files merged this way have their permissions resetted after patch. The issue is due the fact that patch_file looks at a temporary files and not at the original "old file". Reported by and ok stsp@


762e07b8b3 Thomas Adam

aesthetic: rename regress to test_patch_rm_file

drop the "simple" part, there's no "complex" way of removing files.


8d8dc2a39f Thomas Adam

augment test_patch_add_line

Try to create a file with more than one line, it would have catched an issue with my wip diff for ignore whitespaces in got patch. While here rename the function to drop "simple".


68ceedb3e6 Thomas Adam

refactor the patch parser

Introduce a patch_start routine that finds the next "diff" header (if there is one); the idea is to persist some state (commit id and wether it's a "git diff") while processing the content of the diff. It's needed because in the case of 'got diff' some information like the commit id are only present once at the beginning. As a consequence, the patch parser becomes slightly more robust (concatenating diffs produced by different means shouldn't confuse it anymore) and drops the support for "old" got diffs, the ones previous the introduction of the "commit -/+" header. ok tracey@


fa502711bb Thomas Adam

tog: remove count prefix timeout and bold output

Suggested by naddy. block till non-numeric input is entered, and don't echo in bold. ok naddy@ op@ and stsp@


244157854d Thomas Adam

unconditionally set x/y pointers in view_get_split()

suggested by and ok op@


adf4c9e089 Thomas Adam

make the diff algorithm used by 'tog diff' and 'tog blame' configurable

ok jamsek


0ab5c5dd8a Thomas Adam

portable: sync CFLAGS with upstream

Due to the way the Makefiles are structured, there is no direct mapping between upstream and how -portable provides the same functionality. Therefore, add -Wunused-variable and -Wwrite-strings as per previous commits.


25ec70067d Thomas Adam

switch 'tog diff' and 'tog blame' to Myers diff for speed

Make the choice of diff algorithm configurable by diff API users. The got and gotweb programs keep using Patience diffs which are prettier than Myers. But tog should be as fast as possible since it is being used interactively. If performance of Patience diff gets improved later we can consider switching tog back over to it. ok tracey jamsek


068ab281f5 Thomas Adam

tog: fix C-d and G log view keymaps in horizontal split

Account for the border so we don't scroll offscreen, and don't unset the load_all flag till all commits have been loaded so we take the correct path in log_move_cursor_down(). ok stsp@


e44940c3e5 Thomas Adam

fix fullscreen / split-screen toggle in tog

ok jamsek


dd2e2f52c1 Thomas Adam

move more opentemp out of diffreg.c

ok tracey