script to update an OpenBSD CVS repository via rsync
Project homepage: https://github.com/sthen/reposync
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).
Package information
- Ports path
- sysutils/reposync
- Package architecture
- *
- Maintainer
- Stuart Henderson <stu.ports@spacehopper.org>
- Categories
- sysutils, devel
- Available flavors
- None listed
Ports list build and test dependencies as well as runtime dependencies. pkg_add selects those needed for installation.
Direct dependencies
Runtime
Test
OpenBSD README
+-------------------------------------------------------------------------------
| Running reposync 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).