I almost released my TS-10 sources to public but had an unexpected visitor
here and received advise from Eric to not import sources into
SourceForge CVS server directly so that I have to figure how to create my
local repository first before I upload it into SourceForge.
Eric, how do I create my local repository because I am very new to
CVS?
Thank you!
-- Tim Stark
--
Timothy Stark <>< Inet: swo...@speakeasy.org
--------------------------------------------------------------------------
"For God so loved the world, that he gave his only begotten Son, that
whosoever believeth in him should not perish, but have everlasting life.
Amen." -- John 3:16 (King James Version Bible)
> I almost released my TS-10 sources to public but had an unexpected visitor
> here and received advise from Eric to not import sources into
> SourceForge CVS server directly so that I have to figure how to create my
> local repository first before I upload it into SourceForge.
Sounds like good advice to me.
> Eric, how do I create my local repository because I am very new to
> CVS?
Uh, try this?
http://www.cvshome.org/docs/manual/cvs_3.html#SEC38
(I imported gcc-2.95.2 from cygnus once, but never set up my own tree
or distributed tree contents to someone else).
/AHM
--
Alan Howard Martin AMa...@MA.UltraNet.Com
Sorry for the holdup, folks! I'll give Tim step-by-step instructions
to help him get the repository together.
In case anyone is wondering, the reason NOT to do a direct import to
SourceForge is that the file version numbers in souce control then
all become 1.1.1.x, where x starts at one and increments. There's
nothing especially wrong with that, but if you create a local repository,
the file version numbers count from 1.x, which is slightly easier to
deal with (IMHO).
The four-place version numbers arise from CVS's idea of having separate
top-of-tree and "vendor" branches. "cvs import" is intended to create
a vendor branch.
Eric
I wrote:
> Sorry for the holdup, folks! I'll give Tim step-by-step instructions
> to help him get the repository together.
I've mailed detailed instructions to Tim, and will give him any assistance
he needs in constructing the repository and getting it installed on
SourceForge. Once it is uploaded and the support request is made, it
seems to typically take one to four days for the repository to be
imported.
Eric
Eric:
Help! I tried to create my local repository but have some problems with
'cvs import' command.
$ export CVSROOT=$HOME/projects/ts10.prj/cvs
$ mkdir cvs
$ cd cvs
$ mkdir CVSROOT
$ cd ..
$ cvs import -m "Initial TS10 Developement" ts10
When I attempt to execute 'cvs import ...', I was kept getting
usage information instead! :-(
Don't use cvs import. I emailed you detailed instructions on what to do.
In case you didn't get my email, here's a copy:
Date: 26 Feb 2001 00:13:03 -0000
From: Eric Smith <er...@brouhaha.com>
To: Timothy Stark <swo...@grace.speakeasy.org>
Subject: CVS repository creation
Timothy,
Here's some step-by-step instructions to help you with CVS. It is
easiest if you put your source directory into a nested directory (which
need not contain anything else). I'm assuming you'll have it in the
directory ~/work/ts10 but you can easily substitute anywhere else. I
also assume that you are using the bash shell; if you use tcsh you'll
have to use setenv instead of export. I've shown the shell prompt as '% '.
1. Set the CVSROOT environment variable to point to where you want
the repository to live:
% export CVSROOT=~/ts10-cvs
For tcsh, the equivalent would be:
% setenv CVSROOT ~/ts10-cvs
(Note the space instead of the equals sign.)
2. Create the repository directory:
% mkdir $CVSROOT
3. Tell CVS to initialize the repository:
% cvs init
4. Create the subdirectory in the repository for your source files:
% mkdir $CVSROOT/ts10
% ls $CVSROOT
CVSROOT ts10
%
If your working source tree has subdirectories, create a similar
subdirectory structure here. For instance, if you have
ts10/foo, ts10/bar, and ts10/bar/baz:
% mkdir $CVSROOT/ts10/foo $CVSROOT/ts10/bar $CVSROOT/ts10/bar/baz
5. cd to the parent of the source directory:
% cd ~/work
(Note that your ts10 source code is in the ts10 directory *below* this
one. If you do an "ls" at this point, it should just show the ts10
subdirectory.)
6. Do a cvs checkout. This sets up the CVS subdirectories in
the source tree:
% cvs checkout ts10
This will produce output with one line for each file in ts10, with a
question mark at the left. This indicates that cvs has found those
files but they are not yet part of the repository.
7. cd into the source directory:
% cd ts10
8. do a cvs add of all files you want to go into the repository, this
tells CVS that you are going to check them in:
% cvs add README Makefile *.c *.h
(Include any other files you want in source control. If you want
to leave some source or header files out that aren't actually
part of your release, you can list the source files explicitly
rather than using a wildcard.)
9. If you have subdirectories, cd into them and do a cvs add on them
as well. cd back to the top (ts10) directory when you're done.
10. commit the files, this actually puts them into the repository:
% cvs commit -m "initial version"
The -m and string give the initial log message, use anything you
feel appopriate. cvs commit works recursively, and will commit
all the files you've added, even in subdirectories.
If you ever need to commit files individually, you can give the
files on the command line. For instance, if you wanted foo.c and
bar.c to have a different initial log message than the rest, then
before doing a commit of everything (as above), you can do this:
% cvs commit -m "a different log message" foo.c bar.c
11. verify that everything looks good:
% cvs status | more
This will give details about every file in the repository. Each file
should have a working revision and a repository revision of 1.1,
and Status of Up-to-date. Sometimes I like a more concise summary
with just the Status field:
% cvs status | grep Status
(note the upper case S on the Status in the grep)
For extra verification, check out a copy into a new directory and do
a build. This will make sure you haven't accidentally omitted any
files:
1. Make sure CVSROOT is set as in step 1 of the setup above:
% export CVSROOT=~/ts10-cvs
2. Make a new directory to check out into:
% mkdir ~/work2
3. cd into that directory
% cd ~/work2
4. check out the code:
% cvs checkout ts10
5. cd into ts10:
% cd ts10
6. build the code as usual:
% make
Once you've done that, you can blow away work2 if you like:
% cd ~
% rm -rf ~/work2
Package up the repository:
1. cd into the repository top-level directory:
% cd $CVSROOT
2. tar it up:
% tar -cvzf ~/ts10-cvs.tar.gz ./ts10
3. cd out:
% cd ~
4. If you like, email me the repository and I'll test it on my system to
make sure there are no problems. However, if you've followed the
steps above, I think it should be fine.
5. scp the file to SourceForge:
scp ts10-cvs.tar.gz swo...@ts10.sourceforge.net:/
6. Submit a request to the Sourceforge CVS people to import the
repository - for directions see
http://sourceforge.net/docman/display_doc.php?docid=768&group_id=1
Let me know if you run into any trouble.
Best regards,
Eric
> Don't use cvs import. I emailed you detailed instructions on what to do.
> In case you didn't get my email, here's a copy:
Yeah. I did not get your original email. Ok, thank you for let
me know. I will try that tomorrow and let you know...
Thank you.
As I am not familiar with this cvs, a couple of questions, please:
1) Mr. Stark will have a login name as "Project Admin"?
2) The rest of us would be listed as developers?
3) The "cvs import" site is only, in our case, a common site for
the repository of the TS-10 & does not relate to the SourceForge
Project?
4) Just as one has to set bits in Unix to ensure read-only status
for a website, did the previous post include security commands
to ensure that the software is read-only?
5) What is the mechanism to fix (minor) bugs to Mr. Stark's
software, as well as agreed upon basic enhancements?
Ken
---
The Algol compiler used at Case Institute of Technology, after
finding
25 errors in the source (e.g., like you spelled BEGIN as BEGNI),
would
print: "At this point, we suggest you try re-reading the manual."
Timothy is the project admin and developer. I have admin privs only
because I registered the SourceForge project. I'm willing to help with
admin tasks, but Timothy can drop my admin privs if he wants.
Developer access is only for those who are approved to directly commit
changes to the source code in CVS. Timothy can decide who he wants
to approve for this. Usually it's only a few people at most. Often
this is determined by who in the community becomes most active in
improving the software.
Other people can certainly be developers, just as thousands of people
are developers of the Linux kernel, but only a few are "official"
developers. That's not intended to denigrate anyone else's work; it's
just to keep some centralized control over things to avoid complete
chaos.
> 3) The "cvs import" site is only, in our case, a common site for
> the repository of the TS-10 & does not relate to the SourceForge
> Project?
The project home page will probably eventually be:
http://www.ts10.org/
It doesn't work yet, don't bother trying.
The SourceForge project summary page will be:
http://sourceforge.net/projects/ts10/
> 4) Just as one has to set bits in Unix to ensure read-only status
> for a website, did the previous post include security commands
> to ensure that the software is read-only?
The CVS repository on SourceForge will only be writable by the
developers that Timothy designates.
> 5) What is the mechanism to fix (minor) bugs to Mr. Stark's
> software, as well as agreed upon basic enhancements?
Anyone will be able to submit bug reports and patches via SourceForge.
It is up to the officially designated developers to determine what
to do about them.
It is my intention to try to help Timothy with the routine admin tasks
so he doesn't have to waste time on them. This is why I registed the
SourceForge project and the domain name for him.
I'll probably also build RPM packages for those who want easy imstallation
on Red Hat Linux. If Timothy wants me to, I'm willing to handle the
general release process.
Best regards,
Eric