Re: Setting up first repository

2005-03-09 Thread Roddie
on 5/3/05 19:23, Pierre Asselin at [EMAIL PROTECTED] wrote:

 Roddie [EMAIL PROTECTED] wrote:
 [ ... ]
 The repository could be on either computer, but I plan to put it on the
 co-lo.
 
 You may want to dry-run this on your laptop.  Run cvs init to start a
 repository, use it locally for a while, wipe it out when you have
 enough experience to init a new repository on your co-lo.
 
 The dry run is just to play with cvs commands for a while.  You have
 a pretty strong incentive to switch to your final repository so you can
 distribute files to the live site through cvs.

This is a good idea and I've been trying it. I can log in OK, but when I try
to import a trial project using cvs -d
:pserver:[EMAIL PROTECTED]:/usr/local/CVS import myProj no-vendor release-0
I get cvs [import aborted]: reading CVS/Tag: Not a directory.

I may also have Unix permission problems - I had to make CVSROOT chmod 757
(though there may be lesser options - Unix permissions are not instinctive
yet!)

I have a passwd file with roddie:abcxyz:roddie where roddie is a Unix
administrator.

 [ ... ]
 [...]
 
 Occasionally I make changes direct to the live site. These are usually
 trivial updates of content, but remembering to make them also in the
 development files is a nuisance. In this instance I would make changes to
 the live site, commit them, and then update the development sandbox.
 
 Then your live site should be a sandbox, and it should be on a branch.
 Otherwise, you won't be allowed to commit your trivial tweaks without
 first running an update, and that would force you to deploy changes
 sooner than you would like.

Good point - I hadn't foreseen the need for a branch so early in the
learning curve.

 Having a release branch is pretty standard.  You fix bugs on the branch
 and merge them back to the trunk so you don't have to fix them twice.
 When your trunk is good, you cut a new release branch and update the
 live sandbox to the new branch.  Post again if the process is not
 clear to you.

Thanks to everyone who responded. I really appreciate the help.

Roddie Grant



___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: Setting up first repository

2005-03-09 Thread Pierre Asselin
Roddie [EMAIL PROTECTED] wrote:

 [a test repository] is a good idea and I've been trying it.
 I can log in OK, but when I try
 to import a trial project using cvs -d
 :pserver:[EMAIL PROTECTED]:/usr/local/CVS import myProj no-vendor release-0
 I get cvs [import aborted]: reading CVS/Tag: Not a directory.

pserver ?  Why not just :local:/usr/local/CVS ?  No xinetd, no login,
no passwords to set up...

When you put a cvs server on your colocation box I recommend :ext:
with CVS_RSH=ssh and public key authentication.  I assume
you already have the ssh part set up ?  Othwerwise how do you
reach your colocated machine ?


 I may also have Unix permission problems - I had to make CVSROOT chmod 757
 (though there may be lesser options - Unix permissions are not instinctive
 yet!)

The usual directory permissions are 770 + setgid to a group to which
all the developers belong.  The setgid bit (on Linux) is to make sure
any subdirectories inherit the group of their parents.

-- 
pa at panix dot com
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: Setting up first repository

2005-03-05 Thread Pierre Asselin
Roddie [EMAIL PROTECTED] wrote:
 I'm new to CVS, and I've been reading up about it for some weeks.
 [ ... ]
 I'm a one-man website developer. As things have turned out, I do relatively
 complex on-going work on a small number of sites. Development is on my OS X
 Mac laptop, and deployment is on my own RH Linux co-lo.

 The repository could be on either computer, but I plan to put it on the
 co-lo.

You may want to dry-run this on your laptop.  Run cvs init to start a
repository, use it locally for a while, wipe it out when you have
enough experience to init a new repository on your co-lo.

The dry run is just to play with cvs commands for a while.  You have
a pretty strong incentive to switch to your final repository so you can
distribute files to the live site through cvs.


 [ ... ]
 The shared directory holds libraries and other files needed by all the other
 sites. Each site uses symlinks so that the shared files appear to be in the
 correct place for that site.

