regress


Log

Author Commit Date CI Message
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
Stefan Sperling 2e601464 2021-09-06T10:49:29 fix regress/fetch build; broken by my renaming of got_fetch_parse_uri()
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
Stefan Sperling 6843859a 2021-07-09T09:45:36 display recovery steps in the lonely pack index error message
Stefan Sperling ff56836b 2021-07-08T10:30:10 Make 'got add' always require the -I option in order to add ignored files.
Stefan Sperling 1124fe40 2021-07-07T17:21:52 handle pack index files which lack a corresponding pack file ok millert
Stefan Sperling c294a758 2021-07-04T20:57:19 GOT_TEST_PACK=1 is incompatible with cleanup tests
Stefan Sperling 9188bd78 2021-07-03T22:51:03 add support for the preciousObjects Git extension to 'gotadmin cleanup'
Stefan Sperling e6786710 2021-07-03T22:08:15 mention 'gotadmin cleanup' wherever Git's garbage collector is mentioned
Stefan Sperling 88ba8483 2021-07-03T19:51:55 ls -1 is a no-op when stdout is redirected to a file; pointed out by naddy
Stefan Sperling 854ca8a0 2021-07-03T19:50:34 use posix = instead of ==; reminded by naddy
Stefan Sperling b3d68e7f 2021-07-03T19:49:37 implement 'gotadmin cleanup'
Christian Weisgerber 8775a682 2021-07-03T15:41:31 use POSIX [ s1 = s2 ] syntax instead of [ s1 == s2 ]
Stefan Sperling 2c41dce7 2021-06-27T15:30:08 allow obstructed files skipped by 'got update' to be updated again
Stefan Sperling a769b60b 2021-06-27T09:22:52 fix a bug where files skipped by 'got update' could not be updated again ok semarie@
Stefan Sperling f6343036 2021-06-22T20:00:44 new -I option for 'got status' to show files which match an ignore pattern
Stefan Sperling 05118f5a 2021-06-22T19:37:20 implement gotadmin pack, indexpack, and listpack commands
Stefan Sperling 1c4cdd89 2021-06-20T21:07:54 fix bogus 'permission denied' error when a file at work tree root is removed ok naddy
Stefan Sperling f34b169e 2021-06-18T13:28:25 Allow for skipping the base object header in got_deltify().
Tracey Emery 8e09a168 2021-06-17T14:26:45 fix hang in commit regress test. ok stsp
Stefan Sperling 54d5be07 2021-06-03T13:12:58 fix unrelated changes being merged by got cherrypick/backout/rebase/histedit This was a long-standing and very annoying bug. The two xfail tests in the cherrypick test suite are passing now.
Stefan Sperling 3cd22b21 2021-05-31T09:19:13 add an xfail test for a cherrypick bug where unrelated changes get merged The test case I am using here is a bit large but I could not yet find a way to make it smaller. If someone knows a smaller test case, please let me know. naddy caught a small bug in the new test code I had written, thanks!
Stefan Sperling 57c18198 2021-05-24T18:25:19 validate reference names in open_ref() This catches invalid reference names passed to 'got ref -l' and will also be needed to validate reference names passed to a future 'gotadmin pack' command. ok naddy@
Stefan Sperling cce854ad 2021-04-13T09:51:56 add tests for the bug fixed in commit 1fee9f40e2ed335d4ec8899954b59b43990b97c3 one of these tests is still failing; there is another edge case left to fix
Stefan Sperling c6e8a826 2021-04-05T17:55:12 do not update symlinks which are already up-to-date This fixes spurious 'U' notifications for symlinks during 'got update' that occurred even when the work tree was fully up-to-date. Observed on a work tree of the FreeBSD src repo and reproduced in our test suite by adding a no-op update at the end of a test which deals with updating symlinks.
Stefan Sperling 9e822917 2021-03-23T11:39:17 rebase/histedit -l: error out if no backups for the requested branch exist
Stefan Sperling e600f124 2021-03-21T19:09:35 ensure that old commits remain referenced after rebase and histedit Create automatic "backup" references which ensure that objects from the pre-rebase or pre-histedit state remain in the repository. A new -l option for 'got rebase' and 'got histedit' lists old commits. This makes it easier to recover from botched rebase or histedit operations. Removal of such objects currently requires got ref -d and git-gc. This will be made more convenient in the future. testing and ok jrick
Stefan Sperling 8704c7ce 2021-03-10T22:49:21 add a simple deltify test
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 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 56b63ca4 2021-01-22T11:04:47 make fclose(3) failure checks consistent; check 'fclose() == EOF' everywhere ok millert, naddy
Stefan Sperling 56d0a753 2021-01-20T21:07:46 let 'got clone' write gitconfig directives that match the generated got.conf
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 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 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.
Stefan Sperling 54c39596 2020-12-28T17:38:34 use POSIX [s1 = s2] syntax instead of [s1 == s2]; patch by Ryo ONODERA
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 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/
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 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
Yang Zhong c5fdccbf 2020-12-10T08:08:42 fix expected output of test_tree_submodule_of_same_repo for packed repos
Christian Weisgerber 578133c9 2020-11-28T18:28:10 replace echo with printf, stop option processing with "--" for portability ok stsp
Stefan Sperling 1cb46f00 2020-11-21T15:34:19 consistently label removed files as "/dev/null" in diff headers
Stefan Sperling 64453f7e 2020-11-21T13:35:00 handle binary files in got/tog diff commands; add -a options to force text
Stefan Sperling dffd0deb 2020-11-20T13:57:55 add a test for diffing binary files; got diff behaves like 'diff -a'
Stefan Sperling c27a5e66 2020-11-18T13:48:26 new blame algorithm which compares commit N-1 to N; with help from Neels
Stefan Sperling fe621944 2020-11-10T22:54:37 merge new diff implementation from the git.gameoftrees.org diff.git repository This new diff implementation was started by Neels Hofmeyr during the u2k20 hackathon and now replaces diffreg.c code lifted from the OpenBSD base system. The integration of this code into Got was done by me. Got now uses the patience diff algorithm by default. The diff.git repository will remain the primary repository for the diff code, which already compiles and runs on other operating systems such as Linux. Any fixes and improvements for files inherited from the diff.git repository should be written against that repository and synced to got.git afterwards.
Stefan Sperling f6d8c0ac 2020-11-09T16:04:18 fix replacing symlinks with files And add a test case which verifies that the inverse also works, i.e. a symlink being replaced with a regular file. problem reported and fix tested by jrick