Branch


Log

Author Commit Date CI Message
Stefan Sperling 10c4445c 2022-07-04T11:58:45 document SSH-based signing and verification in got(1) and got.conf(5)
Stefan Sperling 48f19407 2022-07-04T11:19:14 in tests, verify that tag -V behaves like tag -l plus signature verification
Stefan Sperling ef98a369 2022-07-04T11:05:06 got tag -V is like tag -l with verification, fix option-conflicts accordingly
Stefan Sperling 49a2d94a 2022-07-04T10:41:22 remove parts of tag_create_ssh_signed which just duplicate the tag_create test
Stefan Sperling 78817826 2022-07-04T09:57:16 add -v option to 'got tag' usage string
Stefan Sperling 153d5e58 2022-07-04T09:55:03 add option-conflict handling for 'got tag' -s and -V options
Stefan Sperling ca61ceca 2022-07-04T09:54:09 add -V option to 'got tag' usage string, and replace underscore with a hyphen
Omar Polo 2c986b8f 2022-07-04T09:15:23 check for specific chars instead of using isspace(3) Reminded by naddy and stsp; it was missing a cast to unsigned char to prevent issues on archs with signed chars and was too broad anyway. While here, drop an extra check immediately after. ok stsp@
Thomas Adam 888ae650 2022-07-03T23:53:34 got_date.h: add explicit #includes Don't rely on implicit/"hidden" includes, but rather add them to the header file so their inclusion doesn't result in missing values. Although not explicitly a functional change, this does help -portable. This ensures size_t/time_t are always present. OK @jrick
Josh Rickmar 5c5d88bf 2022-07-03T21:59:10 remove duplicate test_parseargs call spotted by op@
Josh Rickmar a82759bb 2022-07-03T21:57:37 fix echo/printf order and actually run the test
Josh Rickmar c632297d 2022-07-03T21:49:23 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
Josh Rickmar 2c0a0d66 2022-07-03T21:46:09 whitespace fix
Josh Rickmar 91d845ad 2022-07-03T21:44:01 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@
Stefan Sperling 41e8d27d 2022-07-03T11:36:29 tog man page: provide a hint about differences between Myers and Patience
Stefan Sperling 26e6f38e 2022-07-03T11:32:59 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.
Stefan Sperling f1bf60d1 2022-07-03T11:27:02 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.
Mark Jamsek a6d37fac 2022-07-03T10:54:48 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@
Mark Jamsek 49b24ee5 2022-07-03T10:26:22 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@
Josh Rickmar 4d5ee956 2022-07-02T21:27:21 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@
Omar Polo 6c77e033 2022-07-02T21:21:52 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
Omar Polo 501834af 2022-07-02T21:18:05 fix leftovers from long -> int change when changing the line addresses to be int from long the report callaback was forgotten.
Omar Polo a92a2042 2022-07-02T21:16:13 got patch: handle mangled whitespaces This makes 'got patch' try to ignore whitespaces when trying to match a hunk. Discused with and ok stsp@
Omar Polo 5dffb1a1 2022-07-02T21:08:31 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@
Omar Polo f5b0315f 2022-07-02T19:31:41 aesthetic: rename regress to test_patch_rm_file drop the "simple" part, there's no "complex" way of removing files.
Omar Polo ed2ff8b9 2022-07-02T19:30:36 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".
Omar Polo acf749fc 2022-07-02T13:56:21 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@
Mark Jamsek f0032ce6 2022-07-02T04:09:20 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@
Mark Jamsek 76364b2d 2022-07-02T03:59:37 unconditionally set x/y pointers in view_get_split() suggested by and ok op@
Stefan Sperling 917d79a7 2022-07-01T21:15:13 make the diff algorithm used by 'tog diff' and 'tog blame' configurable ok jamsek
Stefan Sperling 4b752015 2022-06-30T21:35:28 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
Mark Jamsek 0dca135e 2022-06-30T11:43:19 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@
Stefan Sperling 24b9cfdc 2022-06-30T10:52:51 fix fullscreen / split-screen toggle in tog ok jamsek
Stefan Sperling 49d4a017 2022-06-30T10:43:37 move more opentemp out of diffreg.c ok tracey
Tracey Emery e6e73e55 2022-06-30T08:41:14 move remaining got_opentemp's out of blame. ok op@
Mark Jamsek 9b058f45 2022-06-30T05:02:23 tog: implement support for horizontal splitscreens Enable all main views to open primary child views in a horizontal split: log -> diff tree -> blame blame -> diff ref -> log Support is yet to be expanded to nested child views and key maps for manipulating split type and size. ok op@ and stsp@
Mark Jamsek b880cc75 2022-06-30T05:02:23 tog: refactor log cursor movement in prep for hsplit Simplify the log input handler by moving (page)up/down and home/end logic into helper routines as we need to perform some checks on these cases when navigating the log view in horizontal splits. ok op@ and stsp@
Stefan Sperling c71ed39a 2022-06-29T20:57:36 fix split-screen issue in tog when moving focus from child view to parent view Reported by jamsek: $ tog # term wide enough to vsplit return # open commit f # fullscreen commit tab # should go to fullscreen log, but it splits the screen fix ok jamsek
Stefan Sperling 4dd27a72 2022-06-29T15:41:58 fix recent regression in tog where split view was not restored after resize ok jamesk
Stefan Sperling 8c4a6db8 2022-06-29T14:58:58 make it possible to show just one tag with 'got tag -l' suggested by jrick ok jrick jamsek
Stefan Sperling f9d37699 2022-06-28T20:33:41 move got_opentempfd() out of lib/diff.c again ok tracey
Tracey Emery 1b484788 2022-06-28T18:34:57 move got_opentempfd out of blame_open ok stsp@ jrick@
Stefan Sperling 7a13e6e5 2022-06-28T18:19:03 pass the correct file to fdopen(); ok tracey
Tracey Emery ce7556f2 2022-06-28T18:04:05 fix missed dup in open_blob per stsp@
Tracey Emery eb81bc23 2022-06-28T13:27:12 move got_opentempfd out of open_blob. ok stsp@
Stefan Sperling 61af9b21 2022-06-28T11:31:11 implement support for commit coloring in got-read-pack for speed ok op, tracey
Mark Jamsek c301e4ed 2022-06-28T06:28:10 tog: echo count prefix when entering compound key maps like less(1), echo the digits as they're typed. suggested by and ok op@ stsp@
Omar Polo db0dfdd7 2022-06-27T18:47:02 got patch: handle git-style diffs for the 3-way merge too tweak and ok stsp@
Omar Polo 497a5915 2022-06-27T18:47:02 handle blob ids without corresponding blob ids ok stsp@
Omar Polo 58e31a80 2022-06-27T18:47:02 build with -Wwrite-strings Throwing this into the mix for a while, we can always get rid of it again if it becomes annoying. No objections from stsp@
Stefan Sperling 3d589bee 2022-06-25T14:54:41 allow start_pack_privsep_child() to be called from outside lib/object.c
Stefan Sperling 8469d821 2022-06-25T09:25:07 always show commit or tree IDs in diff header, in order to help 'got patch' The idea is that got patch can simply look for a line such as: commit - abcde1234567... to find the merge base commit ID to show in diff3 conflict markers. got log -p now displays commit IDs in its diff header, instead ofl tree or blob IDs. ok op@
Omar Polo 336075a4 2022-06-25T09:22:02 build with -Wmissing-prototypes ok stsp@
Mark Jamsek 640cd7ff 2022-06-22T15:06:48 tog: prefix mvmt keymaps with count modifier like vi(1) Enable compound commands for all movement keymaps (e.g., hjkl, bfdu). The optional prefixed count determines how many times the movement is performed; for example, '123j' (move 123 lines down) or '4f' (scroll 4 pages down). Counts are ignored if preceding non-movement and some singular movement operations (e.g., 't', 'r', 'ret', '/', '$', 'G', 'g'). ok stsp@
Omar Polo 9802c41c 2022-06-21T16:52:34 got patch: use status G for merged files (and document it) Suggested by stsp@. This makes possible to tell if 'got patch' used a merge-base from the repository for the 3-way merge or did a simple search/replace operation. While here update the tests to look for the 'G' status and the manpage, which was also missing the documentation for the 'C' status in got patch. ok stsp@
Omar Polo dbc68eed 2022-06-21T16:52:34 got patch: ignore blobs not found since diffs are often enclosed in other formats (e.g. emails) we might parse something and think it's a blob id when it's not. This should already happens, but apply_patch is looking for the wrong error due to a leftover from previous attempts. Reported by stsp@ while here tweak the test_patch_merge_unknown_blob to also try with a dummy commit id, as now got-read-patch requires it in order to consider a blob id. ok stsp@
Omar Polo 63ba1a3a 2022-06-21T16:52:34 fix `limit' accounting in draw_commit if the child view is fullscreen we don't need to subtract one, because no vborder is drawn. ok Mark Jamsek
Christian Weisgerber 48bb96f0 2022-06-20T20:53:20 tog: make SPACE page down in all views ok op@, Mark Jamsek
Mark Jamsek 6131ff18 2022-06-20T15:54:31 fix fullscreen view regression introduced in 0dbbbe90fd When cycling from a child view in fullscreen, the parent view is opened in a splitscreen with no border instead of fullscreen. Check the view mode when cycling between views and resize parent dimensions accordingly. ok op@
Mark Jamsek 61417565 2022-06-20T05:05:43 alias C-b/C-f to scroll page back/forward with b/f Suggested by naddy. Remap 'f'ullscreen to 'F', and blame view key maps 'b' and 'B' to 'c' and 'C', respectively, per stsp's and naddy's suggestion. While here, remove trailing whitespace. ok naddy@
Omar Polo d8b5af43 2022-06-19T11:51:33 use the commitid in the patch diff3 conflict header suggested by and ok stsp@
Omar Polo 827bcd6c 2022-06-19T11:51:32 patch_file: move file ownership to parent ok stsp@
Omar Polo 55e9459f 2022-06-19T11:51:32 got patch: use diff3 to merge the changes Parse the "blob -" metadata in diffs produced by 'got diff' and use the original file for patching. Then, use the diff3 with the current version of the file to merge the differences. This solves many failures automagically or at least turns them into a conflict. ok/improvements stsp@
Omar Polo 05737d49 2022-06-19T11:51:32 patch_file: fill tmp with the patched file even in nop mode future work with diff3 merge will need the fully patched file even in the nop mode ok stsp@
Stefan Sperling c6621528 2022-06-18T17:06:40 bump version number
Stefan Sperling c57e65c9 2022-06-18T17:02:58 CHANGES for 0.72
Stefan Sperling f704b35c 2022-06-18T16:52:41 small grammar and accuracy fixes in a comment
Stefan Sperling 4bfe9f0a 2022-06-18T16:48:54 add missing braces around multi-line if-statement body; pointed out by op@
Stefan Sperling 364ac6fd 2022-06-18T16:47:03 take tog selection cursor position into account when searching for next match Patch by Mikhail ok op@ jamsek
Stefan Sperling 89a34d6e 2022-06-18T16:32:12 wrap an overlong line in enumeration_request()
Stefan Sperling 80f51a9e 2022-06-18T16:32:12 fix unexpected imsg error after incomplete enumeration in got-read-pack reported by jrick and op@ ok op@
Omar Polo dfee752e 2022-06-18T16:18:11 tog: reset matched and search data after C-l otherwise they point to free'd data. ok stsp@
Omar Polo 031611fc 2022-06-18T16:17:45 memset all stack-allocated structs used to send messages; ok stsp@
Omar Polo 1a69d37f 2022-06-18T16:17:45 zero the whole struct got_imsg_object before sending it otherwise some fields may be unitialized and fail the validation done on the receiving side. ok stsp@
Stefan Sperling b4998ee2 2022-06-17T13:00:45 bump version number
Stefan Sperling 6de537c0 2022-06-17T11:01:51 CHANGES for 0.71
Stefan Sperling a00719e9 2022-06-17T11:01:26 fix a segfault in tog diff The f1 tempfile must always be created. Even if the initial diff has no objects on the left side, the view can be switched to a different diff which does have objects on both sides. When that happened, tog crashed. (To reproduce: open tog in got.git, hit G, hit Enter, hit <)
Stefan Sperling dd6e31d7 2022-06-17T10:29:12 fix build of tog on sparc64 with -Werror error was tog/tog.c:636: warning: function declaration isn't a prototype
Omar Polo 4d1f6af3 2022-06-17T08:51:16 account for the vborder in draw_commit the vborder is drawn on top of the window and that can cause issues with double-width characters. Instead, account for it when computing the space available for the log message. ok stsp@
Omar Polo 0dbbbe90 2022-06-17T08:49:32 tog: resize main view drawing the child view on top of the main view when the layout is split-screen can produce some ugly glitches when double-width characters are involved. (issue found by stsp) ok stsp@
Omar Polo 4e4a9ac8 2022-06-17T08:49:32 simplify scroll_wline (now span_wline) and format_line generalize scroll_wline to start at a specified offset so that we can reuse it to simplify format_line. While here, simplify scroll_wline (now called span_wline) too. ok and improvements by stsp@
Stefan Sperling 95d136ac 2022-06-16T21:26:24 fix wrong pointer in NULL check; found by tracey
Stefan Sperling 44a87665 2022-06-16T21:22:49 fix highlighting issues in tog diff/blame search on lines with tabs
Stefan Sperling cb713507 2022-06-16T20:55:21 tog: fix crash in expand_tab while searching in diff/blame views found by op@ ok op@ tracey@
Stefan Sperling 1853e0f4 2022-06-16T20:48:35 fix diff and blame view search for horizontal scrolling with unicode ok op@
Stefan Sperling 87411fa9 2022-06-16T18:24:53 wrap overlong lines in tog.c
Stefan Sperling 4cb9d869 2022-06-16T17:17:40 fix horizontal scrolling of unicode in the blame view ok op@
Stefan Sperling 969c159c 2022-06-16T17:17:19 fix horizontal scrolling of unicode in tog diff view ok op@
Mark Jamsek f7443f66 2022-06-16T15:13:39 add missing linebreaks to demarcate sentences in tog.1 ok op@
Mark Jamsek 367ddf28 2022-06-16T14:49:57 missed style(9) fixes in previous commit ok tb@
Tracey Emery 20282b02 2022-06-16T14:45:29 fix build with -DGOT_NO_OBJ_CACHE ok stsp
Mark Jamsek 6e1c41ad 2022-06-16T14:41:49 plug realloc memleak and style(9) fixes in expand_tab() fixes and ok from tb@
Stefan Sperling ccda2f4d 2022-06-16T13:37:55 move horizontal line scrolling logic into format_line() for easier reuse ok op@
Stefan Sperling 0ce35b66 2022-06-16T13:36:46 fix an off-by-one in tog's draw_file() causing wrong diff output This issue caused empty lines added in diffs to be displayed without leading + in the diff view. Problem found by op@ ok op jamsek
Stefan Sperling b0dd8d27 2022-06-16T11:40:20 fix a recent regression where tog segfaults if Ctrl+l is used in the log view
Stefan Sperling 29688b02 2022-06-16T11:33:48 fix horizontal scrolling of unicode in tog log view ok jamsek
Stefan Sperling a75b3e2d 2022-06-16T08:10:33 fix horizontal scrolling bug in the blame view ok op@, jamsek
Stefan Sperling b4996bee 2022-06-16T07:04:07 show last-modified date in the "tog ref" view if the 'm' key is pressed Patch by Mark Jamsek
Stefan Sperling 145b6838 2022-06-16T07:00:28 implement horizontal scrolling for tog diff, blame, and log views Patch by Mark Jamsek
Omar Polo 1b1b91ab 2022-06-15T21:21:27 style: remove double semicolon