# [cvsnt] CVS v. CVSNT

Oliver Giesen ogware at gmx.net
Tue Jul 20 12:33:58 BST 2004

Community technical support mailing list was retired 2010 and replaced with a professional technical support team. For assistance please contact: Pre-sales Technical support via email to sales@march-hare.com.

[I saw you posted this four days ago already. For some reason it only
arrived on the newsgroup today so sorry for the late answer.]

Siegfried Heintze wrote:

>> It does work with forward slashes. I just tried the following (even
>>  though I usually never use the init command at all - read below):
>>
>> cvs -d:local:/d//localrepos/testrepo3 init
>>
>> and it worked perfectly.
>
> And where does it explain that screwy syntax of omitting the colon
> and using a double forward slash after the device name? I've never
> seen that before running across it on this mailing list!

Actually that's where I read about it. I wouldn't have thought of it
either... anyway, see below.

> And does it (the chm file) give an example using the :local: syntax?
> Not with the init command it doesn't.

I guess that's because the :local: is optional as I explained later.

>> AFAICT the problem was not that you used forward slashes, but that
>> you (accidentally) performed the init with the Cygwin CVS instead
>> of the CVSNT client and then (naturally) expected the CVSNT server
>> to be able to cope with the files that were created by this.
>
> That is the only way I knew to specify a device name with forward
> slashes! AND IT SEEMED TO WORK SO I DID NOT QUESTION IT!

Perfectly understandable. There was no sarcasm in my post.

>> Do you think you would have gone to the bash if there had been a
>> note in the docs stating that all sample sessions refer to Unix and
>
> I certainly would not have gone to bash if someone had explained the
> new syntax for specifying device names.

It's not a new syntax. It's simply an alternative.

>> :protocol:[user@]server:/path/to/repo
>>
>> or as it is even:
>>
>> :protocol:[user@]server:drive:\path\to\repo
>>
>> or in full glory:
>>
>> :protocol[;keywords]:[user@]server[:port]:[drive:]\path\to\repo
>>
>> The first two components could be omitted. CVSNT will assume
>> :local: in that case. If only the protocol is omitted, at least GNU
>> CVS assumes :server:. Not sure if CVSNT does that as well.
>
> Yeah, yeah, I know that now. --- oh wait! You are telling me I can
> specify the device with a colon.

Yes, I am.

> Is that in the documentation? I
> don't remember seeing it.

Yes, because the documentation as it is at the moment describes Unix and
Unix has no concept of drive names.

> I just remember the error messages from the
> cygwin client. I don't think you can specify a device name with a
> colon.

Not with the Cygwin client no. Cygwin emulates Unix. Unix has no drive
names. No surprise there. CVSNT can handle them fine though. No
requirement to even use forward slashes. Just type it as you would
anywhere else in Windows. Forward slashes and the alternative drive
notation are optional and mainly in place so clients that do not support
backslashes and/or the Windows drive notation could still connect.

> It should explain that CVSNT is not a simple port of CVS and CVSNT is
>  different from the Windows port of CVS and therefore the clients are
> not interchangeable.

The clients generally are interchangeable. Cygwin takes a special role
however. It provides the CVS client with an environment that makes it
think it is running on Unix while in fact it isn't. It thus writes files
in a different format than real native Windows clients would. This is
yet different from the Windows port of GNU CVS I think and I wouldn't
expect that one to work together with Cygwin either.
Furthermore the Init command also has a special place: While it is in
fact invoked through the client executable, it basically is a
server-side command. It creates the repository which the server is
supposed to act upon. If you create the repository with a different
cvs.exe than the server uses internally it is bound to fail, don't you
think?
IMO if there's anything to gripe about it is that Cygwin does not come
with larger, bolder, redder Warning signs that it will drive your
Windows system into utter schizophrenia...

> I think it would be reasonable to assume that
> port of a client should be able to talk to the original server.

That should work indeed and AFAICT it does as long as during the
*creation* and setup of the repository no mixing of cvs binaries took
place. There should generally be no problem with any possible
client/server combination of CVSNT, Cygwin CVS and GNU CVS. Mixing
Cygwin with anything on the same machine however is always a potential
problem.

