Log

Author Commit Date CI Message
Stefan Sperling d89fbca5 2021-10-16T10:21:34 CHANGES for 0.62
Stefan Sperling 8347f8e7 2021-10-15T17:17:52 plug memory leak in an error path of read_packed_object()
Stefan Sperling 07965a0d 2021-10-15T17:08:54 fix wrong function names in error messages from got-index-pack.c
Stefan Sperling 802c0f04 2021-10-15T17:05:12 make 'gotadmin indexpack' unveil the repository read/write, not read-only
Christian Weisgerber 0c82d267 2021-10-15T15:18:30 sync with OpenBSD parse.y Explicitly cast "char" to "unsigned char" when assigned to "int" to prevent sign extension from breaking comparions against EOF or passing invalid arguments to ctype functions.
Stefan Sperling a319ca8c 2021-10-15T10:36:12 move encode_delta() in pack_create.c to eliminate a forward declaration
Stefan Sperling 74881701 2021-10-15T10:34:44 while packing, store encoded deltas in a temporary file instead of in memory
Stefan Sperling dc20764a 2021-10-15T09:30:29 limit delta chain length in newly created pack files to 32 deltas Our former limit was 128 which is fairly high. Git uses 50 by default. A smaller limit results in slightly larger pack files but makes both packing and unpacking faster.
Stefan Sperling 94dac27c 2021-10-15T09:24:56 raw object blocksize and read buffer were unused; remove them
Stefan Sperling 284e7663 2021-10-15T09:21:46 remove unused internal raw object API functions
Stefan Sperling d3c116bf 2021-10-15T09:10:14 cache raw objects in order to speed up gotadmin pack
Stefan Sperling cc7a354a 2021-10-15T07:15:00 reuse temporary files which were not used by got_object_raw_open()
Stefan Sperling f8eebdd4 2021-10-15T07:14:24 add missing calls to got_repo_close() in gotadmin.c
Stefan Sperling e65c7410 2021-10-14T20:50:01 add missing error checks in got_object_raw_open()
Stefan Sperling 600b755e 2021-10-14T20:30:26 avoid opening delta base objects in genpack() just to find their size
Christian Weisgerber b4e0802f 2021-10-14T18:52:27 FreeBSD's ed(1) does not accept "0i"; use the equivalent "1i" instead
Stefan Sperling 08347b73 2021-10-14T17:27:26 encode deltas in temporary files to avoid high memory usage
Stefan Sperling c5c77d29 2021-10-14T17:20:44 make got-build-regress.sh run tests a second time with GOT_TEST_PACK=1
Stefan Sperling 5df018ff 2021-10-14T16:03:22 rework murmurhash2() to avoid potential unaligned memory access pointed out by naddy@ ok millert@
Stefan Sperling 1d19226a 2021-10-13T18:48:15 fix two more error strings in pack_create.c using the wrong function name
Stefan Sperling 2d467c6d 2021-10-13T18:07:29 fix wrong function in error string of emitdelta()
Stefan Sperling f8b19efd 2021-10-13T11:09:15 use RB_TREE instead of STAILQ to manage packindex bloom filters; much faster
Stefan Sperling fc75ac9d 2021-10-13T10:35:49 sync dist file list
Stefan Sperling 8f2ca62d 2021-10-13T10:34:06 do not skip ignored directories in 'got status' if they contain tracked files Fixes regression introduced by commit 41f061b2f459318f3738f59d7676efccc4beb344 where tracked files inside an ignored directory were reported as missing.
Stefan Sperling b343c297 2021-10-11T18:54:11 use a bloom filter to avoid pointless pack index searches
Stefan Sperling 7a0b1068 2021-10-11T18:54:08 fix pack index cache element rotation; keep often used entries near the front
Stefan Sperling 10a623df 2021-10-11T18:38:33 sort and de-duplicate work tree path command line arguments This is important in cases like 'got diff file.txt file.txt' which should only show the diff for file.txt once. suggested by kn@
Stefan Sperling 90de04bc 2021-10-11T18:32:16 fix a segfault in edscript() introduced by my previous commit Found by our cherrypick regression tests.
Stefan Sperling f10244c0 2021-10-11T18:25:11 fix merging of files which contain a dot on a line by itself Annoying bug which we inherited from OpenRCS which inherited it from OpenBSD's diff3 program. ok tracey millert
Stefan Sperling 2c9e323b 2021-10-10T19:26:26 speed up 'got histedit -l' and 'got rebase -l' Cache commit timestamps in struct got_reference in case we are sorting references by commit timestamp. This avoids opening and closing commits every time we compare two references with each other. ok thomas.adam
Stefan Sperling 51ed7429 2021-10-10T15:24:21 align 'diff -c' usage help with synopsis given in man page; suggested by naddy
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 138e4f47 2021-10-09T19:47:15 display the requested object type when an object could not be found ok millert@
Stefan Sperling 8f83a264 2021-10-09T10:09:50 remove code which was setting up repo_path redundantly from cmd_diff()
Stefan Sperling 237cfda1 2021-10-08T22:34:25 make got_repo_match_object_id() filter tags by the requested object type Potentially this function could return objects of a type that was not requested. Problem found by code inspection. This change does not affect any of our existing tests.
Christian Weisgerber 8cb8da5b 2021-10-08T18:06:08 document "mg" as alias for the "merge" command
Stefan Sperling c1e86b1d 2021-10-08T11:53:05 add an xfail test for a bug in merging content with a dot on a line by itself
Stefan Sperling 09209b8a 2021-10-08T08:34:39 add test for merge result when lines are inserted at the top of a file Based on a patch by Omar Polo
Stefan Sperling aaef19b4 2021-10-08T08:33:30 sync files from diff.git 346d4986568ffbcfdc53cce45dd8a468535a68f2
Stefan Sperling e7ffb0b0 2021-10-07T21:13:05 add support for multiple path arguments to 'got diff' positive feedback from Omar and kn ok kn
Stefan Sperling f736d93a 2021-10-07T19:12:36 link to the FastCDC paper from deltify.c; suggested by Ori some time ago
Stefan Sperling 6eab69f7 2021-10-07T19:08:52 make the number of elements in deltify's geartab explicit
Klemens Nanni b06f0b74 2021-10-07T15:58:52 Ignore tags files OK stsp
Klemens Nanni fbceed27 2021-10-07T15:38:38 Provide lib/Makefile to enable tags file generation The root Makefile does not hook into lib/ via <bsd.subdir.mk> since it is not a program itself and thus gets included by all others. This means `make tags` skips lib/ and `make -C lib/ tags` does not know what to do; provide a minimal <bsd.lib.mk> stub and hook it up just for the "tags" such that *all* source is browsable via tags. See /usr/share/mk/bsd.README for details. Feedback stsp tb OK tb
Stefan Sperling e99d9267 2021-10-07T15:29:27 plug memory leaks in got-fetch-pack and got-send-pack ok naddy
Stefan Sperling dd088d95 2021-10-06T19:49:06 let 'got fetch' send all references to the server to avoid redundant downloads Problem reported by naddy. ok naddy
Klemens Nanni 0c079dbc 2021-10-06T06:32:07 Fix "mandoc -T lint -W style" nits
Klemens Nanni b13a4ebc 2021-10-06T06:25:16 Document command aliases in tmux(1) style, add tags for navigation Complete 95f394e8917def2c11ce292b3a8f804d261b1d12; reminder to look at gotadmin(1) from stsp, thanks.
Stefan Sperling 41f061b2 2021-10-05T14:06:02 ignore unversioned files while aborting rebase, histedit, merge or operations ok jrick
Klemens Nanni 90e6e620 2021-10-04T17:07:46 Fix "mandoc -T lint -W style got/got.1" nits
Klemens Nanni 95f394e8 2021-10-04T17:05:33 Document command aliases in tmux(1) style, add tags for navigation This has the advantage of tags being located right by the full command; combined with tags ":tco" to search for the `co` alias will jump right to the `checkout` line, neatly showing everything without needing further navigation. tmux hint from Thomas Adam, thanks. OK stsp
Stefan Sperling 136be4cc 2021-10-03T22:07:59 update 'got merge' TODO item
Stefan Sperling 2b8ed9ec 2021-10-03T21:30:47 bump version number
Stefan Sperling 9d9e459f 2021-10-03T21:27:59 CHANGES for 0.61
Stefan Sperling c52bf7fe 2021-10-03T21:26:12 sync dist file list
Stefan Sperling 62da3196 2021-10-01T13:58:31 skip ignored directories during 'got status' disk crawl
Stefan Sperling b93c7142 2021-10-01T06:22:27 add histedit -e option which runs the 'edit' script command for every commit ok jrick
Stefan Sperling 78caff98 2021-09-30T08:24:01 explicitly set the default branch name after 'git init' in regress tests We need to do this because newer versions of Git support an arbitrary default branch name which can be set by users. We don't want tests to fail when this option is used. pointed out by Thomas Adam
Christian Weisgerber 5d8cbca3 2021-09-29T19:53:08 pull in a type fix from the OpenBSD parse.y template Original commit message by deraadt: (unsigned) means (unsigned int) which on ptrdiff_t or size_t or other larger types really is a range reduction... Almost any cast to (unsigned) is a bug.
Christian Weisgerber d683c314 2021-09-29T19:43:01 fix unsigned/signed char mismatch in parse.y
Stefan Sperling fa161f0b 2021-09-28T21:48:11 update a CAVEAT in got.1 now that 'got merge' exists
Stefan Sperling cd33da48 2021-09-28T21:39:34 interrupt 'got histedit' upon missing/unversioned/not-deleted files
Stefan Sperling 1fa49072 2021-09-28T21:30:53 interrupt 'got rebase' upon missing/unversioned/not-deleted files
Stefan Sperling 606719cd 2021-09-28T21:29:30 document all reasons why 'got merge' might be interrupted
Stefan Sperling c1b05723 2021-09-28T20:56:05 make 'got merge' interrupt the merge upon undeleted and unversioned files
Stefan Sperling 35ca1db7 2021-09-28T20:56:04 print additional stats about things that went wrong during a merge
Stefan Sperling 965803d3 2021-09-28T20:55:16 fix 'got fetch' downloading too many objects in some cases Always announce all local references to the server when fetching changes. We used to do this only in mirror mode. In regular mode only refs/tags and refs/remotes/origin were announced, which could result in unnecessary downloads if relevant objects exist in refs/heads or elsewhere.
Christian Weisgerber 9dd14b99 2021-09-28T19:21:34 got_sha1_digest_to_str() writes to char * ok stsp
Christian Weisgerber 14af9299 2021-09-28T19:21:34 fix unsigned/signed char mismatch in parse.y ok stsp
Christian Weisgerber 31e61ec1 2021-09-28T19:21:33 match the unsigned char type used by the zlib interface ok stsp
Stefan Sperling 0ff8d236 2021-09-28T06:59:08 show commit progress output when 'got merge -c' is used Otherwise no progress output is shown at all with this command. Commit progress output will also display any additional changes which resulted from conflict resolution. ok millert@
Christian Weisgerber 321a74a5 2021-09-27T12:17:19 garbage-collect unused "dist" target from subdirectory Makefiles ok stsp
Stefan Sperling 088449d3 2021-09-26T17:51:38 implement 'got merge -n' which interrupts before creating a merge commit
Stefan Sperling 4e91ef15 2021-09-26T17:51:35 make it possible to merge vendor branches with 'got merge'
Stefan Sperling 5c02d2a5 2021-09-26T17:40:10 for portability, handle errno variations upon open(2) failure with O_NOFOLLOW Problem pointed out by naddy for FreeBSD -portable. Discussed with millert, thomas adam, and naddy.
Stefan Sperling 5267b9e4 2021-09-26T11:41:40 allow bad symlinks to survive a merge Commands which perform merges will now install bad symlinks as symlinks in the work tree, instead of creating them as regular files. This means bad symlinks committed with 'got commit -S' (or Git) will be preserved. The decision to introduce a bad symlink is done at commit-time and merges should not forcefully reverse this decision. The cherrypick and backout commands require a manual commit step, and a merge result with bad symlinks will require use of 'got commit -S'. Additional testing by thomas adam
Christian Weisgerber 963ac08a 2021-09-25T20:21:10 match printf specifiers and (cast) types for portability ok stsp
Stefan Sperling 474b4982 2021-09-25T10:26:25 whitespace fix from Omar Polo
Stefan Sperling 030daac8 2021-09-25T10:26:13 fix some integers that had a slightly wrong type; patch by Omar Polo
Stefan Sperling 50127d69 2021-09-25T10:24:15 add 'static' qualifier to local functions in got-read-pack; patch by Omar Polo
Stefan Sperling fda3525e 2021-09-25T10:23:12 mark some function parameters as 'const', as they should be; patch by Omar Polo
Stefan Sperling f6764181 2021-09-24T21:52:59 fix 'got update' of an added + obstructed file When 'got update' tried to add a new file to the work tree and this file was obstructed by, say, a directory on disk, the update failed: $ got update ? new got: new: Is a directory $ And the work tree was not updated. With this commit this situation is properly detected as an obstruction and the update succeeds: $ got update ~ new Updated to refs/heads/master: c1f85b4938dc4c668a88f13df2b98a520fc077cc File paths obstructed by a non-regular file: 1 $ Extend a corresponding test case to cover this issue. ok tracey
Stefan Sperling f365d762 2021-09-24T20:50:54 stop using the term 'obstructed' ambiguously in the got.1 man page Specifically, obstructed files are versioned files which should be on disk but have been replaced on disk by a non-regular file (e.g. by a directory). The man page used the phrase "deletion was obstructed" which is unrelated to the above concept and can be expressed as "deletion was prevented" instead.
Stefan Sperling 1acd48bc 2021-09-24T20:47:39 stop caring about obstructed versioned files in 'got merge' Tyring to write a test to cover this case I found that obstructed files are (correctly) detected as local modifications in the work tree. Thus they trigger the pre-condition check for local modications and 'got merge' will not even start to do any work in the presence of obstructed files.
Stefan Sperling 793fcac3 2021-09-24T20:14:09 plug memory leak in got_worktree_merge_in_progress(); spotted by tracey
Stefan Sperling a6a8f8bb 2021-09-24T20:05:26 add a test for 'got merge' which covers a no-op merge situation
Stefan Sperling f259c4c1 2021-09-24T19:55:02 add a 'got merge' command for creating merge commits Additional testing by Thomas Adam. ok tracey
Stefan Sperling 9f98ca05 2021-09-24T19:47:15 show parent commit IDs of merge commits in the tog diff view ok tracey
Stefan Sperling 0e5df984 2021-09-23T18:03:54 update TODO note about HTTP; libtls will more likely be used from dial.c
Stefan Sperling 3af9de88 2021-09-22T13:32:37 fix 'got send' with tree objects which contain symlinks; reported by Omar
Stefan Sperling ad324bf5 2021-09-21T20:27:45 fix histedit_no_op test which was failing randomly A no-op replayed history ends up having exactly the same commit IDs if all commits are created at roughly the same moment in time. There are no content changes involved so if commit timestamps do not differ then commit hashes will be the same. In which case there is no fork in history for 'got histedit -l' to display, yet the test was always expecting a fork in history to be displayed. Update the test to take this issue into account. The test will now pass no matter which result is produced by the histedit operation. Problem found by Lucas who observed that this test was randomly failing. Patch also provided by Lucas.
Stefan Sperling 34c3415f 2021-09-21T20:17:54 update README blurb about 'ssh 127.0.0.1' requirement for regress tests
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
Stefan Sperling ac372b60 2021-09-15T17:11:46 'got status' does not have a -q option; remove it from got.1 synopsis
Stefan Sperling df7dea6e 2021-09-15T17:08:37 add -S option to 'got status' synopsis in got.1 man page
Stefan Sperling 7dd7d39b 2021-09-15T09:59:27 bump version number
Stefan Sperling 4a87b370 2021-09-15T09:55:18 CHANGES for 0.60
Christian Weisgerber 67d7451c 2021-09-15T08:29:53 shell code fixes Escape sequences are not handled by every echo(1), e.g. not on FreeBSD. '?' is a glob character and must be quoted. '!' is not a shell meta character. ok tracey stsp
Stefan Sperling f0fd0aaf 2021-09-14T19:21:59 make 'got send' regression tests run 'git fsck' on all involved repositories