regress/cmdline


Log

Author Commit Date CI Message
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
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 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 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 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
Stefan Sperling 9314b9f4 2020-11-06T21:12:26 test case for 'got integrate' failing if symlink changes to file; patch by jrick This test verifies the current behaviour, even though it is not the most desirable behaviour.
Stefan Sperling 7f9bfb31 2020-11-01T22:49:19 replace resolve_commit_arg() helper in got.c with got_repo_match_object_id()
Stefan Sperling 603cdeb0 2020-10-22T20:37:50 make 'got log' avoid got_repo_map_path() if run in a work tree ok naddy
Stefan Sperling 20b7abb3 2020-10-22T20:36:23 detect unknown repository format extensions (such as sha256 format) ok millert
Stefan Sperling 54eb00d5 2020-10-20T22:25:57 properly handle nonexistent remote repository names given to 'got fetch' found by jrick ok naddy
Stefan Sperling 4a26d3f8 2020-10-07T22:37:48 fix a bug where 'got status' showed an unchanged empty file as changed
Christian Weisgerber 6b36edd8 2020-10-03T19:15:22 accommodate ls -l implementations that print "total 0" in an empty directory ok stsp
Christian Weisgerber 6c8da0c6 2020-10-03T19:14:53 rewrite argument parsing with the POSIX getopts shell built-in ok stsp
Stefan Sperling e5a14fe3 2020-10-01T20:52:11 missed one case while changing $() to `` (found by rczlonka)
Stefan Sperling 743f0d3e 2020-10-01T20:52:11 add quotes around $GOT_TEST_ROOT and avoid mktemp -p; suggested by naddy
Stefan Sperling 11f4fa81 2020-10-01T20:52:11 allow regress test data to be stored in locations other than /tmp
Stefan Sperling a9c2d4c2 2020-09-24T10:53:18 fix default branch name written to Git config file by 'got clone' The generated Git config file instructed Git to fetch all branches rather than the default branch as was intended. Check generated configuration files in all clone tests in order to catch such problems in the future.
Stefan Sperling 29c68398 2020-09-24T00:51:04 check final repository state in test_histedit_fold_add_delete
Stefan Sperling 0a22ca1a 2020-09-23T22:31:00 make 'got histedit' collapse folded add+delete operations into a no-op If a merged commit wants to delete a locally added file, and this locally added file matches the content which was deleted in the commit being merged, we can go ahead with the deletion because there is no risk of data loss. fixes the histedit problem reported by jrick on freenode
Stefan Sperling ecfff807 2020-09-23T19:10:15 add an xfail test for a histedit issue where a deleted file remains If a previous commit introduces a new file, and it is folded into a commit that deletes the same file, the file still exists after the histedit. reported by jrick on freenode
Stefan Sperling 48cae60d 2020-09-22T00:03:02 make dangling symbolic references show up in 'got ref -l' Storing a resolved ID for each reference list item was a bad idea. This ID cannot be resolved if a symbolic references points to a reference which does not exist. Such symrefs were skipped by got ref -l as a result. Just let users of reference lists resolve the IDs as needed.
Stefan Sperling 2a104ff6 2020-09-21T23:37:54 make 'got ref -d' delete both loose and packed representations of the reference
Christian Weisgerber c8c7d149 2020-09-17T18:59:48 expand arguments in shell script since brace expansion is not in POSIX ok stsp
Christian Weisgerber 9439a990 2020-09-16T20:37:41 replace ksh syntax with POSIX arithmetic expressions ok kn stsp
Christian Weisgerber f6cae3ed 2020-09-13T14:05:17 switch function declarations from Korn shell to Bourne/POSIX shell syntax ok stsp
Stefan Sperling 50b0790e 2020-09-11T17:04:57 add per-worktree got.conf(5) file in the .got directory; ok millert
Stefan Sperling 257add31 2020-09-09T23:57:40 add got.conf(5) configuration file ok tracey
Stefan Sperling 766841c2 2020-08-13T19:12:57 add -s option to 'got remove' which deletes files in a particular status This makes it easy to deal with files that were deleted from disk by external tooling which modified the work tree. Such files are left in missing (!) status and can now be marked for deletion in bulk via 'got rm -s\! -R .' For consistency, modified (M) files can now be removed with 'got rm -s M' which implies 'got rm -f'. Prompted by feedback from krw@
Stefan Sperling 081470ac 2020-08-13T19:12:57 add -s option to 'got status' which acts as a status code filter Advantages over using grep are that the list of codes is validated against a list of known status codes, and that it is easier to match staged files which can display status codes in one or both of two columns. Prompted by feedback from krw@
Stefan Sperling 7fb414ae 2020-08-08T07:34:47 add a -q option to tests for quiet output and use it for 'make regress' Previous default output remains when test cases are run individually. ok tracey
Stefan Sperling 502b9684 2020-07-31T15:36:42 make 'got log' -R and -P options work in combination With -R, the -P option did not show any paths. Regression test added here demonstrates the problem.
Stefan Sperling f2b0a8b0 2020-07-31T12:54:34 fix committing file additions from a work tree with a path prefix New files were added under the wrong tree in the repository if the work tree has a path prefix. Fix this problem and catch it in the existing commit_with_path_prefix regression test.
Stefan Sperling 69d57f3d 2020-07-31T11:19:29 fix spurious 'got cherrypick' error with a path prefix and an empty tree If the work tree's path prefix does not exist in the first of the two trees, then 'got cherrypick' failed with "no such entry found in tree". But this is a legitimate situation, as shown in the new test added here. The first tree could be the empty tree, for example, which should result in 'got cherrypick' adding all files from the second tree instead of complaining about a non-existent path-prefix directory in the first tree.
Stefan Sperling b66cd6f3 2020-07-31T10:33:34 display more context info in "no such entry found in tree" error messages
Stefan Sperling 41806587 2020-07-23T14:22:41 fix missing 'return 1' in commit.sh test failure cases
Stefan Sperling 283102fc 2020-07-23T14:22:41 remove the symlink conflict header feature; it causes noise for little benefit
Stefan Sperling 36bf999c 2020-07-23T14:22:40 make 'got unstage -p' work with symlinks