Sometimes it helps to think of your sandbox as the *source tree* of your
web site rather than the web site itself.  Planting the symbolic links
is now a trivial compilation step that you perform after checkout or
update.  This should be scripted, and the script should be part of your
sandbox, under revision control like the rest.


 I plan to have the sites directory as the project. There would be three
 sandboxes to start with: a development sandbox on the Mac laptop; a test
 sandbox on the co-lo (to iron out any MacLinux issues); and the live sites
 in a sandbox on the co-lo.

Sounds good.

 Normally, development will take place on the Mac, be committed, the test
 sandbox updated, tested and committed, and then the live site sandbox (and
 the Mac if necessary) updated.

Or you could have a scripted installation step to copy the test sandbox
to the live site, which may or may not be a CVS sandbox.


 Occasionally I make changes direct to the live site. These are usually
 trivial updates of content, but remembering to make them also in the
 development files is a nuisance. In this instance I would make changes to
 the live site, commit them, and then update the development sandbox.

Then your live site should be a sandbox, and it should be on a branch.
Otherwise, you won't be allowed to commit your trivial tweaks without
first running an update, and that would force you to deploy changes
sooner than you would like.

Having a release branch is pretty standard.  You fix bugs on the branch
and merge them back to the trunk so you don't have to fix them twice.
When your trunk is good, you cut a new release branch and update the
live sandbox to the new branch.  Post again if the process is not
clear to you.


-- 
pa at panix dot com
___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


RE: Setting up first repository

2005-03-04 Thread Jim.Hyslop
Roddie wrote:
A lot of stuff that sounds pretty good. Plus:

 The shared directory holds libraries and other files needed 
 by all the other
 sites. Each site uses symlinks so that the shared files 
 appear to be in the
 correct place for that site. As I understand it, the symlinks 
 should not be
 part of the repository, but created manually.
Not sure where you heard that, but it will cause you much more work. I use
symlinks in the repository, with no problems.

You might consider using ampersand modules instead - that's what they're
designed for. Have a closer look at the documentation of the modules file
(in the administrative files section of the manual, IIRC).

 Is all this correct, complete and sensible? I'm open to any advice.
Other than the symlink comments above, sounds good to me. Make sure your web
server knows to ignore directories named 'CVS' (I believe Apache has an
option to allow you to do that).

-- 
Jim Hyslop
Senior Software Designer
Leitch Technology International Inc. ( http://www.leitch.com )
Columnist, C/C++ Users Journal ( http://www.cuj.com/experts )



___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


RE: Setting up first repository

2005-03-04 Thread Jim.Hyslop
[EMAIL PROTECTED] wrote:
 Jim.Hyslop writes:
 
  Not sure where you heard that, but it will cause you much 
 more work. I use
  symlinks in the repository, with no problems.
 
 What kind of symlinks?  Although it's not recommended, you can symlink
 *directories* in the repository, as long as you don't use LOCKDIR in
 your config file to put the lock files somewhere else.
Right, I forgot to qualify that part - yes, our symlinks are for
directories, and we do not use LOCKDIR.

Oh, and doesn't CVS have problems if $CVSROOT/CVSROOT is symlinked? Or has
that been fixed? Or am I mis-remembering something?

-- 
Jim Hyslop
Senior Software Designer
Leitch Technology International Inc. ( http://www.leitch.com )
Columnist, C/C++ Users Journal ( http://www.cuj.com/experts )



___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: Setting up first repository

2005-03-04 Thread Larry Jones
Jim.Hyslop writes:

 Not sure where you heard that, but it will cause you much more work. I use
 symlinks in the repository, with no problems.

What kind of symlinks?  Although it's not recommended, you can symlink
*directories* in the repository, as long as you don't use LOCKDIR in
your config file to put the lock files somewhere else.  If you do, or if
you symlink individual files, you're completely defeating CVS's locking
scheme and opening yourself up to all sorts of potential corruption.

-Larry Jones

OK, there IS a middle ground, but it's for sissy weasels. -- Calvin


___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: Setting up first repository

2005-03-04 Thread Larry Jones
Jim.Hyslop writes:
 
 Oh, and doesn't CVS have problems if $CVSROOT/CVSROOT is symlinked? Or has
 that been fixed?

I believe that's been fixed.

-Larry Jones

Good gravy, whose side are you on?! -- Calvin


___
Info-cvs mailing list
Info-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/info-cvs