[Clug-tech] CVS gurus?

Shawn sgrover at open2space.com
Mon Jul 6 12:28:38 PDT 2009


Branching may be suitable here.

The idea being that you create a "branch" for you to play with (on your 
local copy presumably, or the main copy if agreeable).  The files that 
you do not modify are inherited from the TRUNK.  Any files you modify 
are tagged and under revision control within your branch.  Then if/when 
you are done "playing", you can merge the branch back into the TRUNK. 
Or you can just remove the branch without merging if the "playing" needs 
to be aborted.

With Subversion and Git, this is relatively simple (git is easiest 
though).  I believe Subversion was created in response to limitations or 
inefficiencies with branching in CVS though, so this usage may not be 
quite right.

Also, there are Git extensions that make working with CVS/Subversion 
easier.  (i.e. build a local Git repository based on the CVS tree and 
let the extension worry bout where to get files from).

I suspect that Mark's solution will probably be more straight forward 
though.

my thoughts.

Shawn

Mark Carlson wrote:
> OK, just mirror (rsync) the RCS files locally on your DNS-323 (they
> end in ",v".)
> 
> To find out where these files are on the server, cd to a checked-out
> module, then do:
> # cat CVS/Root
> 
> If you check in changes to your local copy, then you may have some
> issues getting the history merged back in.  If they are minor, and you
> don't mind entering the comments again, it's pretty easy to use one
> local checkout to work with two CVS servers.
> 
> You just need two copies of the "CVS/Root" file handy and replace as
> necessary.  Something like this should work:
> # cat > /tmp/Root-local << EOF
> :ext:user at localcvsserver:/path/to/local/cvsrepos
> EOF
> # cat > /tmp/Root-remote << EOF
> :ext:user at remotecvsserver:/path/to/remote/cvsrepos
> EOF
> 
> To use the local CVS repo:
> # find . -name Root -exec cp /tmp/Root-local {} \; -print
> To use the remote CVS repo:
> # find . -name Root -exec cp /tmp/Root-remote {} \; -print
> 
> If you were using the local CVS repo, and want to update the remote
> one with your changes:
> - cd to the checked out module (from the local server)
> - use the "Root" files that point to the remote server
> - cvs update # check out any changes made in the mean time
> - note any conflicts, just in case your local server is too far out of sync
> - cvs ci # enter in the new comments
> 
> On 7/6/09, John E. Jardine <john_e_jardine at spamcop.net> wrote:
>> Hi,
>>
>>  The scenario is that the original CVS repository is a corporate one owned
>> and controlled by a build adminstrator.
>>
>>  I want to be able to image it locally to play with it and eventually become
>> my own build admistrator - all the while keeping it current.
>>
>>  Thanks,
>>  J.J.
>>
>>  PS: Shaw Internet is having a bit of a nap in my neighbourhood so I'll only
>> be on intermittantly.
>>
>>
>>
>>  Quoting Mark Carlson <carlsonmark at gmail.com>:
>>
>>
>>> On 7/6/09, John Jardine <john_e_jardine at spamcop.net> wrote:
>>>
>>>> Ok - this might be more of a case of me just not knowing what I'm doing
>>>>  than requiring Guru level assistance.
>>>>
>>>>  I want to create a local CVS repository on my DNS-323 (NAS box) that is
>>>>  a clone of a remote CVS repository.  As time passes the repositories
>>>>  will diverge - so I also need a way to sync them again.
>>>>
>>>>  A pain point is that I don't have direct connectivity between the two.
>>>>  The NAS is on my local network but the remote CVS repository is only
>>>>  available via a VPN from a windows box, the good news is that the
>>>>  windows box is on the same local network as the NAS.
>>>>
>>>>  Thoughts, comments?
>>>>
>>> Is this description correct?
>>> 1. You need to access your CVS repo (not just the files in the repo)
>>> while "offline".
>>> 2. You need to check-in while "offline"
>>> 3. Other people will be checking code in to the main repo while you
>>> have checked in code while "offline"
>>>
>>> If you don't need to do #2, above, then just rsyncing the rcs files
>>> should work.  If you do need to check stuff in to your local repo and
>>> merge with the upstream CVS server... consider moving to GIT?  There
>>> is probably a way, but I can't think of one right now.
>>>
>>> -Mark C.
>>>
>>> _______________________________________________
>>> clug-tech mailing list
>>> clug-tech at clug.ca
>>> http://clug.ca/mailman/listinfo/clug-tech_clug.ca
>>>
>>>
>>
>>  _______________________________________________
>>  clug-tech mailing list
>>  clug-tech at clug.ca
>>  http://clug.ca/mailman/listinfo/clug-tech_clug.ca
>>
> 
> _______________________________________________
> clug-tech mailing list
> clug-tech at clug.ca
> http://clug.ca/mailman/listinfo/clug-tech_clug.ca



More information about the clug-tech mailing list