[cvsnt] Latest Updates - CVSNT 2.5.04 Build 3052 (RC6) and 3055 (RC7)

Arthur Barrett arthur.barrett at march-hare.com
Tue May 6 11:40:35 BST 2008


CVSNT 2.5.04 (Zen) Build 3052 (RC6) and 3055 (RC7)

You can download this release from:
http://www.cvsnt.org/wiki/Download

Fixed in this release:
------------------------
* 5002   (RC6) Oracle support in audit
* 5192   (RC6) cvstools.dll depends on missing msvcrt and msvcr71
* 5202   (RC6) Doc: log -r information incorrect
* 5225   (RC6) cvs add -k+x always makes files -kvx, even binary ones
* 5231   (RC6) MS Project (*.mpp) files added as text
* 5235   (RC6) Allow ServerTraceFile to be set to 'per process' filename
* 5250   (RC6) audit does not update EndTime
* 5251   (RC6) audit does not record return code
* 5252   (RC6) patches from Chuck for script trigger (windows)
* 4729   (RC6) Unicode file added on branch has corrupt line endings
* 5155   (RC6) after file renamed, retrieve file using tag, wrong
filename is retrieved
* 5225   (RC6) cvs add -k+x always makes files -kvx, even binary one
* 5033   (RC6) 'cvs [update aborted]: end of file from server' when
merge
* 5158   (RC6) Cannot checkout single file if it is renamed, cannot
checkout to stdou
* 5262   (RC7) CVSNTCpl: discourage use of reserved words in repo name
* 5264   (RC7) Crash if 'cvs -q update -d -P' and dir contains files not
in CVS

I'll release a summary of all the bugs/features since 2.5.03 when 2.5.04
is released stable.

Latest documentation:
-----------------------
http://www.cvsnt.org/manual_testing_2.5


Description:
--------------

RC6 was released on Friday, RC7 released today - and RC7 is the first
that includes binaries and testing on non-windows (in this case RHEL5
linked with mysql 3.23 and Oracle 10.2).

This release does change the audit database schema from previous 2.5.04
releases which in turn were different to 2.5.03 releases.  The 'upgrade'
button should smart enough to handle this - run the upgrade-1 then run
the upgrade-2, but I may be wrong.

2.5.04 also has a different API to 2.5.03 which means that custom
ActiveScript and C++ triggers will need to be updated to the new API -
but this is not particularly new with this release.

Hopefully this is the last RC before stable, but I really need feedback
on:
* does the oracle audit work?
* upgrading from 2.5.03 audit?
* works on Vista?
* works on Vista x64?
* works on W2008 x64?
* works on RHEL5?

I have performed limited testing of this server build on W2008 x32
server core and it installs and runs fine.



Zen:
-----

Build 3055 is (hopefully) the last RC of the CVSNT 'Zen' project.  This
is a 'feature' release and apart from a few exceptional 'bugs' does not
fix any 'bugs' in the previous 2.5.03 'Scorpio' project.  The reasons
for this are:
* there have been almost no bug reports on the newsgroup about Scorpio
* the Zen project was always about adding specific features that were
often requested

The CVSNT project got started many years ago because there were features
that the developers wanted in CVS 1.10 but the CVS 'charter' prevented
having these changes applied to the CVS source code repository -
basically the charter says that if any developer rejects the patch then
it wont be applied, and with all the developers active on the project
there was always bound to be one that would reject a patch for what can
be primarily described as 'philosophical' reasons.  

The CVSNT project does not have such a charter and we try to ensure that
we don't reject ideas for features just because some developers don't
agree with the need for such a feature - though we do like to ensure
that new features are 'optional' - ie: you don't have to use them if you
don't want to.

This is the first CVSNT development I can recall where the entire
devlopment features were things that Tony and I really didn't think were
*needed*.  This partly explains why this release has been a long time
coming.  We do however understand that other people do find these
features important so we've worked hard to bring them to you.

The features that we really DID think were needed just could not be
supported by the current generation of the souce code, hence why most of
our effort has gone into EVSCM (previously known as CVSNT 3.x). 

The particular features that Zen set out to address are:
1. multi site repositories (multiple repository locations)
2. use of checksums on large files to improve WAN performance
3. trusted Windows DLLs - DLLs are signed and signature checked before
loading
4. a downloadable 'MSI' that is easy for 'windows end users' to use
5. better statistics of project adoption
6. cvsnt server control panel support for Vista UAC

* Items 1 and 2 are specifically to address some users belief that CVS
will run faster if there is a local repository cache.  After much
analysis and discussion internally we cannot see any benefit for this
since the CVSNT protocol was designed for telecommunications networks
far slower and less reliable that what is available today.

Secondly in hypotheticals about 'if we did do multi-repos' - we could
not see any benefit in a quorum based system where the changes on one
repository are mulitcast to several servers simultaneously, since the
quorum needs to be tracked and the 'excluded members' of the quorum are
just as incapable of accepting patches as is a single repository shadow.


The solution we have come up with is a 'master' repository and multiple
shadows.  If you like  you can change which is the 'master' at any time
you like.  

