Hi,
I'm keeping only a partial checkout of the packages, e.g. the ones I'm maintaining. Now I'd like to be able to cvs up and have all updates flow in, but if I do so cvs will want to get all other thousand packages in.
Until now I'm using a poor man's solution with a for loop and pushd/popd, but it's extremely slow due to login in for each package.
Is there a more clever way to get cvs up running w/o pulling in all of the cvsroot? I could probably manually edit CVS/Entries, but this feels a bit dirty. What are other packagers doing?
Hi,
On Sun, Aug 24, 2008 at 07:44:39PM +0300, Axel Thimm wrote:
I'm keeping only a partial checkout of the packages, e.g. the ones I'm maintaining. Now I'd like to be able to cvs up and have all updates flow in, but if I do so cvs will want to get all other thousand packages in.
Until now I'm using a poor man's solution with a for loop and pushd/popd, but it's extremely slow due to login in for each package.
Is there a more clever way to get cvs up running w/o pulling in all of the cvsroot? I could probably manually edit CVS/Entries, but this feels a bit dirty. What are other packagers doing?
Sometimes it helps posting a problem to think more about it and solve it. For posterity and google searches:
Actually what I wanted is already the default. But one usually wants cvs to automatically discover new folders and pull them in (the -d option). This is so common, that at one time in your cvs life you will add it to ~/.cvsrc as a default option like
$ cat ~/.cvsrc diff -ud update -P -d
and you will forget about it, and you will make silly help requests like the one I did above. :)
Now you dont need to remove the otherwise useful -d switch to update, instead use
cvs -fq up
to get the desired (non-verbose) updating w/o getting new packages in.
Axel Thimm wrote:
Hi,
I'm keeping only a partial checkout of the packages, e.g. the ones I'm maintaining. Now I'd like to be able to cvs up and have all updates flow in, but if I do so cvs will want to get all other thousand packages in.
Until now I'm using a poor man's solution with a for loop and pushd/popd, but it's extremely slow due to login in for each package.
Is there a more clever way to get cvs up running w/o pulling in all of the cvsroot? I could probably manually edit CVS/Entries, but this feels a bit dirty. What are other packagers doing?
I do:
mkdir ~/CVS/ cvs co package1 cvs co package2
(just for reference of what is on my computer)
Then, to update all of my checkouts, I do:
cd ~/CVS cvs up -d
Kind regards,
Jeroen van Meeuwen -kanarip
2008/8/24 Axel Thimm Axel.Thimm@atrpms.net:
Hi,
I'm keeping only a partial checkout of the packages, e.g. the ones I'm maintaining. Now I'd like to be able to cvs up and have all updates flow in, but if I do so cvs will want to get all other thousand packages in.
Until now I'm using a poor man's solution with a for loop and pushd/popd, but it's extremely slow due to login in for each package.
Is there a more clever way to get cvs up running w/o pulling in all of the cvsroot? I could probably manually edit CVS/Entries, but this feels a bit dirty. What are other packagers doing?
With respect to the ssh logins required for each cvs operation, I tend to use opportunistic connection multiplexing. e.g., in my ~/.ssh/config I have:
---- ControlMaster auto ControlPath ~/.ssh/sockets/%h_%p_%r_multi.sock
Host cvs.fedora.redhat.com Compression yes CompressionLevel 3 ----
And then I just do a "ssh -f -N cvs.fedora.redhat.com". It authenticates me once, then just kicks around in the background until I perform a network operation though CVS, at which point the "new" connection is routed through the existing one. If I haven't forked off a connection to c.f.r.c, no biggie, ssh just connects per usual.
This won't help with selectively pulling down CVS, but it should make each operation a smidge faster :-)
-Chris
On Sunday 24 August 2008 04:16:33 pm Chris Weyl wrote:
2008/8/24 Axel Thimm Axel.Thimm@atrpms.net:
Hi,
I'm keeping only a partial checkout of the packages, e.g. the ones I'm maintaining. Now I'd like to be able to cvs up and have all updates flow in, but if I do so cvs will want to get all other thousand packages in.
Until now I'm using a poor man's solution with a for loop and pushd/popd, but it's extremely slow due to login in for each package.
Is there a more clever way to get cvs up running w/o pulling in all of the cvsroot? I could probably manually edit CVS/Entries, but this feels a bit dirty. What are other packagers doing?
With respect to the ssh logins required for each cvs operation, I tend to use opportunistic connection multiplexing. e.g., in my ~/.ssh/config I have:
ControlMaster auto ControlPath ~/.ssh/sockets/%h_%p_%r_multi.sock
Host cvs.fedora.redhat.com Compression yes CompressionLevel 3
And then I just do a "ssh -f -N cvs.fedora.redhat.com". It authenticates me once, then just kicks around in the background until I perform a network operation though CVS, at which point the "new" connection is routed through the existing one. If I haven't forked off a connection to c.f.r.c, no biggie, ssh just connects per usual.
This won't help with selectively pulling down CVS, but it should make each operation a smidge faster :-)
-Chris
That shouldnt work with the Makefiles. since they all use cvs.fedoraproject.org not the old legacy address :)
Dennis
2008/8/24 Dennis Gilmore dennis@ausil.us:
That shouldnt work with the Makefiles. since they all use cvs.fedoraproject.org not the old legacy address :)
s/cvs.fedora.redhat.com/cvs.fedoraproject.org/ in the above then :) I've never had any issues.... Though, I _really_ ought to update my checkout to use the new addy.
(Yes, I've had my cvs checkout since way before it became an old legacy address, and I hate change :-) )
-Chris
On Sun, Aug 24, 2008 at 02:55:41PM -0700, Chris Weyl wrote:
2008/8/24 Dennis Gilmore dennis@ausil.us:
That shouldnt work with the Makefiles. since they all use cvs.fedoraproject.org not the old legacy address :)
s/cvs.fedora.redhat.com/cvs.fedoraproject.org/ in the above then :) I've never had any issues.... Though, I _really_ ought to update my checkout to use the new addy.
(Yes, I've had my cvs checkout since way before it became an old legacy address, and I hate change :-) )
I also need to move my Roots to something new age. Wasn't there a tool for CVS? Or some perl/sed magic to do that?
infrastructure@lists.fedoraproject.org