Log

Author Commit Date CI Message
Stefan Sperling 2664411d 2021-02-11T07:32:48 CHANGES for 0.49
Stefan Sperling 34d4e04c 2021-02-08T13:52:37 include remote branches in the output of 'got branch -l' This makes it easier to discover the existence of copies of remote branches in the local repository, and fixes a missing asterisk in 'got branch -l' while the work tree is switched to a remote branch. Prompted by feedback from helg, thanks!
Christian Weisgerber 8ea5c997 2021-02-07T20:55:39 got info: fix a pasto in an error message
Stefan Sperling 9dbd8627 2021-02-04T11:11:25 tolerate tag objects which lack tagger timestamp information Fixes interop with repos such as git://github.com/steveicarus/iverilog.git Found by + ok naddy
Stefan Sperling df3ed485 2021-01-31T11:57:10 simplify the error message shown when 'got rebase' has nothing to do
Stefan Sperling 28cf319f 2021-01-28T17:06:22 add 'got commit -F' option to commit with a log message stored in a file To avoid accidents commit -F opens the prepared log message in an editor so it can be reviewed before the commit is created. For non-interactive use the -N option is required in addition to -F. ok millert@
Stefan Sperling a5a46be2 2021-01-27T22:20:52 in 'got clone', allow -l together with -q, for consistency with 'got fetch'
Stefan Sperling 7b4f1fcb 2021-01-27T22:12:42 in got.1 fix a 'got branch' example which used obsolete syntax
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 6e210706 2021-01-22T23:49:46 implicitly mark all files in work tree as up-to-date after 'got integrate' Avoids having to run 'got update' for no good reason after 'got integrate'. The same change was made recently for both rebase and histedit in commit a615e0e7796ea1103a6e0d4b5dbb6134597886660 and we forgot about histedit.
Stefan Sperling 455f928e 2021-01-22T22:06:21 bump version number
Stefan Sperling 8c6f70b8 2021-01-22T22:02:34 CHANGES for 0.48
Stefan Sperling 60e40e95 2021-01-22T21:53:05 close file handles before freeing other things in got_worktree_close() The work tree's path needs to be valid while constructing error messages.
Stefan Sperling e7abd6b6 2021-01-22T21:47:37 fix missing close(2) error check in got_worktree_close()
Stefan Sperling 08578a35 2021-01-22T11:05:05 make close(2) failure checks consistent; check 'close() == -1' everywhere ok millert, naddy
Stefan Sperling 56b63ca4 2021-01-22T11:04:47 make fclose(3) failure checks consistent; check 'fclose() == EOF' everywhere ok millert, naddy
Stefan Sperling a6b21eef 2021-01-21T19:10:08 add missing braces around multi-line if-statement in got_worktree_close()
Christian Weisgerber a06ff56f 2021-01-21T18:33:50 fix a use after free() ok jrick stsp
Stefan Sperling 56d0a753 2021-01-20T21:07:46 let 'got clone' write gitconfig directives that match the generated got.conf
Stefan Sperling 1fddf795 2021-01-20T20:33:17 fix 'tog blame' segfault upon empty input file; reported by + ok naddy
Stefan Sperling d51387a0 2021-01-19T11:11:16 expand coverage of test_update_single_file: test file deletion during update
Stefan Sperling 79775c2f 2021-01-19T11:09:49 fix copy-pasta in test_update_single_file
Stefan Sperling 194cb7cb 2021-01-19T07:38:37 fix bug where 'got up -c commit path' deleted unrelated files from work tree Problem reported by Timo Myyrä
Stefan Sperling 99495ddb 2021-01-10T23:48:51 add a 'reference' directive to remote repositories in got.conf(5) Make use of this in 'got clone' to persist -R option arguments given on the command line in the cloned repository's got.conf(5) file.
Stefan Sperling 1255c02f 2021-01-05T18:19:07 remove 'tog ref' todo item; pointed out by naddy
Stefan Sperling 5aa20203 2021-01-05T17:51:49 document that 'got clone -a' sets 'fetch-all-branches' in got.conf(5)
Stefan Sperling 0c8b29c5 2021-01-05T17:22:14 add a 'fetch-all-branches' configuration setting to got.conf(5) Set fetch-all-branches in the got.conf(5) file created by 'got clone -a' in order to make a future 'got fetch' act like 'got fetch -a' by default.
Stefan Sperling 98f64f14 2021-01-05T17:17:58 work around spurious ACK responses from git servers in got-fetch-pack The Git server can apparently send duplicate ACK responses even though we do not enable the multi_ack capability. According to the Git protocol docs the server should only send ACKs after receiving 'done' from the client if multi_ack has been enabled. However, a duplicate ACK response can be triggered by running 'got fetch -a' in our fetch_update_tag test. This resulted in the following error: got-fetch-pack: unknown side-band received from server got: bad packet received
Stefan Sperling 132af4a5 2021-01-05T15:30:44 store all branches passed via 'got clone -b' in got.conf(5) and git-config(1)
Stefan Sperling 300ea754 2021-01-05T15:28:52 silence a printf in our gitconfig parser; this code shouldn't print to stdout
Stefan Sperling 612392ee 2021-01-05T14:01:16 allow the 'got fetch' -l option together with the -q option Make use of this in tests to hide useless output from ssh(1).
Stefan Sperling 15d3c221 2021-01-05T13:47:37 make 'got clone' pin the fetched branch in got.conf(5) Avoids relying on the server-side HEAD ref by default during future fetches.
Christian Weisgerber 7a90b680 2021-01-02T20:57:19 oops, initialize linesize before calling getline(3); from millert
Christian Weisgerber 9bdd68dd 2021-01-02T20:46:01 replace fparseln(3) with getline(3), for better portability ok stsp
Christian Weisgerber e6b8b890 2020-12-29T15:12:53 tog log: terminate author field at '>' in case there is no '@' ok stsp
Stefan Sperling 54c39596 2020-12-28T17:38:34 use POSIX [s1 = s2] syntax instead of [s1 == s2]; patch by Ryo ONODERA
Stefan Sperling c80f5f01 2020-12-27T09:36:17 bump version number
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 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 4c4ce67b 2020-12-25T21:38:17 fix assignment to wrong pointer in got_ref_dup() 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