info-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Questions on the vss3cvs script


From: Laine Stump
Subject: Re: Questions on the vss3cvs script
Date: 10 May 2001 11:05:55 -0400
User-agent: Gnus/5.0808 (Gnus v5.8.8) Emacs/20.7

"Diedrich, David" <address@hidden> writes:

>       I'm in  the process of converting some sourcesafe files to CVS using
> your vss2cvs perl script and have q couple  of questions on its use. 
> 
> How does the perl script use cvs.exe and ss.exe; I did'nt see a place in the
> script on where the pointer to these executables where used so I'm wondering
> if I'm missing something.

Uh, look at just about any use of the function "exec_cmd". It is used
in many *many* places to call cvs as well as to call ss (the VSS
commandline utility). It is assumed that these commands (and a few
others) are somewhere in the system executable path, as mentioned in
the ReadMe.txt file that you can find in the same location as the
script.

> I've installed the cygwin Unix utility package on my PC and I'm working in
> the cygwin Unix shell. The command line use of vss2cvs script goes as
> follows:   perl vss2cvs option option option . . . 
> 
> According to the script the options work like this
> 
>       perl vss2cvs workdir ssroot cvsroot ssproj cvsbranch ssuserpass

Although nothing ever says that is the case, I guess I didn't make the
way it *does* work clear enough in the documentation. Options to the
script are *NOT* determined by their position on the commandline.
There are two ways to specify options:

1) set an environment variable that has the same name as the option
   prior to calling the script. For example:

      set WORKDIR=c:/sscvwork         * see note 
      set SSROOT=c:/test              * see note
      set CVSROOT=/cygdrive/g/CVSTEST
      set SSPROJ=projectname/subproject
      perl vss2cvs.pl

2) enter the environment variable settings on the commandline, in
   option=value syntax. For example:

      perl vss2cvs.pl WORKDIR=c:/sscvwork SSROOT=c:/test 
CVSROOT=/cygdrive/g/CVSTEST SSPROJ=projectname/subproject


> I'm assuming that this command line inputs are my root directories so are my
> doing this right if I enter the options like follows:
> 
>       perl vss2cvs  /cygdrive/c/sscvwork /cygdrive/c/test
> /cygdrive/g/CVSTEST projectname optional optional.

Nope. See above. Also read the ReadMe.txt file and the script itself -
the documentation is haphazard and missing some things, but everything
is revealed in the source.

Now, for some notes (most all of these are also in ReadMe.txt, but
they're important so I'll repeat them):

1) DO NOT install/use the perl that comes with cygwin - see the ReadMe
   for the reason. Install ActivePerl instead. http://www.activeperl.com.

2) I prefer to not use the cvs.exe that comes with cygwin, because a)
   it makes me use the /cygdrive/x/dir notation, which is a pain to
   type, and gets confusing/creates problems when you're trying to use
   the same directory names with other applications that *aren't*
   cygwin, and b) I've seen it screw up in some areas where it behaves
   half like a unix cvs and half like a DOS cvs (sorry, I don't
   remember the details right now). Instead, install a standard
   Windows cvs binary built with MSVC++.

3) If you're going to be doing things from within a cygwin shell (or,
   better yet, bash, which is a part of cygwin), keep in mind that the
   options to vss2cvs.pl are mostly for the use of ss.exe and
   cvs.exe. Even though you're running these commands from within a
   cygwin shell, they still understand only the normal DOS/Windows
   location of files - for example, they understand c:/test, NOT
   /cygdrive/c/test. As long as you use ActivePerl, and a standard
   (non-cygwin) cvs.exe), NONE of the options will use the
   /cygdrive/... notation.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]