Improve performance to parse rcsfile(5)
based files with many revisions.
Make this compile on Interix.
Make this compile with TenDRA.
Make this compile on Solaris7.
New utility: cvsync2cvsup
This converts a scanfile from the cvsync style to the CVSup® 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)
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.
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)
New keyword: base-prefix
(client)
Specifies a prefix used for relative pathnames in all of the keyword 'prefix
'. It must be an absolute path.
Fix a bug to uninitialize an interger constant. (cvsup2cvsync)
New utility: cvsup2cvsync
This converts a scanfile from the CVSup® 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.
Fix a bug to create a wrong pid file when a relative path is specified by using an option -p
. (server/client)
Fix a bug to fail to run with GNU Pth/PTL. (server)
Fix compile problems on OSes without a pthread library support. (cvscan/rcscmp)
New feature: specify configurations in command line. (client)
cvsync://<hostname>[:<port>][/[<name>/release/[?<aux>]]]
cvsync://example.com/
Retrieves the collections list.
cvsync://example.com/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)
Fix a bug to fail to replace files in top directory when use a feature 'scanfile
'. (server)
Fix a bug to fail to replace files in some cases. (server)
Fix a double free bug. (server)
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)
A 'access
' file is reloaded dynamically. (server)
If this file is modified, it is reloaded as a client is connected.
A server no longer needs restart in order to reload any configuration files.
New keyword: base-prefix
(server)
Specifies a prefix used for relative pathnames in all of the keyword 'prefix
'. It must be an absolute path.
Fix a bug to try to remove a wrong pid file mistakenly. (server)
Fix a bug to fail to tranfer the last file in some cases. (server)
native SHA1 is enabled on OpenBSD 3.3 or prior again. On OpenBSD, all SHA1 calculations are wrapped in a giant lock.
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 a file that the server's pid number is stored into.
Fix a bug to mirror directories/files specified as 'deny
' in 'distfile
' mistakenly.
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:
hash md5
" in your configuration file.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.
native SHA-1 is disabled on OpenBSD 3.3 or prior in 0.24.1.
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)
Implement a new mirror algorithm for regular files. (server/client)
This improves the performance on updating large regular files incredibly.
Fix a potential problem when rcsfile(5)
based files with over 256 symbols are updated. (server/client)
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)
Fix a memory leak. (server)
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)
Fix a bug to fail to update the file with over 256 symbols.
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.
Make this compile on Solaris8.
Improve stability.
Fix some bugs.
Be more verbose.
Fix some 4GB limitations.
Improve stability.
Fix some bugs.
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.
New keyword: compress
(client only)
Options (client)
-Z
: Disables a compression.-z
: Enables a compression.Option (server)
-z
: Sets the compression level.
Fix a well known problem to fail to update the file with the same name but the different type.
Experimental SOCKS5 support.
If you want to use SOCKS5, please specify SOCKS5_TYPE
.
The following types are available:
Fix a bug that cvscan doesn't work if 'distfile
' is not set.
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'
.
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.
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:
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.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
' is not set properly.
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 keyword 'super
' is more than 2 levels.
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 keyword 'loose
' 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 cannot detect the action.
Fix a bug that broken 'head
' to 'branch
' are written.
Make this compile on Solaris 9.
Fix a bug that a server writes a wrong pid number to <pidfile>.
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.Copyright © 2003 - 2019 MAEKAWA Masahide