[cvsnt] CVS v. CVSNT

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


[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
>> appropriate adjustments might have to be made for other platforms?
> 
> 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 
administrator, otherwise it seems the privileges for your admin account 
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
> says "page not found!".

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
> had to guess at how to add new users. I forgot to gripe about that.
> 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)



More information about the cvsnt mailing list