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".


gotadmin cleanup: don't delete pack files that are too young similar to what we do for loose objects, avoid deleting pack files that were created "too soon" unless -a is given. This prevents races when gotadmin load, got fetch or gotd are installing a new pack file and a concurrent gotadmin clean attempts to remove it. ok stsp


take reachability in consideration when cleaning redundant packfiles This wraps the cleaning up of loose objects and redundant pack files under a new functions, making the _prepare() and _complete() functions unnecessary. It walks the reachable commits unconditionally since that information is always needed and adapt how we purge loose objects after this change. The progress function is changed too and we log `ncommits' first, followed by the number of loose objects, followed by the rest. Pack files are now considered redundant when all their objects are provided by a bigger pack or are unreachable. ok stsp


gotadmin cleanup: remove redundant pack files improvements and ok stsp@


portable: regress: minor cosmetic cleanup Drop the forcing of "command" when calling sed(1).


cleanup.sh: use `rm -f' to avoid prompting, packfiles are now read-only ok stsp@


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.


regress: cleanup: bypass sed wrapper The sed portable wrapper works for inplace editing, but isn't required for just a single stream.


use POSIX [ s1 = s2 ] syntax instead of [ s1 == s2 ]


prevent a race where 'gotadmin cleanup' deletes concurrently created objects


make 'got ref -d' print reference name and value like the new -X options do


display recovery steps in the lonely pack index error message


handle pack index files which lack a corresponding pack file ok millert


GOT_TEST_PACK=1 is incompatible with cleanup tests


add support for the preciousObjects Git extension to 'gotadmin cleanup'


ls -1 is a no-op when stdout is redirected to a file; pointed out by naddy


use posix = instead of ==; reminded by naddy


implement 'gotadmin cleanup'