regress


Log

Author Commit Date CI Message
Omar Polo db0dfdd7 2022-06-27T18:47:02 got patch: handle git-style diffs for the 3-way merge too tweak and ok stsp@
Omar Polo 58e31a80 2022-06-27T18:47:02 build with -Wwrite-strings Throwing this into the mix for a while, we can always get rid of it again if it becomes annoying. No objections from stsp@
Stefan Sperling 8469d821 2022-06-25T09:25:07 always show commit or tree IDs in diff header, in order to help 'got patch' The idea is that got patch can simply look for a line such as: commit - abcde1234567... to find the merge base commit ID to show in diff3 conflict markers. got log -p now displays commit IDs in its diff header, instead ofl tree or blob IDs. ok op@
Omar Polo 336075a4 2022-06-25T09:22:02 build with -Wmissing-prototypes ok stsp@
Omar Polo 9802c41c 2022-06-21T16:52:34 got patch: use status G for merged files (and document it) Suggested by stsp@. This makes possible to tell if 'got patch' used a merge-base from the repository for the 3-way merge or did a simple search/replace operation. While here update the tests to look for the 'G' status and the manpage, which was also missing the documentation for the 'C' status in got patch. ok stsp@
Omar Polo dbc68eed 2022-06-21T16:52:34 got patch: ignore blobs not found since diffs are often enclosed in other formats (e.g. emails) we might parse something and think it's a blob id when it's not. This should already happens, but apply_patch is looking for the wrong error due to a leftover from previous attempts. Reported by stsp@ while here tweak the test_patch_merge_unknown_blob to also try with a dummy commit id, as now got-read-patch requires it in order to consider a blob id. ok stsp@
Omar Polo d8b5af43 2022-06-19T11:51:33 use the commitid in the patch diff3 conflict header suggested by and ok stsp@
Omar Polo 55e9459f 2022-06-19T11:51:32 got patch: use diff3 to merge the changes Parse the "blob -" metadata in diffs produced by 'got diff' and use the original file for patching. Then, use the diff3 with the current version of the file to merge the differences. This solves many failures automagically or at least turns them into a conflict. ok/improvements stsp@
Stefan Sperling 783ffc01 2022-06-13T09:37:38 adjust expected test output after got log -s changes ok op@
Stefan Sperling c1c775eb 2022-06-08T09:16:08 add one-line output mode to got log with -s flag -s for short. Moves log search to -S. Patch by Evan Silberman
Omar Polo 9fdde394 2022-06-04T14:13:46 got stage: implicitly unstage when staging the reverse of the staged diff otherwise we end up with a staged empty edit for that file. ok stsp@
Omar Polo 84246752 2022-06-03T20:26:49 set `ret' in a few places where it was forgotten; ok tracey@
Omar Polo a19f439c 2022-06-03T20:26:48 don't pass $ret to test_done on failure when it's known to be zero Otherwise the test directory it's not left in place; ok tracey@
Stefan Sperling ce2bf7b7 2022-05-29T17:51:33 fix a bug in findwixt() which caused pack files with missing parent commits The 'nskip' variable is supposed to reflect commits which are waiting on the queue and have the 'skip' color. Only increment 'nskip' when adding such commits to the queue. Problem observed with got send -T and a tag pointing to a deleted branch. Test to reproduce the bug written by op@.
Omar Polo d6a28ffe 2022-05-20T21:21:42 use random seeds for murmurhash2 change the three hardcoded seeds to fresh ones generated on demand via arc4random. Suggested/fixed by and ok stsp@
Omar Polo be33dff7 2022-05-13T15:28:04 got patch: fail when reading empty hunks
Stefan Sperling cab5dc8b 2022-05-10T11:22:34 hook cmdline send tests up for 'make regress', this was forgotten
Omar Polo 4379a9aa 2022-05-02T08:38:43 got patch: handle git-style rename diffs extend the support for git-style diffs to include the "pure rename" case, i.e. when a file is renamed without any edits. ok stsp@
Omar Polo bad961bf 2022-04-23T10:39:47 got patch: allow to reverse a patch add a flag to got_patch to reverse a patch before applying and the -R flag for `got patch'. ok stsp@
Omar Polo 15e1bda6 2022-04-23T10:26:47 test `got patch' vs path-prefixes, relative paths and strip reminded by and 'looks fine' to stsp@
Omar Polo f1d6cebb 2022-04-23T09:33:14 typos
Omar Polo ed3bff83 2022-04-23T07:56:18 got patch: resolve paths from the current working directory this allow to apply patches from subdirectories of the work tree root. Prodded by naddy@, ok stsp@.
Omar Polo 3313bcd8 2022-04-19T16:57:25 delete trailing whitespaces
Omar Polo c036d108 2022-04-15T18:14:01 redirect jot(1) output instead of looping over it; ok tb@
Stefan Sperling 20e420c8 2022-04-11T13:33:54 add a -q (quiet) option to 'gotadmin pack'
Stefan Sperling 29e0594f 2022-04-09T17:34:51 make gotadmin pack -x option work with tag arguments
Stefan Sperling 67ba6161 2022-04-08T09:14:02 leave work tree in a usable state after 'got rebase' fails path-prefix checks reported by naddy
Omar Polo 9d6cabd5 2022-04-07T09:28:59 got patch: allow to strip path components Move some bits from the libexec helper to the main process so we know if the patch was generated by git or not and finally document the automatic stripping of a/ and b/ prefixes added by git-diff(1). ok stsp@
Christian Weisgerber 49c543a6 2022-03-31T20:41:38 use test(1) -eq and -ne to compare integers, and reduce quoting This brings the rest of the regression test scripts in line with patch.sh.
Omar Polo b3c57ab2 2022-03-22T11:20:46 got patch: handle "\ No newline at end of file"
Omar Polo 7a30b5cb 2022-03-20T08:54:45 got patch: prefer new name if not /dev/null and not a git-style diff This fixes a common issue when for e.g. generating patches with $ diff -u foo.orig foo where 'got patch' failed because 'foo.orig' has an 'unexpected status'. prodded by naddy, ok stsp
Omar Polo 78f5ac24 2022-03-19T15:06:37 move got_patch file status checking in worktree.c check_file_status used got_worktree_status to check if the file was in an allowed state, but it's wrong since the callback is not invoked on unchanged files. While here also fix a relate bug: unlink(newpath) is in the wrong spot and ends up removing files even when it shouldn't, so move it early in the got_worktree_schedule_* error handling. Finally, update the appropriate test case. It was passing before because got_worktree_schedule_add returned GOT_ERR_FILE_STATUS, not because check_file_status failed. ok stsp@
Christian Weisgerber d58ddaf3 2022-03-17T20:02:40 const-ify tables ok thomas_adam millert
Omar Polo 60aa1fa0 2022-03-17T16:38:43 augment patch progress callback with hunks info; recover from errors Augment got_patch_progress_cb by providing the hunks that were applied with offset (or that failed) and the recoverable error encountered during the operation (bad status, missing file, ...) got_patch now proceeds when a file fails to be patched and exits with GOT_ERR_PATCH_FAILED if no other errors are encountered. While here, also add a test for the 'hunk applied with offset' case and shrink test_patch_dont_apply and illegal_status by taking advantage that 'got patch' doesn't stop at the first error. (And add some other cases to illegal_status too.) discussed with and ok stsp@
Omar Polo 95d68340 2022-03-16T18:23:03 got patch: create missing directories when adding files ok stsp@
Omar Polo 2be5e1a2 2022-03-16T18:23:03 got patch: keep permissions after patching a file ok stsp@
Stefan Sperling b8af7c06 2022-03-15T10:45:02 print additional progress information while packing ok op@
Omar Polo 899fcfdf 2022-03-13T20:31:44 add a dry-run/nop mode for got patch with lots of help from stsp for the manpage bits!
Omar Polo 5b67f96e 2022-03-13T15:36:59 got patch: require exact match when removing files
Omar Polo dbda770b 2022-03-13T15:36:56 check file status before applying the patch Don't allow `got patch' to delete files that are not known, or add files that are already known and to edit files that are known, not obstructed and without conflicts.
Stefan Sperling a84c0d30 2022-03-12T21:30:23 fix 'got status' with an obstructed file given as argument; found by Omar
Omar Polo 6e96b326 2022-03-12T16:02:51 refactor apply_patch to support renaming files add two helper functions (schedule_add, schedule_del) and move the guts of apply_patch into a new function `patch_file'. This simplifies apply_patch and makes easier to figure out what happens. Then, drop GOT_ERR_PATCH_PATHS_DIFFER since we allow the to rename files.
Christian Weisgerber 81a19701 2022-03-10T20:28:20 ref.sh: fix pastos and report the actual command that was run
Omar Polo bfbccd0a 2022-03-08T12:22:36 use test(1) -eq and -ne to compare integers; ok tb
Omar Polo fd79e2e0 2022-03-08T12:22:36 typos
Omar Polo e9ce266e 2022-03-07T22:26:08 add `got patch' command for applying unified diffs
Stefan Sperling 3a12860c 2022-03-07T19:25:46 make the URI parser tolerate trailing slashes at the end of the input URI ok naddy
Josh Rickmar bdc78ba6 2022-02-16T16:32:54 display GMT offset in cat command ok stsp
Omar Polo 32b5305f 2022-02-12T09:34:03 new test: `got diff' on files matched by an ignore pattern
Stefan Sperling 2b474c25 2022-02-11T22:45:00 use murmurhash instead of sha1 for deltification blocks; suggested by ori
Omar Polo 1d918cf9 2022-02-06T14:56:36 improve error message due to malformed `author' in got.conf tweak and ok stsp@
Stefan Sperling 692bdcc4 2022-01-25T22:48:26 make 'got rm' report an "unexpected status" error for unversioned files ok millert@
Stefan Sperling 4e12cd97 2022-01-25T22:48:26 make 'got rm' behave like rm(1) for paths found missing on disk ok millert@
Stefan Sperling 72840534 2022-01-19T12:04:58 compress delta data from delta_cache directly into pack file
Stefan Sperling 64a8571e 2022-01-07T23:32:27 map raw object files into memory while packing if possible
Stefan Sperling a8a244dd 2022-01-03T11:50:14 simpler fix equivalent to the previous commit
Stefan Sperling 5988bab1 2022-01-03T11:48:22 make test_cherrypick_root_commit pass with GOT_TEST_PACK=1
Stefan Sperling c861864b 2022-01-03T11:34:34 'got stage' tests rely on unreferenced loose objects; disable GOT_TEST_PACK=1
Stefan Sperling 6fa5c67c 2022-01-03T11:16:56 remove loose objects if running tests with GOT_TEST_PACK
Stefan Sperling 0a26275f 2022-01-03T11:11:06 use 'gotadmin pack' instead of 'git repack' if testing with GOT_TEST_PACK
Thomas Adam 10b394ac 2021-11-23T12:52:59 regress: make merge.sh more POSIXy Don't use '==' for equality matching in sh, as this won't work across all shells. ok @naddy
Thomas Adam 566e0ee7 2021-11-22T22:32:25 regress: make test operands POSIX compliant Since the interpreter for the regress shell scripts are using /bin/sh this will usually imply some level of POSIX compliance (that isn't bash-specific, for instance). Some systems use dash as their sh shell and as such is stricter POSIX compliance. To help -portable, make the shell test checks use a single '=' for equality, rather than '=='.
Stefan Sperling 0e039681 2021-11-15T17:00:36 preverse binary files during updates and merges
Josh Rickmar 3d42b266 2021-11-03T21:42:33 switch branches during noop rebases Always update to the specified branch even if the branch is already rebased (no commits needed to be rebased, and the branch does not need a fast forward). With the old behavior of erroring and staying on the current branch, I sometimes found myself ignoring the error message, treating it as information and assuming the branch update, and later on committing on top of origin/main instead of the main branch. feedback and ok stsp
Stefan Sperling 92410079 2021-10-16T14:50:03 fix regression where 'got send -T' failed if same tag already exists on server Problem reported and fix tested by Omar Polo.
Christian Weisgerber b4e0802f 2021-10-14T18:52:27 FreeBSD's ed(1) does not accept "0i"; use the equivalent "1i" instead
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 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 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 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 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 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 41f061b2 2021-10-05T14:06:02 ignore unversioned files while aborting rebase, histedit, merge or operations ok jrick
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
Stefan Sperling 1fa49072 2021-09-28T21:30:53 interrupt 'got rebase' upon missing/unversioned/not-deleted files
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 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@
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 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
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 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 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 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.
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
Stefan Sperling c2105d00 2021-09-14T19:02:10 fix another instance of 'got send' sending branches the server already has
Stefan Sperling e3a46353 2021-09-14T16:37:50 verify that 'got status -s' and 'got status -S' cannot be used together
Stefan Sperling 4f3c844b 2021-09-14T16:12:52 make 'got update' display the worktree's branch name upon success ok tracey
Tracey Emery 67c65ed7 2021-09-14T15:47:30 add tests for checkout -q, update -q, and status -S. ok stsp
Stefan Sperling 08e5873e 2021-09-14T14:05:27 make 'got checkout' display the checked out reference and commit ID ok tracey
Stefan Sperling 26960ff7 2021-09-14T09:52:49 make 'got send' properly send commits which are referenced only by tags Problem reported by Omar Polo.
Stefan Sperling 1b796c3f 2021-09-11T08:06:47 fix a null-pointer deref in 'got fetch -d'; reported by Omar Polo