> I believe it makes sense to mention of few popular programs that
> conflict with CVSNT, especially the ones with "CVS" in their names!
> Now does cygwin qualify as being popular? I hope so, but I don't know
> so. I use it. I think we need an explanation of all the different CVS
> variants out there in the documentation so folks know that CVSNT is
> not the windows port of CVS.

Well, in a way it is (at least it's what it started out as). More so
than Cygwin actually. Cygwin CVS is more like the original Unix CVS
running in a virtual machine emulating Unix on Windows.

> That is extremely confusing. And it is
> extremely important that one be aware that using CVS documentation
> with CVSNT must be done with caution. There are books on CVS but not
> CVSNT so it is tempting to try to use these books (and quick
> reference cards) with CVSNT.

I think as long as you keep in mind that the docs refer to Unix and
platform differences have to be taken into account when applying
examples there should not be much of a problem. After all, CVSNT still
aims to be a superset of CVS instead of being a completely different
thing. Being aware of platform differences you should have no problems
applying CVS examples to CVSNT (though not necessarily vice versa). Of
course, as I mentioned before, the docs *are* still lacking descriptions
of some of the stuff that *only* applies to Windows, especially when it
comes to GUI components such as the control panel. As I understood Tony
is working hard on doc updates at this very moment so it should
definitely get better in the future. Docs have only very recently risen
in priority. Always remember that Tony is basically the only person
working on CVSNT apart from the few voluntary support people on this
list and other contributers to the Wiki if you want to count them in as
well.

>> You should be able to simply remove it physically and remove it
>> from the control panel.
>
> It is not that simple. I stopped the service. I had to login as
> Siegfried instead of administrator to delete some files and log back
> in as Administrator to delete other files. I eventually figured it
> out. This should be documented too.

That should usually not be necessary so I don't think there's anything
to be documented. You should at least be able to delete all files as
are borked.

> I go to the start menu on Windows 2003 server, I select CVSNT, I see
> CVSNT Home, the browser comes up on a Wiki page. I scroll down, way,
> way down, I see installation tips in tiny print.

It's the same font size as the rest of the page.
I agree however that it might be a good idea to have links to the
individual sections of the frontpage somewhere near the top.

> I select it and it

Hmm, maybe you clicked the "Original Installation Tips" link? That does
indeed seem to be broken. Bo, could you fix it (or anyone else who knows
the new address)? If you click the "Installation Tips" link you will be
taken exactly to the link I gave. That's where I copied it from actually.

> Wooaaa! Your link does work however. I've never seen this before. I
> There is nothing in the chm file about adding users. It drove me
> crazy. I tried to use the passwd command with the pserver protocol
> and that did not work!

I do think stuff like that is currently being added.

> Oh -- and another thing! There should be some discussion (or mention
> or recommendation) about using WinCVS! The WinCVS documents gave me
> no clue as to the difference between CVSNT and Windows CVS.

Erm,... not sure if that's what you meant, but WinCvs also is *not* the
Windows port of CVS. It is (only) a graphical frontend to the CVS(NT)
commandline client. There are many other graphical CVS(NT) frontends out
there. Several of which cooperate equally close with the CVSNT project.

> Oh -- and another thing! Where does it define what a module is? C
> programmers usually refer to a module as a separately compiled
> (single) source code file with possibly multiple header files. I have
> inferred that CVS uses the word  module to refer to an entire
> directory of source code files. Is this true? Is this explained
> anywhere?

I prepared something for an upcoming updated WinCvs help file here:
http://people.freenet.de/ogiesen/WinCvsHelp/Glossary.html#Module

Hope this helps.

--
Oliver
------
In everybody's best interest, please do not post or CC technical
questions to me in private unless they are specifically about a
macro/product of mine that is NOT already bundled with WinCvs. I will
generally forward my replies to such posts to the CVSGUI list without
further notice.
----	------------------
JID:	ogiesen at jabber.org
ICQ:	18777742	(http://wwp.icq.com/18777742)