The sysutils/reposync port
reposync-20240205 – script to update an OpenBSD CVS repository via rsync (cvsweb github mirror)
Description
reposync is a script, intended to run from cron, to update an OpenBSD CVS repository using rsync. To reduce disk io, it only does a full update if either the ChangeLog has been updated, or some larger time has elapsed since the last run (to ensure changes with no ChangeLog entry, such as tagging, are also picked up).WWW: https://github.com/sthen/reposync
Readme
+------------------------------------------------------------------------------- | Running ${PKGSTEM} on OpenBSD +------------------------------------------------------------------------------- Prepare the repository owner and directories ============================================ To allow working on existing mirrors without changing configuration, the reposync package avoids using a specific username and does not setup directories automatically. For a repository owned by the new user "cvs" stored in /home/cvs (as is common on a standard user's development machine), you can proceed as follows: # useradd -d /nonexistent -g =uid -s /sbin/nologin cvs # install -d -o cvs /home/cvs /var/db/reposync For a new anoncvs server following the standard OpenBSD directory layout, use /open/anoncvs/cvs instead of /home/cvs. If you are adding reposync to an existing anoncvs server, simply create /var/db/reposync and chown it to the owner of the repository. Initial checkout after preparing directories ============================================ Open the list of official mirrors at https://www.openbsd.org/anoncvs.html and choose a mirror showing reposync support. Mirrors listed as "reposync rsync://..." support ssh-forwarding. Mirrors listed as "reposync -p rsync://" do not, and must use the plaintext protocol that does not validate the server identity. Simply run: $ doas -u cvs reposync rsync://anoncvs.mirror.example/cvs /home/cvs cd+++++++++ CVSROOT/ >f+++++++++ CVSROOT/ChangeLog >f+++++++++ CVSROOT/ChangeLog.0 >f+++++++++ CVSROOT/ChangeLog.1 [...] and wait for it to finish. Memory limits ============= The default memory limits ("datasize-cur" and "datasize-max") in /etc/login.conf may be too low in some cases (especially when many files have been changed at once, e.g. if the tree has been tagged).
Maintainer
Stuart Henderson
Categories
Run dependencies
Test dependencies
Files
- /usr/local/bin/reposync
- /usr/local/man/man1/reposync.1
- /usr/local/share/doc/pkg-readmes/reposync
- /usr/local/share/reposync/
- /usr/local/share/reposync/ssh_known_hosts