[cvsnt] Re: DLLs again

Tony Hoyle tony.hoyle at march-hare.com
Sat Jun 10 01:27:01 BST 2006


Gerhard Fiedler wrote:
> In a way, this seems to say "Don't install TortoiseCVS"... Not sure that
> makes people happy :) 

Not at all.. you use the frontend you like.  Just don't install lots of 
different versions of them.

> It seems nobody has yet been able to explain what would get broken if a
> cvsnt installation that copied DLLs to its installation directory actually
> uses those DLLs.

Windows doesn't handle multiple versions of libraries on a system very well - 
if you have any application up that has loaded one version it'll often use 
that one in preference to loading the correct version, and basically all goes 
pear shaped.  If you're lucky it'll just crash.

> Which kind of means that if you really want to enforce this, shouldn't the
> cvsnt installer look at the system and not install its own DLLs (or update
> the DLLs at the registered location) if they are already there? Not sure
> this would break fewer things, though... it quite possibly could break
> more.

Eventually the API itself will probably end up either in Common Files or a 
specific common directory - but I've got to look at the loading sequences a 
bit first (ideally we'd be able to implement AppPaths for all applications.. 
it'll take some hackery to do though..).

> If you meant that Tortoise installs (or should install) a cvs.exe.local
> file with its default install (which it doesn't seem to do, at least not in
> the 1.9.12 install), then I come back to my suggestion: why not install
> this by default with every installation that installs the relevant DLLs in
> its own directory?

.local files are a hack that subverts the windows API - they don't fix 
anything in any useful sense.

There are perfectly good mechanisms for frontends to use their own copies 
(although they carry the inherent risks mentioned above).

> Is simcvs.exe independent of the exact version of the installed cvs.exe? If
> not, how could Tortoise install the correct simcvs.exe?

It's completely independent - it just looks up the installed cvs.exe and runs 
that.  We use that on the Suite installs which has a common cvsnt install for 
all applications, since Tortoise likes to have its cvs.exe available in its 
own application directory.

Tony



More information about the cvsnt mailing list