We have been using the 2.5.04 repostiory cache/shadow feature for quite
a while internally and it works very well - and if you have large
binaries in the repo or your processes require 'fresh checkouts' rather
than 'updates' then installng a shadow does improve performance.  

Changing your procedures to use 'udpate' would do the same thing and
would have required 2 years less effort.  

We cannot stress enough just how unnecessary repository replication and
caching is for 99.9% of organisations - if you are experiencing multi
site performance problems there are probably much 'better' ways to fix
it that using repository replication and caching.


* Item 3 solves two problems on windows:
3a) solves 'DLL hell' where CVSNT would fail to run on some systems
because it would find the wrong version of a DLL (eg: libiconv) 
3b) increases security - users of the builds from march-hare.com web
site can be sure that the application .exe and .dll signatures are valid
and CVSNT will not load an unsigned protocol or trigger.  If you build
your own windows DLLs then only a warning will be issued instead of the
application aborting (see (#define COMMERCIAL_RELEASE).


* Item 4 is simply to create our own MSI that includes all the goodies a
typical windows client user is looking for: WinCVS, TortoiseCVS, CVSNT -
we also include a 'free' edition of our WorksaceManager/CVS Suite Studio
which is a lot like a 'simple' version of WinCVS that uses TortoiseCVS
for much of the client functions.  We've also added a window to most gui
dialogs to show the recent newsgroup postings so that people are
encouraged to read the newsgroup and contribute to discussions.

* Item 5 is to give us more ammunition when advocating for the use of
CVSNT.  We already track how many downloads of CVSNT we get, and
SourceForge track the downloads of CVSNT as a part of TortoiseCVS and
WinCVS - 1.4 million annually last time I added them all up.  However
that does not tell us if they are ever installed, and how they are used.
So the client and server installers now attempt to notify us of an
install (no IP address is kept, though we do a geoip lookup using
maxmind data to determine the country).  

If you install the server then the server process keeps statistics about
how the server is performing (number of users, process duration etc)
which an admin can see by looking at the control panel.  The statistics
which are collected are then sent to our server weekly so we can 'see'
how the CVSNT servers are performing in the real world (again: no IP
address is kept, though we do a geoip lookup using maxmind data to
determine the country).

These statistics will let us post information on the web site and/or
newsgroup about how many CVSNT servers are out there 'in the wild' and
how they perform.  If your performance characteristics are significantly
worse to the ones we are publishing then you know you can improve
things.

I cannot stress enough how important obtaining this information is to
the future of the project.


* Item 6 is to allow the gui control panel on vista/w2008 to work under
the UAC security.  Note: all versions of CVSNT server and client run
fine on Vista - it is only the GUI control panel which is improved for
vista in 2.5.04/Zen.


Immediate Forward Plan (2.5.04 stable/EVSCM RC):
-------------------------------------------------
Due to dependency changes with 2.5.04 from 2.5.03 there are several OS's
that we will not be producting new RPM's for that we did previously
produce RPM's for including: Mac OS 10.3.7 and Red Hat 9 (list yet to be
finalised).  The current state of the dependencies is that we can't even
support RedHat ES 4 - however Tony is hoping to fix this in the next
couple of weeks.  The primary dependency change is libxml2 - current
builds require 2.6.2x and Tony is hoping to adjust this so we can get
away with libxml2 2.6.1x.

I'll be working on some minor GUI stuff and platform builds while I wait
for you all to complete testing and send in feedback, so projected
2.5.04 stable is around May 23 (obviously depending on the feedback and
Tony's resolution of the dependencies)...

A new EVSCM RC will be released around the end of May or early June,
we'll then hopefully concentrate on writing a 'migrator' so people with
existing repositories can try 'upgrading'.



Medium Term Forward Plan (2.5.05):
-----------------------------------

Work will begin on 2.5.05 almost immediately - merging in changes from
2.5.03 commercial to the 2.5.04 code, including re-instating 'case
sensitive support' (which requires a plugin that is not 'free' for it to
actually work).

Bullet point plan for 2.5.05 release:
* rollup of patches from commercial support
* upgrade to vs2005 or vs2008 (tbc)
* LAST build to support mysql (tbc)


Long Term Forward Plan (2.5.06+):
-----------------------------------

I have some really interesting feature patches that have been submitted
that unfortunately are based on CVS 1.11 or 1.12 - but I'd like to have
a go at incorporating them.

The latest build of CVS 1.12 includes a new 'sign commits' feature that
we've been asked to support at least in the CVSNT client, and does
occasionally come up as a feature request for the server.  Unfortunately
the feature seems to have an interdependency with several 'offline'
features committed at the same time which we are reluctant to add
(basically your sandbox is doubled in size because there is a copy of
every file checked out in the hidden CVS directory).  Provided we can
find a way to support this only when the user wants it then we'll try
and get that added too.  Ideally we'd like a signed commits feature that
can be used with EVS and CVSNT server that doesn't have this dependency.

EVS client can work with CVS/CVSNT servers, so at some point in the
future we may start encouraging client users to use that instead, and we
may add some 'client features' only to EVS (the signed commits above is
a possible example of this).


Regards,


Arthur Barrett




More information about the cvsnt mailing list