Commits


regress: use seq instead of jot This is just for -portable since jot is not always available. ok stsp@


replace "(cd path && git cmd)" with "git -C path cmd" This matches the existing use of "got -r path cmd" and "git_commit path args".


make 'got revert' and 'got rm' work on non-existent directories problem found by robert@ ok jamsek, op


regress: replace "sed -i" with ed(1) for portable in-place editing "sed -i" is fundamentally unportable. GNU and OpenBSD sed(1) treat the extension for the backup file as an optional argument and use "sed -i" for no backup file. FreeBSD sed(1) treats the extension as an obligatory argument and uses "sed -i ''" for no backup file. There is no single syntax that works for both. ok stsp op


regress: replace unportable ln -h option with rm && ln ok stsp


respect umask when creating or changing files and directories This behaviour is already documented in got-worktree(5) but wasn't actually implemented. ok stsp@


regress: adjust expected usage output in "revert_no_arguments" test


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@


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.


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@


regress: use gdate/gln if on *BSD To minimise the amount of churn between the difference in date(1) and ln(n) semantics, use gdate and gln from coreutils.


regress: fix test failures using ln(1) GNU ln uses -T instead of -h for no-target-directory. OK thomas.adam


use POSIX [s1 = s2] syntax instead of [s1 == s2]; patch by Ryo ONODERA


switch function declarations from Korn shell to Bourne/POSIX shell syntax ok stsp


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


fix wrong test result check in revert.sh symlink test


fix missing return statements in revert.sh symlink test failure cases


add support for symlinks to 'got revert -p'


add a test for 'got revert' with symlinks


trim directories in got remove -R This is a racy solution that needs to be properly implemented in the future. ok stsp


fix a bug where 'got revert -R' failed on added subtrees The command could fail with "got: no such entry found in tree". This problem is reproduced by the regression test added in this commit. This happened because file index entries were processed in the wrong order by diff_fileindex_dir(). To fix this, keep removed entries in the RB tree and skip them when the file index is written out, rather than removing entries from the RB tree immediately causing side-effects for RB_NEXT and friends.


do not display unversioned files during 'got revert -R'


trim trailing whitespace in revert.sh (patch by Tracey Emery)


make 'got revert' to ignore unversioned files instead of aborting with 'bad path' and add a regress to check the revert isn't aborted anymore


fix race condition in test_revert_patch_one_change