Re: cvs checkout ./. csup

2011-11-19 Thread Matthew D. Fuller
On Sat, Nov 19, 2011 at 04:11:24PM + I heard the voice of
Christian Weisgerber, and lo! it spake thus:
> 
> You can also export the repository by NFS to other machines nearby.
> A "local" checkout from an NFS file system is more efficient than
> cvs's remote handling.

An additional speedup can be gotten from using readonly mode (cvs -R);
that saves a lot of lockfile creation along the way.


-- 
Matthew Fuller (MF4839)   |  fulle...@over-yonder.net
Systems/Network Administrator |  http://www.over-yonder.net/~fullermd/
   On the Internet, nobody can hear you scream.
___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"


Re: cvs checkout ./. csup

2011-11-19 Thread Christian Weisgerber
Conrad J. Sabatier  wrote:

> Then use cvs to update your /usr/{src,ports,doc} trees from your local
> copy of the CVS repo.  Note that having a local CVS repo also eliminates the
> need to use the pserver access method, if you're updating on the same
> machine where the repo resides.

You can also export the repository by NFS to other machines nearby.
A "local" checkout from an NFS file system is more efficient than
cvs's remote handling.

-- 
Christian "naddy" Weisgerber  na...@mips.inka.de

___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"


Re: cvs checkout ./. csup

2011-11-19 Thread Christian Weisgerber
Matthew Seaman  wrote:

> Efficiency, basically.  csup should require less bandwidth and put less
> load on servers than using cvs directly.  It works like rsync,

Actually, csup is much more efficient than rsync because it can
cache the meta information and so doesn't have to perform a stat()
on each file.  That doesn't matter so much on the client (compare
plain csup vs. csup -s), but it is quite significant on the server.

And anon cvs is just an enormous hog on the server side.

-- 
Christian "naddy" Weisgerber  na...@mips.inka.de

___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"


Re: cvs checkout ./. csup

2011-11-16 Thread Conrad J. Sabatier
On Tue, 15 Nov 2011 10:48:26 +0100
Matthias Apitz  wrote:
> 
> Since many years I'm fetching or updating /usr/ports with
> 
> # cd /usr
> # setenv CVSROOT :pserver:anon...@anoncvs.fr.freebsd.org:/home/ncvs
> # cvs checkout ports
> 
> and later do the updating just with:
> 
> # cd /usr/ports
> # cvs update
> # portupgrade -ai
> 
> The FreeBSD handbook describes (or recommends?) using 'csup' for
> updating ports tree... What is the advantage (or reason, if any)?

Basically, for doing updates across the network, csup is the preferred
method (for reasons of efficiency and less strain on the server).  If
you do need the versioning information provided by CVS (for example, to
create a diff to submit for a ports patch, or simply for convenient
access to the CVS history of a particular file), then you may want to
try the following method:

Use csup to maintain a local copy (default directory /home/ncvs) of the
parts of the CVS repo you need (src, ports, doc, etc.), using a modified
copy of /usr/share/examples/cvsup/cvs-supfile.  You'll probably want to
setup a cron job to do this automatically at regular intervals.

Then use cvs to update your /usr/{src,ports,doc} trees from your local
copy of the CVS repo.  Note that having a local CVS repo also eliminates the
need to use the pserver access method, if you're updating on the same
machine where the repo resides.

If you decide to do this, you'll need to remove your current working
{src,ports,doc} tree(s) and then do a 'cvs checkout' the first time
to setup the CVS-versioned tree(s).  For example:

export CVSROOT=/home/ncvs
cd /usr
rm -rf ports
cvs checkout ports

After having done the initial checkout, you can then use "cvs
update" (or simply "make update") to maintain the tree.

This gives you the best of both worlds: fast, efficient updates across
the network, while still providing access to all the versioning
features of CVS.

Hope this helps.  :-)

-- 
Conrad J. Sabatier
conr...@cox.net
___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"


Re: cvs checkout ./. csup

2011-11-15 Thread Chip Camden
Quoth Daniel Nebdal on Tuesday, 15 November 2011:
> On Tue, Nov 15, 2011 at 12:00 PM, Matthew Seaman
>  wrote:
> > On 15/11/2011 09:48, Matthias Apitz wrote:
> >> Since many years I'm fetching or updating /usr/ports with
> >>
> >> # cd /usr
> >> # setenv CVSROOT :pserver:anon...@anoncvs.fr.freebsd.org:/home/ncvs
> >> # cvs checkout ports
> >>
> >> and later do the updating just with:
> >>
> >> # cd /usr/ports
> >> # cvs update
> >> # portupgrade -ai
> >>
> >> The FreeBSD handbook describes (or recommends?) using 'csup' for
> >> updating ports tree... What is the advantage (or reason, if any)?
> >
> > Efficiency, basically.  csup should require less bandwidth and put less
> > load on servers than using cvs directly.  It works like rsync, only
> > transferring the parts of the files that changed but exploiting the cvs
> > revision history to produce more specific and minimal deltas than you
> > can get just by using the standard rsync algorithm.
> >
> > However csup(1) doesn't give you any of the VCS features you'ld get by
> > doing a cvs checkout -- so no simple way to diff a local copy against
> > the repo, etc. etc. 'cvs checkout' of all or parts of the ports is still
> > frequently preferable for developing rather than just using the ports.
> >
> > There are also many more cvsup servers worldwide than there are anon-cvs
> > servers.
> >
> 
> There's also portsnap, which has been in the base system for a while
> now. It has some of the same drawbacks as csup/cvsup (no VCS
> features), but is in my experience faster than them. In short, you can
> use "portsnap fetch extract" to download a complete compressed tarball
> of current ports and extract it, and after doing that you can use
> "portsnap fetch update" to update to the current state. Read the
> manpage; there are some important details.
> 
> It uses a binary patch system that's quite efficient, so if you just
> want an updated /usr/ports , it's probably the fastest solution. (I
> think the exact method is that "fetch" grabs a tarball if it doesn't
> exist. If it does exist, it gets the binary patches required to update
> it to the current state. With it in place, "extract" unpacks the
> entire thing, and "update" only extracts the files touched by the last
> "fetch"-command.)
> 
> It has a handbook page: http://www.freebsd.org/doc/handbook/portsnap.html
> 

