Log

Author Commit Date CI Message
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
Stefan Sperling 38cb327b 2020-11-24T22:17:54 document tog ref
Stefan Sperling 6458efa5 2020-11-24T22:17:54 initial 'tog ref' implementation ok naddy tracey
Stefan Sperling 78756c87 2020-11-24T21:25:40 store reflists in view state where required and get rid of reflist pointers ok tracey naddy
Stefan Sperling 3dbaef42 2020-11-24T15:52:41 make 'tog diff' accept reference and tag arguments; add -w and -C options ok naddy tracey
Stefan Sperling 9c659ea0 2020-11-22T13:25:32 do not forget to add an offset for line zero in diff_blobs() Fixes a problem in 'tog diff' where the first line of the output was cut off.
Stefan Sperling 22c0f09d 2020-11-22T11:20:52 repair gotweb build after diff api changes
Stefan Sperling 763f29f6 2020-11-22T01:51:29 remove redundant lines of code from close_file2_and_reuse_file1()
Stefan Sperling 751e0afb 2020-11-22T01:34:05 sync files from diff.git 86b603da3068dce115470492279dc6f86f17f60b
Stefan Sperling c354056f 2020-11-21T15:34:19 prevent potential fclose(NULL) in error path of diff_blobs()
Stefan Sperling 1cb46f00 2020-11-21T15:34:19 consistently label removed files as "/dev/null" in diff headers
Stefan Sperling c4cd9c5b 2020-11-21T15:34:19 sync files from diff.git e4c510c1d83fe01247b6f59d855dffad81e4f26a
Stefan Sperling b4737997 2020-11-21T14:53:47 handle binary files in blame's custom file diff atomizer
Stefan Sperling 27829c9e 2020-11-21T13:41:51 reset tog diff view's scroll position if diff context shrinks too much
Stefan Sperling 64453f7e 2020-11-21T13:35:00 handle binary files in got/tog diff commands; add -a options to force text
Stefan Sperling b67f3bcb 2020-11-21T10:49:25 sync files from diff.git e51ebd83fa731d197ee4074ee2e94dbc0581078c
Stefan Sperling dffd0deb 2020-11-20T13:57:55 add a test for diffing binary files; got diff behaves like 'diff -a'
Stefan Sperling 8c35ff14 2020-11-19T15:37:46 implement custom atomizer for blame to reuse data and mappings across commits