regress/cmdline


Log

Author Commit Date CI Message
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@
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
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
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 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 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
Stefan Sperling 678d8c1f 2021-09-10T20:55:39 fix name of temporary directory used by test_fetch_delete_remote_refs
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
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 243a13f5 2021-09-02T19:13:50 fix bogus error when 'got cherrypick' merges changes into a locally added file reported by + ok naddy
Stefan Sperling 4c662b1d 2021-09-01T13:44:53 fix test data directory name used by test_histedit_fold_add_delete
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 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
Christian Weisgerber a9662115 2021-08-29T13:01:47 add missing "return 1" to failure handling in the regress scripts ok stsp@
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 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 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 ef8ec606 2021-07-27T13:08:52 prevent a race where 'gotadmin cleanup' deletes concurrently created objects
Stefan Sperling 161728eb 2021-07-24T09:08:52 add 'got fetch -X' option for deleting references created by 'got fetch'
Stefan Sperling 993f033b 2021-07-16T11:07:29 make 'got ref -d' print reference name and value like the new -X options do
Stefan Sperling 643b85bc 2021-07-16T10:47:10 new -X option for removing backups created by got rebase and got histedit ok semarie