Log

Author Commit Date CI Message
Stefan Sperling fec556bc 2021-09-11T13:44:55 CHANGES for 0.58
Stefan Sperling 0968089c 2021-09-11T13:44:36 sync dist file list
Stefan Sperling 1b796c3f 2021-09-11T08:06:47 fix a null-pointer deref in 'got fetch -d'; reported by Omar Polo
Stefan Sperling 678d8c1f 2021-09-10T20:55:39 fix name of temporary directory used by test_fetch_delete_remote_refs
Stefan Sperling 9b21d88f 2021-09-06T13:27:08 remove obsolete sentence from got_dial_parse_uri() docs
Christian Weisgerber 8a8621c2 2021-09-06T12:53:51 add missing <sys/types.h> include
Stefan Sperling 13b2084e 2021-09-06T11:24:44 make 'gotadmin info' display separate send/fetch URLs if they differ
Stefan Sperling 76b9ee43 2021-09-06T10:55:54 mention where the 'proto' parameter of got_dial_apply_unveil() comes from
Stefan Sperling cbf435dd 2021-09-06T10:53:46 fix documentation of got_dial_apply_unveil()
Stefan Sperling a5a30f30 2021-09-06T10:52:02 document functions declared in the public got_dial.h header file
Stefan Sperling baf82978 2021-09-06T10:51:30 remove declaration of got_fetch_parse_uri()
Stefan Sperling 2e601464 2021-09-06T10:49:29 fix regress/fetch build; broken by my renaming of got_fetch_parse_uri()
Christian Weisgerber c10270f6 2021-09-06T08:45:22 assert against accidentally overflowing argv[] in got_dial_ssh() ok stsp
Stefan Sperling 5e5da8c4 2021-09-05T20:51:29 rename got_fetch_parse_uri() to got_dial_parse_uri() This function is now being used by both 'got fetch' and 'got send' so its former name was misleading.
Stefan Sperling 77d7d3bb 2021-09-05T20:39:50 de-duplicate a constant used by both 'got fetch' and 'got send' Both GOT_FETCH_PKTMAX and GOT_SEND_PKTMAX had the same value. Declare this value as GOT_PKT_MAX in got_lib_pkt.h instead.
Stefan Sperling d65a88a2 2021-09-05T20:19:14 move duplicated dial_ssh() and dial_git() functions into a common file These functions are used by 'got send' and 'got fetch' in order to open network connections to a server. Move them into new file lib/dial.c and declare relevant functions in got_dial.h and lib/got_lib_dial.h. No functional change.
Christian Weisgerber abc59930 2021-09-05T19:41:03 indentation fixes
Stefan Sperling e33e440b 2021-09-05T14:34:59 whitespace fix
Stefan Sperling bd3d9e54 2021-09-05T14:21:02 move more code used by got-send-pack and got-fetch-pack to a common file Move functions and data structures which implement Git protocol features required for fetching and sending pack files to new files lib/gitproto.c and lib/got_lib_gitproto.h. This code was duplicated in got-fetch-pack and got-send-pack. No functional change.
Stefan Sperling f024663d 2021-09-05T13:50:39 move pkt code used by got-fetch-pack and got-send-pack to a common file The Git protocol uses a simple packet framing format. The got-fetch-pack and got-send-pack programs contained identical copies of functions to support this format. Move related functions to new file lib/pkt.c and link both programs against this common implementation. No functional change.
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 978a28a1 2021-09-04T16:22:38 make "got branch -d" print reference name and value Also silence output of "got branch -d" in a regression test, from stsp. ok stsp
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
Stefan Sperling 376d7c62 2021-09-03T11:11:39 bump version number
Stefan Sperling 49213cad 2021-09-03T10:51:36 changes for 0.57
Stefan Sperling eca70f98 2021-09-03T09:51:31 fix 'got send' adding too many objects to the pack file in some cases Load server-side tags before loading local commits. Otherwise objects which are reachable via server-side tags will not be filtered out.
Stefan Sperling 0baddd91 2021-09-03T09:11:36 add test which covers a cherrypick merge from a branch to itself
Stefan Sperling ed99f061 2021-09-03T09:02:06 add a test case which covers 'got cherrypick' in a mixed-commit work tree
Stefan Sperling 69de9dd4 2021-09-03T09:02:06 limit checks for merge conflicts to files affected by the merge Performance problems reported by naddy
Christian Weisgerber 6435d2a6 2021-09-02T21:43:35 sys/param.h is not needed
Stefan Sperling 5546d466 2021-09-02T19:39:14 plug a memory leak in check_merge_ok()
Stefan Sperling a16d97bd 2021-09-02T19:19:49 remove ancestry sanity checks from 'got cherrypick' and 'got backout' While these checks might catch usage mistakes the performance overhead of scanning the entire history of the current branch is not worth it. Measurements provided by naddy, cherrypicking 5 commits of OpenBSD's src repository in usr.bin/rsync: Before: 5m50.33s real 4m02.36s user 2m04.41s system After: 1m04.92s real 0m28.24s user 0m36.54s system Further performance improvements could be needed but this is a first step.
Stefan Sperling 243a13f5 2021-09-02T19:13:50 fix bogus error when 'got cherrypick' merges changes into a locally added file reported by + ok naddy
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 6c13b005 2021-09-02T13:57:34 Update comment regarding the merged_paths list used by rebase and histedit with insight I obtained while trying to make this idea work, and failing...
Stefan Sperling dae2a678 2021-09-01T20:31:46 backout 7280143edc2d689b1f57d5a46d376e48cdae64a2; not needed after all
Stefan Sperling 0e33f8e0 2021-09-01T14:34:33 disable ignore lists during status walks used by rebase and histedit Fixes rebase of gotwebd branch which added a new directory which is also matched by .gitignore rules on the branch.
Stefan Sperling 4c662b1d 2021-09-01T13:44:53 fix test data directory name used by test_histedit_fold_add_delete
Stefan Sperling e1d27370 2021-09-01T11:58:40 Fix ksh completion example to complete the first arg only; from Clint Pachl
Stefan Sperling 7280143e 2021-09-01T11:56:31 refactor collect_commitables() to make it easier to call from elsewhere later
Stefan Sperling eac1df47 2021-09-01T11:06:42 make 'got send' heed the branch {} options in got.conf(5); they were ignored ok naddy
Christian Weisgerber 3a6b8760 2021-08-31T19:18:37 use the POSIX-compliant "date -u" command to return UTC time; ok stsp
Christian Weisgerber dc8256b6 2021-08-31T19:18:37 "got blame" now shows UTC dates, adapt regression test; ok stsp
Stefan Sperling c2d7bc3f 2021-08-31T19:11:16 remove superfluous strdup(3) from parse.y files; Patch by Martin Vahlensieck
Stefan Sperling 2cf9e3ff 2021-08-30T20:29:52 bump version number
Stefan Sperling ce0c9cde 2021-08-30T20:01:27 CHANGES for 0.56
Stefan Sperling 0d64986a 2021-08-30T19:53:57 sync dist file list
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
Christian Weisgerber 93f8a337 2021-08-30T16:34:04 tweak implementation of separate send {} and fetch {} conf blocks Tweak man page. Factor out repeated code in if/else branches in send_gotconfig_remotes(). ok stsp@
Tracey Emery f08eaca0 2021-08-30T15:59:11 reintroduce allowing empty fetch and send blocks with correct grammar. ok stsp@
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 6480c871 2021-08-30T15:51:23 provide separate send {} and fetch {} configuration blocks in got.conf Feature requested by naddy. ok naddy, who also suggested some tweaks that will arrive shortly
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 92952c0e 2021-08-30T12:33:22 stop allowing empty send {} or fetch {} blocks; yacc complained about grammar yacc has been complaining about "shift/reduce conflicts" since commit 16c4be8c1cab9456f9dd0468c27f8ab73235737e Revert that change for now. Not sure how it can be done properly. In any case, allowing empty config blocks is not very important.
Stefan Sperling 7c84ef07 2021-08-29T19:50:57 reject port number zero
Stefan Sperling f1cacac7 2021-08-29T17:07:49 validate non-optional settings in send {} and fetch {} config blocks.
Stefan Sperling aaf30ee7 2021-08-29T17:07:24 rename variables to avoid too much repetition of the term 'repo'
Stefan Sperling 5de743f8 2021-08-29T13:15:27 fix seek to incorrect offset in the delta base when creating deltas The stretchblk() function needs to compare data located after the block which has just been matched. However, upon entry it was resetting the file pointer of the delta base to the beginning(!) of the block. The other file is correctly positioned after the block. In many cases the data won't match and stretchblk() will not stretch the matched block. But when the data did happen to match this resulted in a bogus delta, and wrong file contents when the delta was applied. Fix this by setting the delta base file pointer to end of the block. Problem reported by naddy after our server refused a pack file which was sent by 'got send'. I could reproduce the issue by running the 'gotadmin pack' command on a copy of naddy's repository. ok naddy
Christian Weisgerber 535e07c7 2021-08-29T13:09:21 make realloc_ids() malloc-like and do not overallocate Let realloc_ids() take as argument the number of entries to allocate. Do not allocate an extra chunk. ok stsp
Christian Weisgerber a9662115 2021-08-29T13:01:47 add missing "return 1" to failure handling in the regress scripts ok stsp@
Christian Weisgerber 8f2a2f4f 2021-08-29T11:51:43 drop realloc_ids() initialization calls, one of which had a typo realloc_ids() is called again in the loops that assign to the ID arrays, before the first assignment. ok stsp
Stefan Sperling 43e4eb1b 2021-08-29T07:28:01 Add got(1) command tab-completion for ksh(1) to EXAMPLES section. Suggested by Clint Pachl, thanks!
Stefan Sperling 27b75514 2021-08-28T10:46:51 do not send a pack file when 'got send' is only deleting branches The git protocol spec says the client MUST NOT send a pack file if the only command used is 'delete'. Fixes 'got send -d' against Github's server which closed the session upon receiving the empty pack file we sent. This problem wasn't caught by regression tests since git-daemon does accept an empty pack file. Problem reported by jrick.
Stefan Sperling 2ae2891d 2021-08-28T10:23:24 remove github capabilities workaround from got-send-pack, it is not needed This workaround was inherited from git9, which claims that Github did not send capabilities. Protocol traces show that Github's server does in fact advertise its capabilities. Git protocol capabilities are hidden behind a NUL byte in the middle of the first refline sent by the server. This makes them easy to miss when treating a refline as a C string. I guess this is why Ori concluded that Github didn't send any capabilities. Or perhaps Github has been fixed since.
Tracey Emery 26ac815f 2021-08-27T19:48:23 remove unused name variables, noticed by naddy@
Tracey Emery 0ff2bf46 2021-08-27T19:37:15 clean up weird grammar. not sure what i was thinking.
Tracey Emery 16c4be8c 2021-08-27T19:32:56 fix to allow empty send and fetch blocks, ok stsp@
Tracey Emery cfd92333 2021-08-27T16:58:26 add send and fetch plumbing to parser for got.conf This is the beginning of support for naddy's suggestion to break this out similar to git. More code to come from stsp. ok stsp@
Stefan Sperling 2f1457c6 2021-08-27T16:48:53 allow deletion of refs/remotes/ branches with got branch -d Also, make requirements for branch name arguments more flexible. Absolute reference names are now accepted. ok naddy@
Stefan Sperling a099809f 2021-08-27T07:44:17 more manual page updates following the introduction of 'got send'
Stefan Sperling 93a300b2 2021-08-26T21:50:10 small man page spelling fixes
Stefan Sperling 4408b20f 2021-08-26T20:29:59 update the TODO list
Stefan Sperling fd44090b 2021-08-26T19:53:20 tweak the man page section about 'got send' In particular, attempt to describe the -f option better.
Stefan Sperling 1bd76734 2021-08-26T13:41:59 fix the output of 'got send -d' upon success Previous output was: Already up-to-date New output is: Server has deleted refs/heads/branch Check this behavour in the related regression test.
Stefan Sperling f9756a57 2021-08-26T12:30:42 Use POSIX-compatible syntax in send.sh tests. Patch by naddy@
Stefan Sperling f8a36e22 2021-08-26T12:30:42 add 'got send' command for sending changes to remote repositories Known to work against git-daemon and github Git server implementations. Tests by abieber, naddy, jrick, and myself. Man page additions reviewed by Lucas.
Christian Weisgerber 3379373c 2021-08-26T12:00:16 use POSIX [ s1 = s2 ] syntax instead of [ s1 == s2 ]
Stefan Sperling 8991a328 2021-08-26T07:08:48 add a missing bounds-check in got-fetch-pack when parsing server response The tokenize_refline() function could end up reading past the end of the buffer if the refline is not terminated with whitespace or \0.
Stefan Sperling a90356f7 2021-08-26T07:01:34 prevent NULL deref in got-fetch-pack if server does not announce capabilities The my_capabilities pointer may remain NULL. Check for NULL before use.
Stefan Sperling 14d2b281 2021-08-25T21:40:38 fix the error message shown when the server sends a bad ref line Exposed by trying to run got clone -l against shithub.us over git:// found by abieber@
Stefan Sperling 63e5aa5c 2021-08-23T10:51:48 Expose got_ref_name_is_valid() for general purpose use. This will be needed for a future 'got send' command.
Stefan Sperling dc7edd42 2021-08-22T12:58:34 fix miscalculation of the final pack file size reported by got_pack_create()
Stefan Sperling cce2f485 2021-08-22T12:56:14 expose got_ref_resolve_symbolic() at the public library API This will be needed by a future 'got send' command.
Stefan Sperling 0af64e86 2021-08-22T12:54:21 plug a memory leak in an error path of got_deltify()
Stefan Sperling dd29967c 2021-08-22T12:53:22 make got_deltify() rellocate the deltas array less often
Stefan Sperling 9ca26ac3 2021-08-06T13:31:40 style fix: avoid comparison of pointer variable against 0 in got-fetch-pack
Stefan Sperling 72acb3d8 2021-08-06T12:43:33 remove unused 'repo' argument from got_reflist_insert()
Stefan Sperling b9c41b54 2021-08-03T08:08:03 use less memory allocations when formatting log messages Rewrite got_object_commit_get_logmsg() such that only one memory allocation is made when creating a pretty version of a log message. ok naddy@
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 ef8ec606 2021-07-27T13:08:52 prevent a race where 'gotadmin cleanup' deletes concurrently created objects
Stefan Sperling 3f338f0a 2021-07-27T13:08:51 track the last modification time of references