In my experience, portsnap is much faster than csup for updating ports.
I've tried both (at different times) updating almost daily for months at
a time.

-- 
.O. | Sterling (Chip) Camden  | http://camdensoftware.com
..O | sterl...@camdensoftware.com | http://chipsquips.com
OOO | 2048R/D6DBAF91  | http://chipstips.com


pgpZX4UD0cPH1.pgp
Description: PGP signature


Re: cvs checkout ./. csup

2011-11-15 Thread Daniel Nebdal
On Tue, Nov 15, 2011 at 12:00 PM, Matthew Seaman
 wrote:
> On 15/11/2011 09:48, Matthias Apitz wrote:
>> Since many years I'm fetching or updating /usr/ports with
>>
>> # cd /usr
>> # setenv CVSROOT :pserver:anon...@anoncvs.fr.freebsd.org:/home/ncvs
>> # cvs checkout ports
>>
>> and later do the updating just with:
>>
>> # cd /usr/ports
>> # cvs update
>> # portupgrade -ai
>>
>> The FreeBSD handbook describes (or recommends?) using 'csup' for
>> updating ports tree... What is the advantage (or reason, if any)?
>
> Efficiency, basically.  csup should require less bandwidth and put less
> load on servers than using cvs directly.  It works like rsync, only
> transferring the parts of the files that changed but exploiting the cvs
> revision history to produce more specific and minimal deltas than you
> can get just by using the standard rsync algorithm.
>
> However csup(1) doesn't give you any of the VCS features you'ld get by
> doing a cvs checkout -- so no simple way to diff a local copy against
> the repo, etc. etc. 'cvs checkout' of all or parts of the ports is still
> frequently preferable for developing rather than just using the ports.
>
> There are also many more cvsup servers worldwide than there are anon-cvs
> servers.
>

There's also portsnap, which has been in the base system for a while
now. It has some of the same drawbacks as csup/cvsup (no VCS
features), but is in my experience faster than them. In short, you can
use "portsnap fetch extract" to download a complete compressed tarball
of current ports and extract it, and after doing that you can use
"portsnap fetch update" to update to the current state. Read the
manpage; there are some important details.

It uses a binary patch system that's quite efficient, so if you just
want an updated /usr/ports , it's probably the fastest solution. (I
think the exact method is that "fetch" grabs a tarball if it doesn't
exist. If it does exist, it gets the binary patches required to update
it to the current state. With it in place, "extract" unpacks the
entire thing, and "update" only extracts the files touched by the last
"fetch"-command.)

It has a handbook page: http://www.freebsd.org/doc/handbook/portsnap.html

-- 
Daniel Nebdal
___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"


Re: cvs checkout ./. csup

2011-11-15 Thread Matthew Seaman
On 15/11/2011 09:48, Matthias Apitz wrote:
> Since many years I'm fetching or updating /usr/ports with
> 
> # cd /usr
> # setenv CVSROOT :pserver:anon...@anoncvs.fr.freebsd.org:/home/ncvs
> # cvs checkout ports
> 
> and later do the updating just with:
> 
> # cd /usr/ports
> # cvs update
> # portupgrade -ai
> 
> The FreeBSD handbook describes (or recommends?) using 'csup' for
> updating ports tree... What is the advantage (or reason, if any)?

Efficiency, basically.  csup should require less bandwidth and put less
load on servers than using cvs directly.  It works like rsync, only
transferring the parts of the files that changed but exploiting the cvs
revision history to produce more specific and minimal deltas than you
can get just by using the standard rsync algorithm.

However csup(1) doesn't give you any of the VCS features you'ld get by
doing a cvs checkout -- so no simple way to diff a local copy against
the repo, etc. etc. 'cvs checkout' of all or parts of the ports is still
frequently preferable for developing rather than just using the ports.

There are also many more cvsup servers worldwide than there are anon-cvs
servers.

Cheers,

Matthew

-- 
Dr Matthew J Seaman MA, D.Phil.   7 Priory Courtyard
  Flat 3
PGP: http://www.infracaninophile.co.uk/pgpkey Ramsgate
JID: matt...@infracaninophile.co.uk   Kent, CT11 9PW



signature.asc
Description: OpenPGP digital signature


cvs checkout ./. csup

2011-11-15 Thread Matthias Apitz


Hello,

Since many years I'm fetching or updating /usr/ports with

# cd /usr
# setenv CVSROOT :pserver:anon...@anoncvs.fr.freebsd.org:/home/ncvs
# cvs checkout ports

and later do the updating just with:

# cd /usr/ports
# cvs update
# portupgrade -ai

The FreeBSD handbook describes (or recommends?) using 'csup' for
updating ports tree... What is the advantage (or reason, if any)?

Thanks in advance

matthias
-- 
Matthias Apitz
t +49-89-61308 351 - f +49-89-61308 399 - m +49-170-4527211
e  - w http://www.unixarea.de/
___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"