tog


Log

Author Commit Date CI Message
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@
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
Stefan Sperling 61bce19e 2022-06-15T19:19:28 revert "clear the rest of the pack_fds pointers" There is no need to clear local variables before returning from a function. ok tracey
Tracey Emery bb1c2cf3 2022-06-15T15:37:20 clear the rest of the pack_fds pointers
Stefan Sperling 8b195234 2022-06-15T14:02:55 clear pack_fds pointer in tog's stop_blame() after closing
Stefan Sperling 74467cc8 2022-06-15T13:53:50 fix handling of pack_fds used by tog's log thread
Tracey Emery 0ae84acc 2022-06-15T13:52:20 move got_opentempfd out of got_repo_open. ok stsp@ thanks for all the help massaging this diff
Stefan Sperling 33c3719a 2022-06-15T08:50:55 re-add u/d keybindings as aliases for Ctrl-u/d, matching more(1) and less(1) patch by Mikhail
Stefan Sperling 83cc4199 2022-06-13T07:59:28 in tog, rework Ctrl+u/d to scroll by half a page, and drop d/u again This matches actual behaviour of less(1) for Ctrl+u/d, and leaves d/u free for potential future use. Suggested by naddy. Patch by Mark Jamsek
Stefan Sperling 80b7e8da 2022-06-11T19:24:51 add less(1)-style key bindings for up/down to tog; patch by Mikhail
Stefan Sperling b72706c3 2022-06-01T05:08:20 move creation of tempfiles outside of lib/diff.c ok tracey
Stefan Sperling 2497f032 2022-05-31T19:25:28 tog: override SIGTERM and SIGINT handlers to avoid ncurses cleanup() handler ok thomas
Stefan Sperling d7b5a0e8 2022-04-20T14:00:12 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@
Stefan Sperling 392891ce 2022-04-07T13:20:47 pass an already open commit object to the blame callback ok op@
Stefan Sperling a44927cc 2022-04-07T12:57:31 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@
Christian Weisgerber e38d4cde 2022-03-21T13:14:13 subordinate clauses preceding the main clause are offset by a comma
Christian Weisgerber 3e166534 2022-02-16T18:32:17 const-ify command and option tables ok stsp
Omar Polo 5a20d08d 2022-02-09T14:59:46 tweak error reporting due to invalid numbers Use the same idiom as in the strtonum(3) manpage which produces a more readable error message. OK kn, stsp
Stefan Sperling cc488aa7 2022-01-23T15:35:19 show rebase and histedit backups in tog ref view ok naddy
Christian Weisgerber 67b5eae1 2021-12-27T19:01:57 tog: clear search highlighting when reloading view Clear the search highlighting when replacing the content of a diff view ('<', '>', '[', ']', 'a', 'w') or a blame view ('b', 'p', 'B'). Previously the position would remain highlighted even if the text there had changed. ok stsp@ or a blame view
Stefan Sperling 487cd7d2 2021-12-17T22:38:55 make tog searches start from the current position in all views ok naddy@
Stefan Sperling 5a5ede53 2021-12-09T15:03:48 let new 'tog log' searches start out from the currently selected commit ok naddy tracey
Stefan Sperling 07a065fe 2021-11-20T21:22:53 switch tog ref view's sort order command key to "o" instead of "s" The letter "o" does not overlap with existing options of 'got ref' and is also used by mutt(1) for this purpose.
Stefan Sperling 50617b77 2021-11-20T10:41:38 make tog use got_reflist_sort() instead of reloading refs while sorting them
Stefan Sperling 7f66531d 2021-11-16T14:33:26 allow sorting references by timestamp in tog
Stefan Sperling 7d69d862 2021-11-15T15:18:40 let gotadmin find the repository automatically if invoked in a work tree Move a small amount of code from worktree.c to a new file worktree_open.c, which contains everything required to open and close a work tree and inspect some of its basic parameters. This can be used by gotadmin. ok tracey
Stefan Sperling 02ffd0d5 2021-10-17T13:51:52 tog: add Ctrl-n/Ctrl-p shortcuts scrolling one line down/up; patch by Omar Polo
Stefan Sperling b343c297 2021-10-11T18:54:11 use a bloom filter to avoid pointless pack index searches
Stefan Sperling 67b631c9 2021-10-10T15:22:14 implement 'got diff -c' for diffing commits with optional filtering by path Need for filtering by path sugggested by kn@ ok naddy@
Stefan Sperling 9f98ca05 2021-09-24T19:47:15 show parent commit IDs of merge commits in the tog diff view ok tracey
Stefan Sperling 3da8ef85 2021-09-21T11:05:06 tog: use sched_yield(2) instead of pthread_yield(3) for portability pthread_yield(3) is an optional POSIX 2001 extension while sched_yield(2) is part of POSIX 2008. On OpenBSD they are actually equivalent, albeit not documented as such. Using sched_yield(2) helps the -portable version. Patch by Quentin Rameau
Stefan Sperling 6062e8ea 2021-09-21T10:59:29 tog: document why _XOPEN_SOURCE_EXTENDED is set and don't undefine it
Christian Weisgerber f3bc9f1d 2021-09-05T13:10:13 tog: when jumping to the bottom of the log view, go from the tail backwards ok jasper
Christian Weisgerber ea66598a 2021-09-03T21:41:22 tog: jump directly to first log item instead of traversing the list ok tracey
Christian Weisgerber e4526bf5 2021-09-03T21:40:14 tog: add support for navigating to first/last line of tree and ref views ok stsp
Christian Weisgerber 4deef56f 2021-09-02T17:40:11 tog: add support for navigating to first/last line of blame view ok tracey stsp
Stefan Sperling 1dd93b2a 2021-08-30T19:52:03 use more precise wording to describe why End/G commit loading can be slow
Stefan Sperling 9ebbe6e1 2021-08-30T19:48:14 Mention Backspace key in the section which introduces the End/G keys, too.
Stefan Sperling 528dedf3 2021-08-30T19:46:56 make tog block other keys except Backspace after End/G is pressed This should avoid unexpected behaviour resulting from unrelated key presses messing with the log view's state variables. Pointed out by tracey, and also discussed with jasper. ok tracey
Jasper Lievisse Adriaanse 26f0cb24 2021-08-30T21:38:25 sync tog.1 after fb280deb with respect to the Backspace key description ok stsp
Christian Weisgerber 00f6361c 2021-08-30T19:12:04 remove the 'ctrl+u' shortcut in favor of just 'g' in the diff view, too
Stefan Sperling 75149077 2021-08-30T19:07:58 make tog ignore Ctrl+L and B while loading all commits Otherwise tog gets into a funky non-recoverable state if these keys are pressed instead of Backspace while commits are loading. bug found by + ok tracey
Stefan Sperling 27890b18 2021-08-30T18:54:51 remove the 'ctrl+u' shortcut in favour of just 'g' as alias for 'Home' Our use of ctrl+u was not consistent with vi(1) after all. Discussed with naddy, tb, and jasper on gameoftrees@
Stefan Sperling fb280deb 2021-08-30T18:48:21 Allow commit loading trigged by the End/G keys to be cancelled with Backspace. ok jasper
Jasper Lievisse Adriaanse 912a3f79 2021-08-30T17:49:33 tog: add support for navigating to first/last item of log and diff views The keybindings that we settled on are Home, Ctrl-u and g to go to the first item and End, G to go to the last. This resembles those commonly found elsewhere, eg vi/less. discussed with and ok stsp
Stefan Sperling e385fc42 2021-08-30T15:48:05 use gmtime_r(3) instead of localtime_r(3) to display time in UTC as intended Problem noticed by naddy due to failing regress tests at midnight, and then analyzed with additional help from millert. ok naddy
Stefan Sperling 93a300b2 2021-08-26T21:50:10 small man page spelling fixes
Stefan Sperling aa8b5dd0 2021-08-01T12:59:32 fix a use-after-free in get_changed_paths() in got and tog Once the parent commit is closed the tree_id1 pointer is no longer valid, but the pointer was still being used. Make a deep copy to fix this issue.
Stefan Sperling 267bb3b8 2021-08-01T10:14:48 plug a small memory leak in tog's show_diff_view() function
Stefan Sperling ff6cc066 2021-07-10T22:48:52 remove now unused variable in browse_ref_tree() I overlooked; patch by naddy
Stefan Sperling bc573f3b 2021-07-10T22:47:23 fix a double-free that ocurred upon exit from 'tog tree'; found by naddy
Christian Weisgerber dbdddfee 2021-06-23T20:48:35 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
Stefan Sperling 1d0f4054 2021-06-17T08:56:43 check for close(2) error in got_repo_close() and propagate errors up ok tracey
Klemens Nanni 1795b260 2021-04-02T23:31:08 Fix "mandoc -T lint" WARNINGS and ERRORS, add missing word
Josh Rickmar ec6d1a36 2021-03-21T18:49:57 Fix strftime(3) short buffer checks strftime(3) returns 0 if the buffer was too short to write the complete string (including NUL) and will never return more than maxsize-1. ok stsp
Stefan Sperling c0c4acc8 2021-01-24T18:55:17 tog: fix behaviour when 'n' is pressed before a search was started with '/' reported by + ok naddy
Stefan Sperling 56b63ca4 2021-01-22T11:04:47 make fclose(3) failure checks consistent; check 'fclose() == EOF' everywhere ok millert, naddy
Stefan Sperling 1fddf795 2021-01-20T20:33:17 fix 'tog blame' segfault upon empty input file; reported by + ok naddy
Christian Weisgerber e6b8b890 2020-12-29T15:12:53 tog log: terminate author field at '>' in case there is no '@' ok stsp
Stefan Sperling f193b038 2020-12-26T22:39:55 rename got_reflist_object_map_free to got_reflist_object_id_map_free
Stefan Sperling dae613fa 2020-12-26T21:40:26 remove a comment that is now misleading
Stefan Sperling d9dff0e5 2020-12-26T21:32:01 switch reflist to TAILQ; insert elements more efficiently for sorted input ok naddy
Christian Weisgerber 87670572 2020-12-26T21:15:38 switch the "tog <path>" log view shortcut to the global reference list, too ok stsp
Stefan Sperling 84de9106 2020-12-26T20:48:43 Add a refs argument to got_repo_match_object_id(), replacing 'resolve_tags' Make use of this where possible to avoid re-reading references from disk. ok naddy
Stefan Sperling 8924d611 2020-12-26T19:23:06 switch tog ref view to the global reference list as well ok naddy
Stefan Sperling 51a10b52 2020-12-26T19:23:06 make tog store refs and object id map in global variables instead of per view ok naddy
Stefan Sperling d2075bf3 2020-12-25T21:38:17 make use of reflist object id maps in tog log and diff views This is a partial fix for performance issues when browsing the FreeBSD Git repo, which can easily contain more than 4000 references. ok naddy
Stefan Sperling c156c7a4 2020-12-18T19:19:46 do not mix up repositories if tog's -r option is used inside a work tree with input from and ok naddy
Stefan Sperling 6059809a 2020-12-17T15:54:47 use size_t for loop indices to avoid signedness warnings; by emaste@freebsd Same change as 16aeacf7088d, for subdirectories other than lib/
Christian Weisgerber 748d5cab 2020-12-14T22:15:50 replace unprintable characters with '.' before passing them to curses Otherwise, ncurses will replace them with some printable representation whose width we can't predict, and wunctrl() fails to return the replacement for 0x80..0x9f. ok stsp
Christian Weisgerber f5a09613 2020-12-13T19:07:20 reset tog blame view's scroll position if line count shrinks too much ok stsp
Christian Weisgerber 7f64f4d6 2020-12-10T23:42:06 accommodate newer ncurses where panel_userptr() returns a const pointer ok stsp
Stefan Sperling 826082fe 2020-12-10T23:35:19 use getline(3) instead of fparseln(3) in tog, for better portability ok millert
Stefan Sperling 3f670bfb 2020-12-10T21:59:00 fix display of lines that end in "\r\n" in tog(1) Problem found and reported by jrick ok naddy
Stefan Sperling 9cd7cbd1 2020-12-07T13:13:41 deep-copy reference names in the log and tree views to prevent use-after-free ok naddy
Christian Weisgerber bf30f154 2020-12-07T11:47:20 miscellaneous minor style issues
Stefan Sperling ca51c541 2020-12-07T01:03:40 reload references when the log view is restarted with Ctrl-L
Stefan Sperling 01ca22b1 2020-12-07T00:56:26 in tog.1, consistently mark up command names of views with .Cm
Stefan Sperling 21920d7e 2020-12-07T00:49:27 in tog.1, sync the synopsis of 'tog diff' to include all supported options
Christian Weisgerber 4e0d2870 2020-12-07T00:23:33 pass the thread_args struct to queue_commits() and trim the parameter list ok stsp
Stefan Sperling 1e1ff4ed 2020-12-07T00:06:56 move the tree view's selection cursor up if the terminal shrinks too much ok naddy
Stefan Sperling 8b5b8d0c 2020-12-06T23:07:07 move the ref view's selection cursor up if the terminal shrinks too much bug found by naddy ok naddy
Stefan Sperling cdfcfb03 2020-12-06T22:50:34 send resize events to tog child views as well as parent views problem found by naddy ok naddy
Stefan Sperling 21355643 2020-12-06T22:03:32 fix crashes when the 'tog log' view reloads displayed data This reimplements log view reloading (Ctrl-L), logging of a parent path (Backspace), and the toggle to show commits on branches (B). The idea is to reuse the existing log view and change its state, instead of allocating a new view with a new state and replacing the existing view. Fixes a segfault that occurs when a parent path is logged with Backspace: tog tree -r got.git -c 0.44 pick tog/tog.c 'l' Backspace -> tog will segfault The first change in this patch is a partial fix. The log thread should always check the 'quit' flag as soon as it wakes from sleep. Otherwise it could try to load more commits after waking up and before checking the 'quit' flag. It will then attempt to load commits with a NULL commit graph pointer. This partial fix by itself is not sufficient to fix the crash, since we'll now see a bus error in the main thread, instead of a NULL deref in the log thread. The remainder of the patch fixes this bus error. ok naddy
Stefan Sperling 486cd271 2020-12-06T20:12:42 plug leak of ref in cmd_tree(); found by naddy
Stefan Sperling 4e97c21c 2020-12-06T20:12:42 make tog tree view keep track of branches/tags specified via -c ok naddy
Stefan Sperling d8f38dc4 2020-12-05T22:14:04 make ^L in the tog log view stick to branches/tags selected via the -c option Previously, the log view would remember the branch of the work tree in which tog was started, and jump back to that branch upon ^L even if a different branch was requested via -c. ok naddy
Stefan Sperling 5a8b5076 2020-12-05T16:58:37 do not recompute the displayed diff if '<' or '>' command cannot advance Recomputing a diff can take time. Only do it if a different commit is going to be displayed.
Stefan Sperling fb59748f 2020-12-05T16:58:37 garbage-collect pointless main_view variable in view_loop() This short-cut is not necessary and was buggy: The pointer was not updated even if the main view had changed. Removing this code fixes a problem on FreeBSD where pressing 'q' in a child view caused tog to exit. ok naddy
Christian Weisgerber 2b779855 2020-12-05T16:19:55 fix move to next/prev commit in diff view when the log view is not displayed Original analysis and final tweak by yours truly, all the hard work of fixing the program logic by stsp. ok stsp