Log

Author Commit Date CI Message
Stefan Sperling 1252b141 2020-12-27T09:35:43 CHANGES for 0.47
Stefan Sperling 888b7d99 2020-12-26T23:18:45 make use of a reflist object id map in 'got log' Impoves performance of 'got log' on the FreeBSD Git repo which can easily contain more than 4000 references.
Stefan Sperling f0ff8d4c 2020-12-26T23:14:26 fix tag object leak introduced in previous commit
Stefan Sperling 24202e46 2020-12-26T23:08:51 add tagged object IDs to reference list object ID map Fixes display of "/tags/..." commit ID decorators in tog which was broken in previous commits.
Stefan Sperling a53af95f 2020-12-26T23:04:46 fix error return from got_reflist_object_id_map_create()
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 cc63216e 2020-12-26T12:23:23 update got.1 CAVEATS section; prompted by feedback from otto@
Stefan Sperling 4c4ce67b 2020-12-25T21:38:17 fix assignment to wrong pointer in got_ref_dup() 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 7b5b670e 2020-12-25T21:38:17 implement an object ID map for reference lists ok naddy
Stefan Sperling 838b0131 2020-12-21T20:43:23 bump version number
Stefan Sperling 22cbd110 2020-12-21T20:40:10 CHANGES for 0.46
Stefan Sperling 9a02f8b7 2020-12-21T12:59:27 switch to strerror_r(3) in error.c for thread-safety
Stefan Sperling c884fd0a 2020-12-21T12:59:27 introduce got_custom_error array to support multiple errors in flight This is still not thread-safe but at least avoids errors overwriting each other in single-threaded contexts.
Stefan Sperling ccf6dd5e 2020-12-19T14:09:38 avoid signed vs unsigned comparisons in fetch.c ssizeof() macro idea courtesy of millert@ ok millert@
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 5a8b373c 2020-12-18T15:55:18 fix parsing of tag objects which lack a tag message This problem could be triggered with the u-boot repository: $ git clone --bare https://gitlab.denx.de/u-boot/u-boot.git $ got log -r u-boot.git got-read-pack: bad object data got: bad object data $
Stefan Sperling e8bfb8f3 2020-12-18T15:52:25 fix path existence check in got_object_tree_path_changed() A symptom of this was a segfault in 'got blame distrib/miniroot/install.sub' with the OpenBSD src.git from github, reported by jrick. The problem was that the commit graph traversed one commit too far. This could be more easily reproduced with 'got log': got log -c 05f568 -P distrib/miniroot/install.sub Which listed two commits instead of just the first one: 05f568ecc6aadefa1aff9064a29e798874a71409 <-- install.sub first created here 7c0d87f00e480cdf004324dad6f3e6f4418f8f42 "distrib/miniroot" exists in 7c0d87f00e480cdf004324... but not in the parent of this commit. Ensure that we traverse the full path in tree1 even if an intermediate tree2 cannot be opened. Instead of reporting success and a file change if we can't traverse further through tree2, we now hit this failing attempt to open the file 'install.sub' in tree object 180aa33df8d1 (tree1): te1 = find_entry_by_name(tree1, seg, seglen); if (te1 == NULL) { err = got_error(GOT_ERR_NO_OBJ); goto done; } fix tested and ok jrick
Stefan Sperling a4153d5b 2020-12-17T23:13:10 more concise fix for path_list_reverse_input() crash; suggested by millert
Stefan Sperling 8891c2ab 2020-12-17T20:46:54 fix crash in path_list_reverse_input() after switch to unsigned loop index
Stefan Sperling 85f4e1e7 2020-12-17T16:17:51 fix the type of variable 'idx' in update_packidx()
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/
Yang Zhong 6d5a9006 2020-12-16T11:16:27 add fd field to got_repository, modify got_packidx_open to use fds These changes are intended to make got more compatible with FreeBSD's Capsicum. ok stsp
Stefan Sperling a615e0e7 2020-12-16T00:08:58 implicitly mark all files in work tree as up-to-date after rebase/histedit This should always be correct, since rebase and histedit start out with a clean and single-base-commit worktree, and end up committing all changes across the entire work tree when they are successful. tested by jrick and myself
Stefan Sperling 0d5bb276 2020-12-15T23:50:35 allow editing of log message comments with 'got histedit' This makes it possible to remove just comment lines from log messages during a histedit operation, leaving the rest of the log message as-is. The behaviour of treating changes to comment lines as no-ops was coded to prevent mistakes during 'got commit/import/tag', where the command will error out if the log message template is not modified. This is not appropriate for histedit because histedit is used to fix such mistakes. ok millert@
Stefan Sperling 73e7eb7d 2020-12-15T23:45:34 add got_error_fmt() got_error_fmt() could eventually replace got_error_path() which has already been used to construct errors with strings that are not actually paths... ok millert@
Stefan Sperling 4cc6a5a5 2020-12-15T22:42:20 add got_error_from_errno_fmt() for more flexibility in error messages suggested by and ok millert
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
Stefan Sperling b2d2e70d 2020-12-13T13:51:25 bump version number
Stefan Sperling c39ec063 2020-12-13T13:28:05 sync distfile list
Stefan Sperling dd30c874 2020-12-13T13:26:59 CHANGES for 0.45
Stefan Sperling a347e6bb 2020-12-13T13:19:10 test behaviour of histedit -f with an empty log message
Stefan Sperling 239f5c5a 2020-12-13T13:11:23 add a basic test case for histedit -f
Stefan Sperling 71392a05 2020-12-13T11:43:41 prevent log message loss of folded commits during histedit If the histedit log message editor exits without saving its buffer, Got threw away log messages of all commits which were folded. Only the last commit message is preserved, which could be something meaningless like "fixup". Instead, preserve the initial editor buffer content as-is. That is not going to be an ideal log message, but doesn't throw away information and stands out visually because the newly created log message will start with a comment like '# log message of folded commit a0ff...' Problem reported by jrick
Stefan Sperling b3805337 2020-12-13T11:40:10 histedit -f conflicts with -F option Also fixed as part of a different patch from jrick ok jrick
Stefan Sperling ff69268e 2020-12-13T11:38:48 use a helper function to generate error messages for mutually exclusive options Inspired by a different patch from jrick ok jrick
Stefan Sperling 9f6bb280 2020-12-11T11:41:43 remove redundant explanation of histedit -f and -m options from got.1
Stefan Sperling b54435ba 2020-12-11T01:19:21 fix typo in got.1: "only if" -> "if only"; pointed out by tracey
Stefan Sperling 2a78779e 2020-12-11T01:18:32 document that histedit -f can only be used if starting a histedit operation
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
Josh Rickmar 466785b9 2020-12-10T23:24:31 add histedit -f flag for folding shortcut "please push it" stsp
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
Yang Zhong 437adc9d 2020-12-10T08:29:04 add fd field to got_worktree, modify got_fileindex_entry_update to use fds These changes are intended to make got more compatible with FreeBSD's Capsicum. ok stsp
Stefan Sperling f3b2b552 2020-12-10T16:58:11 sync files from diff.git b3fd1fa284e6207b923bd3c887364d9eb93fb340
Yang Zhong c5fdccbf 2020-12-10T08:08:42 fix expected output of test_tree_submodule_of_same_repo for packed repos
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 785d65a4 2020-12-05T22:11:32 make got_repo_object_match_tag() work with absolute reference names Bug triggered by naddy while testing a patch for tog. 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
Stefan Sperling ee756517 2020-12-05T13:12:32 pass reference name along when a log view is opened from a ref view ok naddy
Stefan Sperling e78dc838 2020-12-04T23:27:22 replace 'focus_view' output param of view_input with 'view->focussed'
Stefan Sperling 4010e238 2020-12-04T23:27:05 make tog call pledge(2) directly in main() instead of per-command All of tog's pledges are currently the same, and they must be the same because tog allows switching between available command views at run-time. ok tracey
Stefan Sperling 41ad2652 2020-12-04T20:27:43 remove unused function got_path_get_absolute(); realpath(3) is usually better
Stefan Sperling dbb02f4d 2020-12-04T20:23:06 in got_repo_open(), let realpath(3) take care of relative paths
Stefan Sperling 9970f7fc 2020-12-03T23:23:30 replace dead_view pointer in view_loop() with 'dying' flag in struct tog_view ok naddy
Stefan Sperling 72a9cb46 2020-12-03T22:13:20 tog's view_set_child() never returned an error; simplify accordingly ok naddy
Stefan Sperling acdafe9c 2020-12-03T19:25:08 remove redundant "child_focussed" variable from struct tog_view ok naddy
Christian Weisgerber 0bf7f153 2020-12-02T14:30:34 tog's log view needs to request more commits when the window expands ok stsp
Christian Weisgerber 3e135950 2020-12-01T23:50:40 pass only the view state to scroll functions that don't need the full view ok stsp
Christian Weisgerber 42a2230c 2020-12-01T22:54:25 reverse tree_view_visit_subtree() parameters for consistency ok stsp
Christian Weisgerber d91faf3b 2020-12-01T22:53:48 trim repo parameter from tree_view_walk_path(), already set by open_tree_view() ok stsp
Christian Weisgerber d86d3b18 2020-12-01T22:52:56 trim redundant and used parameters from draw_tree_entries() ok stsp
Christian Weisgerber 4f7c3e5e 2020-12-01T22:52:18 trim redundant parameters from draw_blame() ok stsp
Christian Weisgerber 89f1a395 2020-12-01T22:51:37 trim redundant parameters from draw_file() ok stsp
Christian Weisgerber 8fdc79fe 2020-12-01T22:50:35 trim redundant and unused parameters from draw_commits() and draw_commit() ok stsp
Christian Weisgerber a5388363 2020-12-01T22:06:20 trim redundant and unused parameters from run_blame() ok stsp
Christian Weisgerber ffe38506 2020-12-01T22:05:10 trim redundant parameters from log_scroll_* and trigger_log_thread functions Also rename scroll_{up,down} to log_scroll_{up,down}; requested by stsp. ok stsp
Christian Weisgerber 694d3271 2020-12-01T14:53:55 trim redundant parameters from {ref,tree}_scroll_{up,down} functions Pass only the view and scroll amount to these functions; remove unused parameters and those that are contained in the view state. ok stsp
Stefan Sperling 34ba6917 2020-11-30T00:13:22 fix page-up/down in 'tog ref' view; ok naddy
Stefan Sperling fa86c4bf 2020-11-29T21:53:49 fix page-down/page-up scrolling in the tog tree view problem reported by, fixed with lots of help from, and ok naddy
Stefan Sperling 152c1c93 2020-11-29T14:21:55 tog: make it possible to open a ref view from the tree view
Christian Weisgerber 5e9266f9 2020-11-28T18:35:49 fix a typo that triggered "munmap: Invalid argument" in got blame on FreeBSD ok stsp
Christian Weisgerber 578133c9 2020-11-28T18:28:10 replace echo with printf, stop option processing with "--" for portability ok stsp
Christian Weisgerber 9a1d5146 2020-11-27T15:46:36 fix entry selection when moving to the parent in tog's tree view The tree view attempts to keep the scroll position of an already visited parent directory intact. If we start out by viewing a subtree and then move up, the scroll position of the parent isn't actually available since the parent tree was never nagivated by the user. In this case tree_view_walk_path() has to fill in some values. The only parent entry we know about in this case is the one which was traversed to reach the child. The best we can do is to lock the parent's scroll position such that the traversed child entry appears at the top of the list if moving up to the parent's view. If we then navigate down again and return, the parent's scroll position will start to be retained and restored properly. Analysis and draft patch by stsp, initial report and simpler fix by yours truly. ok stsp
Stefan Sperling 16aeacf7 2020-11-26T12:54:19 use size_t for loop indices to avoid signedness warnings; from emaste@freebsd
Christian Weisgerber e99e2d15 2020-11-24T22:38:29 let tog's tree and ref commands call their own usage() and not each other's
Stefan Sperling c42c9805 2020-11-24T22:17:55 support opening a tree view from the ref view; requested by naddy
Stefan Sperling f2f6d207 2020-11-24T22:17:54 trigger log thread if a log view is opened as a child view; found by naddy
Stefan Sperling a1b77402 2020-11-24T22:17:54 fix calls to ref_usage(); found by naddy