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:
* 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.
Changes:
* Support libgcrypt and mhash libraries.
If you want to use other hash library instead of native one,
please specify HASH_TYPE.
The following types are available:
libgcrypt
mhash
native (default)
openssl
By this change, never fall back to OpenSSL automatically even if a
native hash library is not available.
* Option (cvscan)
-c: Specifies the configuration file for cvsyncd.
cvscan use the information of scanfile (loose, nofollow,
release, prefix and so on) from it.
ChangeLog:
* HEADS UP: Change the Protocol around 'SetAttr'.
These changes remove the potential 'SetAttr' issue.
If you use the old versions, please upgrade to 0.20.0 or higher.
* Fix a bug that the default value of 'maxclients' isn't set properly.
ChangeLog:
* Fix a bug that the 'loose' feature doesn't work properly.
* Fix a bug that both server/client tried to traverse wrong paths
if a relative path calculated by the 'super' keyword is more than
2 levels.
ChangeLog:
* Fix a bug that the 'SetAttrs' request for directories was issued in
a wrong order.
* New feature: loose
Background:
Proper CVS repositories don't have files with same file name
inside/outside 'Attic' directory of the same directory. If both exist
accidentally, it is very difficult to determine which file is the
right one. So in the past, cvsync exits abnormaly with the
'inconsistency' error message. But some CVS repositories has this
inconsistency. It is unhappy for CVS repositories mirror sites to
redistribute them.
The 'loose' option provides a workaround for bogus CVS repositories.
When cvsync detects a inconsistency, cvsync assumes that the a file
with more recent modification time is right and don't exit.
This feature is optional. The best way is to remove the
inconsistencies from master sites, of course.
* Fix a bug that when move a RCS file from inside/outside Attic to
outside/inside Attic without chaging modifition time and permissions,
cvsync can't detect the action.
ChangeLog:
2003-04-15 MAEKAWA Masahide <maekawa@daemon-systems.org>
* 0.19.4
* Fix a bug that broken 'head' and 'branch' are written.
* Make this compile on Solaris 9
* Fix a bug to a server writes a wrong pid number to <pidfile>.
ChangeLog:
2003-04-14 MAEKAWA Masahide <maekawa@daemon-systems.org>
* 0.19.3
* Fix a bug that '@' is missing for 'comment'.
* Improve the network performance.
* Options (both)
-V: Print the version number to standard error.
-v: Verbose mode.
* Options (server)
-g: Specifies the group the server should run as.
-u: Specifies the user the server should run as.
-w: Sets the working directory of the server.
ChangeLog:
2003-04-09 MAEKAWA Masahide <maekawa@daemon-systems.org>
* 0.19.2
* When the configuration file is updated, a server reloads it
automatically.
* Options (client)
-4 : Forces a client to use IPv4 addresses only
-6 : Forces a client to use IPv6 addresses only.
* A server runs in background mode (default).
When executed with -f option, a server runs in foreground mode.