From ChangesLog:
* Improve robustness. (client/server)
Make this more friendly to userlevel POSIX thread libraries.
* Improve performance to parse rcsfile(5) based files.
* When -u/-g is specified, drop the privilege. (server)
* Update scanfiles when changes anything only.
in the process. (More information on tech-pkg.)
Bump PKGREVISION and BUILDLINK_DEPENDS of all packages using libtool and
installing .la files.
Bump PKGREVISION (only) of all packages depending directly on the above
via a buildlink3 include.
Changes:
* Make this compile with TenDRA.
* Make this compile on Solaris7.
* New utility: cvsync2cvsup
This converts a scanfile from the cvsync style to the CVSup(R) style.
It is useful for mirror maintainers to distribute the CVS repositories
via both CVSup and CVSync protocols.
* Improve robustness. (client)
* Fix a bug to do munmap() with size 0. (client/server)
* Get rid of sched_yield(). (client/server)
* Improve robustness. (server)
* Improve robustness. (client)
* Fix a dead lock problem. (client/server)
Changes:
* Improve the performance. (client/server)
It's 4 - 30% faster than 0.24.12.
(of course, depends on disk I/O, network connectivity, and so on.)
Have fun!
* Fix a bug to remain temporary files. (client)
To remove that files, remove scanfiles and re-run cvsync client.
* Option (server)
-l: Specifies the file to write the system log.
* New feature: base (client/server/cvscan)
Specifies a prefix used for relative pathnames in all of the keyword
'distfile', 'refuse', and 'scanfile'. It must be an absolute path.
Changes:
* Fix a bug to use a wrong constant as NI_MAXHOST on OpenBSD.
(cvscan/client/server)
* Fix a bug to require the existence of 'prefix' when the release
type is 'list'. (client)
Changes:
* New utility: cvsup2cvsync
This converts a scanfile from the CVSup(R) style to the cvsync style.
It is useful for mirror maintainers to distribute the CVS repositries
via both CVSup and CVSync protocols.
* Use poll() instead of select() if available. (server/client)
* New feature: refuse (client)
It provides the way to refuse to add/update/remove files or
directories.
Changes:
* New feature: specify configurations in command line. (client)
URI Syntax:
cvsync://<hostname>[:<port>][/[<name>/release/[?<aux>]]]
Samples:
cvsync://some.where/
Retrieves the collections list.
cvsync://some.where/foo/rcs/?prefix=/localsrc
Retrieves the collection foo/rcs under /localsrc.
The documentation is not prepared yet.
* Fix a bug to fail to execute in background when use an option -p
to specify a file name to store a PID number and it is a relative
path. (server)
* Add samples to distribute NetBSD/OpenBSD CVS repositories.
Changes:
* New feature: specify configurations in command line. (client)
URI Syntax:
cvsync://<hostname>[:<port>][/[<name>/release/[?<aux>]]]
Samples:
cvsync://some.where/
Retrieves the collections list.
cvsync://some.where/foo/rcs/?prefix=/localsrc
Retrieves the collection foo/rcs under /localsrc.
The documentation is not prepared yet.
* Fix a bug to fail to execute in background when use an option -p
to specify a file name to store a PID number and it is a relative
path. (server)
* Add samples to distribute NetBSD/OpenBSD CVS repositories.
Changes:
* Fix a bug to fail to update a symlink status. (client)
* New keyword: nordiff (server)
On updating a regular file, a server send a whole file instead of
using rdiff algorithm. It is efficient to update tarballs or similar.
* Improve a rdiff performance slightly. (server)
Changes:
* A 'access' file is reloaded dynamically. (server)
This file is reloaded when a client is connected if necessary.
Not necessary to restart for reloading any files.
* New keyword: base-prefix (server)
Specifies the prefix for the keyword 'prefix' of collections.
It must be an absolute path.
* Fix a bug to try to remove wrong pid file mistakenly. (server)
* Fix a bug to forget to tranfer the last file in some cases. (server)
* native SHA1 is enabled on OpenBSD 3.3 or prior again.
All SHA1 calculations is wrapped by giant lock on OpenBSD.
* Fix a rdiff bug. (server)
* New keyword: haltfile (server)
When specified, a server checks it instead of /var/run/cvsyncd.HALT.
* New feature: file-based halt (server)
If /var/run/cvsyncd.HALT is created or modified when a server is
running, the server exits gracefully.
* New keyword: pidfile (server)
Specifies the file to store the pid number in a configuration file.
* Fix a bug to mirror directories/files specified as 'deny'
in 'distfile' mistakenly.
Changes:
* WARNING: "hash mismatch" on OpenBSD (server/client)
In some cases, the client shows an error message "hash mismatch" and
fails to update repositories. This problem is caused by reason that
native OpenBSD SHA-1 implementation is not thread safe.
Workaround:
1. Specifies "hash md5" in your configuration file.
2. Rebuild the server/client with HAVE_SHA1=no or
HASH_TYPE={libgcrypt,mhash,openssl}.
This problem is reported to OpenBSD mailing list by Sato-san and
fixed in the current OpenBSD tree. See the following URL.
http://www.openbsd.org/cgi-bin/cvsweb/src/lib/libc/hash/sha1.c
native SHA-1 is disabled on OpenBSD 3.3 or prior in 0.24.1.
* Fix a hash type negotiation bug. (server)
* Fix some rdiff bugs. (server)
* Fix a bug to remain the <pidfile> when the initialization is failed.
(server)
* Fix a bug to show error messages mistakenly when destroy
pthread_cond_t. (server/client)
Changes:
* Implement new mirror algorithm for regular files. (server/client)
This improves the performance to update large regular files incredibly.
* Fix a potential problem to update rcsfile(5) based files with
over 256 symbols. (server/client)
Changes:
* Fix a bug not to accept the option -L. (cvscan)
* Fix a bug that the default value of 'maxclients' is not set properly
when 'maxclients' is not specified. (server)
* Fix bugs of alignment. (server/client)
* Fix bugs not to work properly when set 'errormode' to 'fixup' or
'ignore' in some case. (server/client)
Changes:
* New feature : errormode (server/client)
Specifies the behaviour when any errors/conflicts are found in local
distributions.
abort : Exit/Disconnect with error messages immediately.
fixup : Recover errors/conflicts and keep running.
ignore : Ignore any errors/conflicts.
The keyword 'loose' is obsoleted, same to set 'errormode' to 'ignore'.
This exists only for the backward compatibility.
* Option (client)
-L : Set 'errormode' to 'fixup' for all collections.
* Option (cvscan)
-L : Set 'errormode' to 'fixup'.
-l : Set 'errormode' to 'ignore'.
* Improve stability. (server/client)
Changes:
* Fix serious bugs around the destruction of hash context.
These may cause abort() in C library and the server will stop.
* Improve stability.
* Fix some bugs.
* Make this compile with Intel C++ Compiler.
* Make this compile with Sun Microsystems Forte C.
Changes:
* Improve stability.
* HEADS UP: Compression
0.22.0 has a serious compression bug. If you use old versions,
please upgrade 0.23.0 or higher. If 0.23.0 detects the remote host
is 0.22.0, fallback to no compression mode forcibly.
* Fix many bugs.
ChangeLog:
* New keyword: compress (client only)
* Options (client)
-Z : Disables a compression.
-z : Enables a compression.
* Option (server)
-z: Sets the compression level.
0: no compression.
1: the fastest, but less compression.
9: the slowest, but best compression.
Changes:
* New feature: access
It provides the way to control to allow/deny the connections.
allow <v4addr>[/<netmask>][,<max>]
allow <v6addr>[/<prefixlen>][,<max>]
allow <domain>[,<max>]
'allow' specifies the acceptable address block and
the acceptable domain name. <max> means the maximum
connections from the address block or the domain name.
Even if <max> is greater than 'maxclient', the maximum
is restricted by the value of 'maxclient'.
always <v4addr>[/<netmask>]
always <v6addr>[/<prefixlen>]
always <domain>
'always' specifies the acceptable address block and the
acceptable domain name with no restrictions. Even if
the number of the connections is already same as
'maxclient', the connection from this address block or
the domain name never be rejected.
deny <v4addr>[/<netmask>]
deny <v6addr>[/<prefixlen>]
deny <domain>
'deny' specifies the unacceptable address block and the
unacceptable domain name. The server always rejects the
connection from this address block and the domain name.
'permit' is an alias to 'allow'.
'reject' is an alias to 'deny'.
* Fix a bug that cvscan doesn't work if 'distfile' isn't set.
* Experimental SOCKS5 support.
If you want to use SOCKS5, please specify SOCKS5_TYPE.
The following types are available:
dante
nec
none (default)
Changes:
* New feature: distfile
It provides the flexible way to distribute files.
allow, upgrade <pattern>
Distribute files which matches the pattern.
deny, omitany <pattern>
Don't distribute files which matches the pattern.