Re: Long delay updating xenocara source tree?

2012-02-11 Thread Ingo Schwarze
Hi,

Jiri B wrote on Thu, Feb 09, 2012 at 07:52:44AM -0500:
 Somebody suggested:

 find . -path '*CVS/Root' | xargs rm

 Never ever!

Well, certainly not when you are working in a mixed tree intentionally
using different servers for different subdirectories.

However, on a laptop i'm carrying around, in a clean tree which i'm
using together with various mirrors of the same repository (whichever
mirror happens to be closest at any given place), having directories
bound to specific servers is merely a nuisance and regularly pruning
Root files makes my life easier.  Of course, that precludes using cvs
-d, and it requires using the CVSROOT environment variable instead, in
which case new Root files only pop up in new directories, not in
existing directories.

I don't even deny that verges abuse of cvs and is hardly how it was
intended to be used - but it works well enough for this specific
scenario.  Hence, not never ever.

Yours,
  Ingo


ischwarze@isnote $ env | grep CVS | sort
CVSROOT=:ext:schwa...@cvs.openbsd.org:/cvs
CVSROOT_CA=anon...@anoncvs.ca.openbsd.org:/cvs
CVSROOT_CVS=:ext:schwa...@cvs.openbsd.org:/cvs
CVSROOT_DE=anon...@openbsd.cs.fau.de:/cvs
CVSROOT_EU=anon...@anoncvs.eu.openbsd.org:/cvs
CVSROOT_OSN=anon...@mirror.osn.de:/cvs
CVSROOT_SI=anon...@s2k11.obsd.si:/cvs



Re: Long delay updating xenocara source tree?

2012-02-10 Thread Steffen Daode Nurpmeso
Stuart Henderson wrote [2012-02-10 01:01+0100]:
 On 2012-02-09, Steffen Daode Nurpmeso sdao...@googlemail.com wrote:
  On the long run cvs(1) will die, and be replaced by Schily SCCS
 
 oh please don't, even as a joke.

It's not that bad!
It's from 1972, and only good things can come from 1972.

  And my daily dose of Hypericum; highly recommendet.
 
 we will need a bulk order if we have to use SCCS ;)

Somehow the lights have to become brighter!

--steffen



Re: Long delay updating xenocara source tree?

2012-02-09 Thread Jan Stary
 Otto Moerbeek wrote [2012-02-03 12:47+0100]:
  I like to say that long delays I have seen when using cvs had to do
  with multiple different values of CVS/Root files in my local tree.

Otto, could you please elaborate?
How does this slow down a cvs update?

Is it really due to the fact that there are multiple different *values*
stored in the CVS/Root files? So that cvs needs to consult multiple
cvs servers, and *that* is what gets slow?

I just checked, and I have three different servers mentioned
in my CVS/Root files; a cvs update is slow, but when I have
just one server mentioned in the CVS/Root files, it is not faster.

Also, specifying 'cvs -d mirror' explicitly should get rid of this
problem then (right?), and speed things up, which it doesn't.

Or is the slowdown possibly due to the sheer *number* of CVS/Root
files that are consulted? Would that be remedied by cvs -d too?

Actually, cvs(1) says:

  -d CVS_root_directory
Use CVS_root_directory as the root directory pathname of
the master source repository.  Overrides the setting of the
CVSROOT environment variable.  This value should be specified
as an absolute pathname.

   CVS/Root
 Pathname to the repository ( CVSROOT ) location at the
 time of checkout.  This file is used instead of the CVSROOT
 environment variable if the environment variable is not
 set.  A warning message will be issued when the contents
 of this file and the CVSROOT environment variable differ.
 The file may be over- ridden by the presence of the
 CVS_IGNORE_REMOTE_ROOT environment variable.

It doesn't state explicitly whether 'cvs -d'
makes the CVS/Root files ignored. Does it?

Also, the wording for 'CVS/Root' doesn't seem to be entirely correct:
If I untar, say, sys.tar.gz, then my local tree contains no CVS/Root
files, and if I later do a 'cvs -d mirror up -Pd', the tree gets
populated with CVS/Root files (mentioning mirror) -- that's not 
a time of checkout, that's an update. Also, having
CVS_IGNORE_REMOTE_ROOT doesn't override CVS/Root,
it just makes it ignored, right?

  Those different entries can be created when doing a cvs up -d that
  creates a new dir.

Not only. A 'cvs -d mirror up -d' of a freshly untared sys.tar.gz creates
CVS/Root files all over the place, *not* just in the new directories
(that got created due to the 'up -d'). For example it creates
./sys/arch/i386/CVS/Root, while the directory /sys/arch/i386/
definitely was there before (so it didn't get created with 'up -d').

 If a cvs -d option is used at the same time, the
  CVS/Root entry for tht dir wil be different than the other's. 

Yes, but it will also change the content of CVS/Root
in directories that existed before.

  The exact cause of the slowdown is not known to me. But when you are
  switch repositories once in a while it's easy to get this case. 
  
  I repair this by find . -name Root | xargs rm and using a explicit cvs
  root.

So, using an explicit cvs root does not ignore the CVS/Root files?
Because if it does, then the 'find | xargs rm' should make no difference,
right?

 Now this is really another important issue of scattered
 information, is it, and it's not noted in anoncvs.html!
 I've slightly modified your command, i think my version is more
 secure for use on a webpage.
 
  -Otto
 
 --steffen
 
 Index: anoncvs.html
 ===
 RCS file: /cvs/www/anoncvs.html,v
 retrieving revision 1.363
 diff -a -p -u -r1.363 anoncvs.html
 --- anoncvs.html  24 Jan 2012 09:57:35 -  1.363
 +++ anoncvs.html  3 Feb 2012 13:33:28 -
 @@ -542,6 +542,15 @@ add the em-d anon...@anoncvs.ca.openbs
   # strongcd /usr/src/strong
   # strongcvs -d anon...@anoncvs.ca.openbsd.org:/cvs -q up -Pd/strong
  /pre
 +
 +p And because cvs(1) stores the name of the server which is in use once
 +a directory gets created in the file CVS/Root inside this new directory,
 ^^^

(not only)

 +it maybe wise to issue a command sequence like the following:
 +pre
 + # strongcd /usr/src/strong
 + # strongfind . -path '*CVS/Root' | xargs rm/strong
 + # strongcvs -d anon...@anoncvs.ca.openbsd.org:/cvs -q up -Pd/strong
 +/pre
  /ul
  

I think this is blind typing without understanding what is going on
(not that I know), contrary to the ways of our brilliant FAQ.
Let's understand it first.

Can someone with internal knowledge of cvs
shed some light on this please?

Thank you for your time

Jan



Re: Long delay updating xenocara source tree?

2012-02-09 Thread Jiri B
On Thu, Feb 09, 2012 at 01:16:10PM +0100, Jan Stary wrote:
  +it maybe wise to issue a command sequence like the following:
  +pre
  +   # strongcd /usr/src/strong
  +   # strongfind . -path '*CVS/Root' | xargs rm/strong
  +   # strongcvs -d anon...@anoncvs.ca.openbsd.org:/cvs -q up -Pd/strong
  +/pre
   /ul

Never ever! For example if we would talk about ports tree, 'mystuff' could
get taken from different cvs repo. CVS works like this, you can have multiple
cvs repos inside the tree, it is by design.

Instead of this silly command above, better to tell people to start learning
cvs :)

jirib



Re: Long delay updating xenocara source tree?

2012-02-09 Thread Otto Moerbeek
On Thu, Feb 09, 2012 at 01:16:10PM +0100, Jan Stary wrote:

  Otto Moerbeek wrote [2012-02-03 12:47+0100]:
   I like to say that long delays I have seen when using cvs had to do
   with multiple different values of CVS/Root files in my local tree.
 
 Otto, could you please elaborate?
 How does this slow down a cvs update?
 
 Is it really due to the fact that there are multiple different *values*
 stored in the CVS/Root files? So that cvs needs to consult multiple
 cvs servers, and *that* is what gets slow?
 
 I just checked, and I have three different servers mentioned
 in my CVS/Root files; a cvs update is slow, but when I have
 just one server mentioned in the CVS/Root files, it is not faster.
 
 Also, specifying 'cvs -d mirror' explicitly should get rid of this
 problem then (right?), and speed things up, which it doesn't.
 
 Or is the slowdown possibly due to the sheer *number* of CVS/Root
 files that are consulted? Would that be remedied by cvs -d too?

I have no idea, I just observerd the slowdown multiple times.

-Otto

 
 Actually, cvs(1) says:
 
   -d CVS_root_directory
 Use CVS_root_directory as the root directory pathname of
 the master source repository.  Overrides the setting of the
 CVSROOT environment variable.  This value should be specified
 as an absolute pathname.
 
CVS/Root
  Pathname to the repository ( CVSROOT ) location at the
  time of checkout.  This file is used instead of the CVSROOT
  environment variable if the environment variable is not
  set.  A warning message will be issued when the contents
  of this file and the CVSROOT environment variable differ.
  The file may be over- ridden by the presence of the
  CVS_IGNORE_REMOTE_ROOT environment variable.
 
 It doesn't state explicitly whether 'cvs -d'
 makes the CVS/Root files ignored. Does it?
 
 Also, the wording for 'CVS/Root' doesn't seem to be entirely correct:
 If I untar, say, sys.tar.gz, then my local tree contains no CVS/Root
 files, and if I later do a 'cvs -d mirror up -Pd', the tree gets
 populated with CVS/Root files (mentioning mirror) -- that's not 
 a time of checkout, that's an update. Also, having
 CVS_IGNORE_REMOTE_ROOT doesn't override CVS/Root,
 it just makes it ignored, right?
 
   Those different entries can be created when doing a cvs up -d that
   creates a new dir.
 
 Not only. A 'cvs -d mirror up -d' of a freshly untared sys.tar.gz creates
 CVS/Root files all over the place, *not* just in the new directories
 (that got created due to the 'up -d'). For example it creates
 ./sys/arch/i386/CVS/Root, while the directory /sys/arch/i386/
 definitely was there before (so it didn't get created with 'up -d').
 
  If a cvs -d option is used at the same time, the
   CVS/Root entry for tht dir wil be different than the other's. 
 
 Yes, but it will also change the content of CVS/Root
 in directories that existed before.
 
   The exact cause of the slowdown is not known to me. But when you are
   switch repositories once in a while it's easy to get this case. 
   
   I repair this by find . -name Root | xargs rm and using a explicit cvs
   root.
 
 So, using an explicit cvs root does not ignore the CVS/Root files?
 Because if it does, then the 'find | xargs rm' should make no difference,
 right?
 
  Now this is really another important issue of scattered
  information, is it, and it's not noted in anoncvs.html!
  I've slightly modified your command, i think my version is more
  secure for use on a webpage.
  
 -Otto
  
  --steffen
  
  Index: anoncvs.html
  ===
  RCS file: /cvs/www/anoncvs.html,v
  retrieving revision 1.363
  diff -a -p -u -r1.363 anoncvs.html
  --- anoncvs.html24 Jan 2012 09:57:35 -  1.363
  +++ anoncvs.html3 Feb 2012 13:33:28 -
  @@ -542,6 +542,15 @@ add the em-d anon...@anoncvs.ca.openbs
  # strongcd /usr/src/strong
  # strongcvs -d anon...@anoncvs.ca.openbsd.org:/cvs -q up -Pd/strong
   /pre
  +
  +p And because cvs(1) stores the name of the server which is in use once
  +a directory gets created in the file CVS/Root inside this new directory,
  ^^^
 
 (not only)
 
  +it maybe wise to issue a command sequence like the following:
  +pre
  +   # strongcd /usr/src/strong
  +   # strongfind . -path '*CVS/Root' | xargs rm/strong
  +   # strongcvs -d anon...@anoncvs.ca.openbsd.org:/cvs -q up -Pd/strong
  +/pre
   /ul
   
 
 I think this is blind typing without understanding what is going on
 (not that I know), contrary to the ways of our brilliant FAQ.
 Let's understand it first.
 
 Can someone with internal knowledge of cvs
 shed some light on this please?
 
   Thank you for your time
 
   Jan



Re: Long delay updating xenocara source tree?

2012-02-09 Thread Otto Moerbeek
On Thu, Feb 09, 2012 at 07:52:44AM -0500, Jiri B wrote:

 On Thu, Feb 09, 2012 at 01:16:10PM +0100, Jan Stary wrote:
   +it maybe wise to issue a command sequence like the following:
   +pre
   + # strongcd /usr/src/strong
   + # strongfind . -path '*CVS/Root' | xargs rm/strong
   + # strongcvs -d anon...@anoncvs.ca.openbsd.org:/cvs -q up -Pd/strong
   +/pre
/ul
 
 Never ever! For example if we would talk about ports tree, 'mystuff' could
 get taken from different cvs repo. CVS works like this, you can have multiple
 cvs repos inside the tree, it is by design.
 
 Instead of this silly command above, better to tell people to start learning
 cvs :)
 
 jirib

Still the observation stands.

-Otto



Re: Long delay updating xenocara source tree?

2012-02-09 Thread Steffen Daode Nurpmeso
1.
On the long run cvs(1) will die, and be replaced by Schily SCCS
(oh god, why does v6 not have any branch name info, too??), which
will rule the world.
Without having the need to use GNU autoconf at all, so that
software will compile with make(1) not gmake(1).

Make bootstrapping easy.
Freedom!
Peace!!
Love!!!

Yup.

2.
I like my patch.
And my daily dose of Hypericum; highly recommendet.

Jan Stary wrote [2012-02-09 13:16+0100]:
[.]
 Actually, cvs(1) says:
[.]

This is not true for cvs(1) on MacOS X (Snow Leopard), btw.
And heaven knows if a Linux system does have any manpages at all!
Right??  (TinyCore definitely has none.)

 Yes, but it will also change the content of CVS/Root
 in directories that existed before.

Huh?
But that's right, push the people to it!
The current FAQ does not massage CVS/Root related brain cells!

 I think this is blind typing without understanding

I quote myself (quotes removed from sites though, so it may not be
remembered 100 percent correctly):

I use version control daily, but i don't want to think about
it.

(It was due to our massive internal hg(1)/git(1) war, and my
favorite hg(1) - the user interface is so much better and easier
to understand - 'lost due to .. Python and the .. backend.)

That is to say: i agree with you.
I am psychologically experienced.

 Can someone with internal knowledge of cvs
 shed some light on this please?

   Thank you for your time
 
   Jan

--steffen



Re: Long delay updating xenocara source tree?

2012-02-09 Thread Steffen Daode Nurpmeso
 there aren't all that many repositories the size of ours out
 there.

My upload-traffic problem never occurred with binutils, which is
also an *incredible* large repository, especially if you up -d.
10% there and my monthly traffic would exhaust, and no begging
would help.

 I have no idea, I just observerd the slowdown multiple times.

--steffen



Re: Long delay updating xenocara source tree?

2012-02-09 Thread Jan Stary
Replying to myself,

On Feb 09 13:16:10, Jan Stary wrote:
 Also, specifying 'cvs -d mirror' explicitly should get rid of this
 problem then (right?), and speed things up, which it doesn't.

it does; see below.

 Or is the slowdown possibly due to the sheer *number* of CVS/Root
 files that are consulted? Would that be remedied by cvs -d too?

 Actually, cvs(1) says:
 
   -d CVS_root_directory
 Use CVS_root_directory as the root directory pathname of
 the master source repository.  Overrides the setting of the
 CVSROOT environment variable.  This value should be specified
 as an absolute pathname.
 
CVS/Root
  Pathname to the repository ( CVSROOT ) location at the
  time of checkout.  This file is used instead of the CVSROOT
  environment variable if the environment variable is not
  set.  A warning message will be issued when the contents
  of this file and the CVSROOT environment variable differ.
  The file may be over- ridden by the presence of the
  CVS_IGNORE_REMOTE_ROOT environment variable.
 
 It doesn't state explicitly whether 'cvs -d'
 makes the CVS/Root files ignored. Does it?

I think it does: I tested with ktrace.

Without the explicit -d cvsroot, the kdump of 'ktrace cvs -q up -Pd'
contains a lot of sequences like this (ommiting sigprocmask and mprotect):

27461 cvs  CALL  stat(0x8a0af780,0xcfbf3da8)
27461 cvs  NAMI  CVS
27461 cvs  STRU  struct stat {dev=1028, ino=27355, mode=drwxr-xr-x , 
nlink=2, uid=0, gid=0, rdev=117141, atime=1313508893, 
stime=1328714573.403561510, ctime=1328714573.403561510, size=512, blocks=4, 
blksize=16384, flags=0x0, gen=0x7c8f81d }
27461 cvs  RET   stat 0

27461 cvs  CALL  access(0x8a0aff10,0x4R_OK)
27461 cvs  NAMI  CVS/Root
27461 cvs  RET   access 0

27461 cvs  CALL  open(0x8a0aff10,0O_RDONLY,unused0x1b6)
27461 cvs  NAMI  CVS/Root
27461 cvs  RET   open 3

27461 cvs  CALL  fstat(0x3,0xcfbf3cd0)
27461 cvs  STRU  struct stat {dev=1028, ino=28235, mode=-rw-r--r-- , 
nlink=1, uid=0, gid=0, rdev=113711, atime=1328714573.403561510, 
stime=1328714573.403561510, ctime=1328714573.403561510, size=21, blocks=4, 
blksize=16384, flags=0x0, gen=0xbde86d5b }
27461 cvs  RET   fstat 0

27461 cvs  CALL  read(0x3,0x85d34000,0x4000)
27461 cvs  GIO   fd 3 read 21 bytes
/home/cvsync/openbsd

27461 cvs  RET   read 21/0x15


I haven't looked at the cvs source code, but this is
undoubtedly cvs checking if there is a readable CVS/Root,
opening it, and reading it (indeed, /home/cvsync/openbsd
is my locally cvsync'd cvsroot).

Now, with the explicit cvs -d cvsroot, a kdump of
'ktrace cvs -q -d /home/cvsync/openbsd up -Pd' says

3670 cvs  CALL  access(0x3c00f315,0F_OK)
3670 cvs  NAMI  CVS/Root
3670 cvs  RET   access 0

which is just a check whether the file exists.
It is never opened, read from, or written to.

So it seems that 'cvs -d mirror up -d' creates the CVS/Root file
(and writes mirror into it) if the file doesn't exist; if it does
exist, it is ignored.


   The exact cause of the slowdown is not known to me. But when you are
   switch repositories once in a while it's easy to get this case. 
   
   I repair this by find . -name Root | xargs rm and using a explicit cvs
   root.
 
 So, using an explicit cvs root does not ignore the CVS/Root files?
 Because if it does, then the 'find | xargs rm' should make no difference,
 right?

Given the above, doing

find . -name Root | xargs rm
cvs -d mirror up -Pd

actually means *more* work, as it creates and writes all the CVS/Root files.
If they are left there (skip the find | xargs rm), it is only checked that
they exist and left intact -- which is less work, right?

(Then again, I am just reading a kdump. I don't know what CVS really does.)

Here are the tests I did on /usr/src, in the simplest case
of having a local cvsroot, uniform for all files in the tree:


With the CVS/Root files present, all containing /home/cvsync/openbsd:

time cvs -q up -Pd
4m44.15s real 0m4.64s user 0m8.49s system
4m43.67s real 0m4.25s user 0m8.84s system
4m11.57s real 0m4.36s user 0m8.77s system
4m20.84s real 0m4.55s user 0m8.46s system
4m24.09s real 0m4.43s user 0m8.82s system
4m52.91s real 0m4.32s user 0m8.40s system
4m42.52s real 0m4.53s user 0m8.36s system
4m33.40s real 0m4.64s user 0m8.35s system
4m55.80s real 0m4.43s user 0m8.51s system


time cvs -q -d /home/cvsync/openbsd up -Pd
4m24.48s real 0m4.28s user 0m8.35s system
4m21.63s real 0m4.27s user 0m8.43s system
4m14.73s real 0m4.44s user 0m8.43s system
4m13.98s real 0m4.26s user 0m7.93s system
4m17.07s real 0m4.38s user 0m7.90s system
4m18.60s real 0m4.35s user 0m8.77s system

Re: Long delay updating xenocara source tree?

2012-02-09 Thread Otto Moerbeek
On Thu, Feb 09, 2012 at 06:15:50PM +0100, Jan Stary wrote:

 Replying to myself,

[snip] 

 Things might change if (1) the cvsroot is remote (2) it is not
 the same for all files. I will try that next.
 
   Jan

That last case (remote repo's and different Roots) is the actual case I
have observerd multipe times. 

There might be playing other facts though, but I'm curious what that
test case shows.

BTW, AFAIK, cvs -d up does not write Root files.

-Otto



Re: Long delay updating xenocara source tree?

2012-02-09 Thread Jan Stary
On Feb 09 18:54:45, Otto Moerbeek wrote:
 BTW, AFAIK, cvs -d up does not write Root files.

It does:

cd /usr/src
ftp -o - ftp://MIRROR/pub/OpenBSD/5.0/sys.tar.gz | tar xzpf
cd sys
find . -name Root
cvs -q -d MIRROR up
find . -name Root

Jan



Re: Long delay updating xenocara source tree?

2012-02-09 Thread Jan Stary
On Feb 09 20:10:11, Jan Stary wrote:
 On Feb 09 18:54:45, Otto Moerbeek wrote:
  BTW, AFAIK, cvs -d up does not write Root files.
 
 It does:
 
 cd /usr/src
 ftp -o - ftp://MIRROR/pub/OpenBSD/5.0/sys.tar.gz | tar xzpf
 cd sys
 find . -name Root
 cvs -q -d MIRROR up
 find . -name Root

Ah, you mean 'write' as opposed to 'create'?

What I showed above is that 'cvs -d MIRROR up' _creates_
the CVS/Root in the directories where they did not exist.

But you are right, running 'cvs -d OTHERMIRROR up' does
_not_ rewrite those CVS/Root files that already exist.

Jan



Re: Long delay updating xenocara source tree?

2012-02-09 Thread Otto Moerbeek
On Thu, Feb 09, 2012 at 08:16:25PM +0100, Jan Stary wrote:

 On Feb 09 20:10:11, Jan Stary wrote:
  On Feb 09 18:54:45, Otto Moerbeek wrote:
   BTW, AFAIK, cvs -d up does not write Root files.
  
  It does:
  
  cd /usr/src
  ftp -o - ftp://MIRROR/pub/OpenBSD/5.0/sys.tar.gz | tar xzpf
  cd sys
  find . -name Root
  cvs -q -d MIRROR up
  find . -name Root
 
 Ah, you mean 'write' as opposed to 'create'?
 
 What I showed above is that 'cvs -d MIRROR up' _creates_
 the CVS/Root in the directories where they did not exist.
 
 But you are right, running 'cvs -d OTHERMIRROR up' does
 _not_ rewrite those CVS/Root files that already exist.
 
   Jan

I meant 'create' but a test clearly shows that it does create missing
Root files. Sorry for the confusion, I must be mixing this up with
some other weird cvs behaviour I've seen in the past.

-Otto



Re: Long delay updating xenocara source tree?

2012-02-09 Thread Stuart Henderson
On 2012-02-09, Steffen Daode Nurpmeso sdao...@googlemail.com wrote:
 On the long run cvs(1) will die, and be replaced by Schily SCCS

oh please don't, even as a joke.

anyway they are still releasing new versions of CVS.
(they have to, they add new features with security holes...)

 I like my patch.
 And my daily dose of Hypericum; highly recommendet.

we will need a bulk order if we have to use SCCS ;)



Re: Long delay updating xenocara source tree?

2012-02-09 Thread Nick Holland
On 02/09/12 12:54, Otto Moerbeek wrote:
 On Thu, Feb 09, 2012 at 06:15:50PM +0100, Jan Stary wrote:
 
 Replying to myself,
 
 [snip] 
 
 Things might change if (1) the cvsroot is remote (2) it is not
 the same for all files. I will try that next.
 
  Jan
 
 That last case (remote repo's and different Roots) is the actual case I
 have observerd multipe times. 
 
 There might be playing other facts though, but I'm curious what that
 test case shows.
...

cvs does some weird s**t from time to time.  I've had the chance to
watch it on a public server..it only gets weirder when you watch it there.

SOMETIMES -- and I do not know why -- it builds a tree in the cvs
server's tmp dir (which is probably something like /repo/anoncvs/tmp in
a good mirror), which is as almost as big as the repo it is serving --
I've seen 600+M in size for a single user.  That's a lot of disk
thrashing, 'specially if it is on the same disk with a few other people
doing checkouts or updates, and maybe serving install, too.  Yeah, I was
able to throw massive amounts of disk I/O and a MFS tmp dir at it, but
not all mirrors have that kind of throughput under those circumstances.
(keep in mind, on i386, MFS can be no bigger than a hair under 1GB, and
600MB is a non-trivial chunk of that.  And if a CVS process disconnects
prematurely, the tmp file never gets purged by cvs).

I do not know why it does those 600M temp dirs...sometimes (usually?),
it does just a few MB.  Combine a few people having a nasty update (with
the 600MB tmp dirs), slow disk I/O on the server and a lot of disk
thrashing...well, uh...no, I STILL can't explain a nine (plus!) hour
update, but I do think a large chunk of the problem may be on the
server's side.  and possibly, if you have multiple servers in different
parts of the tree, maybe multiple servers.


But no, I'm NOT going to advise people to blow away all their CVS/Root
files routinely, for the most part, I find them more useful than harm,
but there are a FEW times when it would be appropriate to do so, so a
FAQ entry will be coming on this.  As trouble resolving thing...great.
I've thought about CHANGING all my Root files (as I'm going to have to
change my mirror soon...and I'm hoping, soon again after that), simply
deleting them and having them recreate is quite nifty, wish I had
thought of that. :)

Nick.



Re: Long delay updating xenocara source tree?

2012-02-04 Thread Kenneth R Westerback
On Fri, Feb 03, 2012 at 12:47:02PM +0100, Otto Moerbeek wrote:
 On Thu, Feb 02, 2012 at 03:15:29PM +0100, Steffen Daode Nurpmeso wrote:
 
  Henning Brauer wrote:
   there aren't all that many repositories the size of ours out there.
  
  That's true.
  But no Henning, i don't believe it's that;
  you know, it's just that i don't have anything to say, because
  i have no knowledge about the internals of cvs(1).
  
  I always thought of this as some kind of misbehaviour in between
  OpenCVS and GNU cvs, because i would think of cvs(1) as something
  like this:
  
  cvs up .
  |
  read CVS/Entries
  |
  for those files with diff. timestamps, checksum file
  |
  send list [+ checksums] to server
  |
  server compare revision/timestamp/[checksum]
  - client unmodified: send diff (expected final checksum?)
  - client modified: send full file (if size  treshold),
otherwise do blockwise checksumming etc. (i.e. rsync-like)
[I don't really believe cvs(1) does the latter though.]
  |
  integrate diffs / replace locally modified files
  
  Wether cvs(1) does do some rsync-like block-checksumming for
  locally modified files or not, uploading 10% of the repositories
  size or more before any data is sent from the server just can't be
  correct anyhow.  Even more for my usage case because there were no
  locally modified files at all.
  
  And also the problem goes away if you do specify files directly,
  as with a file glob, so it makes a difference wether you say
  $ cvs -fz9 up -PAC .
  or
  $ cvs -fz9 up -PAC *.*
  I don't remember wether i've used -d or not.
  
  So for me this turned out as either look into the code,
  instrument some functions and try to fix it or turn over to
  cvsync.
  And GNU cvs is hard to look at, with a lot of comments which refer
  to some (numeric or so) error reports.  But it would surely be
  interesting to know what is going wrong.
  
  --steffen
 
 I like to say that long delays I have seen when using cvs had to do
 with multiple different values of CVS/Root files in my local tree.
 
 Those different entries can be created when doing a cvs up -d that
 creates a new dir. If a cvs -d option is used at the same time, the
 CVS/Root entry for tht dir wil be different than the other's. 
 
 The exact cause of the slowdown is not known to me. But when you are
 switch repositories once in a while it's easy to get this case. 
 
 I repair this by find . -name Root | xargs rm and using a explicit cvs
 root.
 
   -Otto
 

My experience is identical to Otto's. Including his fix. :-)

 Ken



Re: Long delay updating xenocara source tree?

2012-02-03 Thread Otto Moerbeek
On Thu, Feb 02, 2012 at 03:15:29PM +0100, Steffen Daode Nurpmeso wrote:

 Henning Brauer wrote:
  there aren't all that many repositories the size of ours out there.
 
 That's true.
 But no Henning, i don't believe it's that;
 you know, it's just that i don't have anything to say, because
 i have no knowledge about the internals of cvs(1).
 
 I always thought of this as some kind of misbehaviour in between
 OpenCVS and GNU cvs, because i would think of cvs(1) as something
 like this:
 
 cvs up .
 |
 read CVS/Entries
 |
 for those files with diff. timestamps, checksum file
 |
 send list [+ checksums] to server
 |
 server compare revision/timestamp/[checksum]
 - client unmodified: send diff (expected final checksum?)
 - client modified: send full file (if size  treshold),
   otherwise do blockwise checksumming etc. (i.e. rsync-like)
   [I don't really believe cvs(1) does the latter though.]
 |
 integrate diffs / replace locally modified files
 
 Wether cvs(1) does do some rsync-like block-checksumming for
 locally modified files or not, uploading 10% of the repositories
 size or more before any data is sent from the server just can't be
 correct anyhow.  Even more for my usage case because there were no
 locally modified files at all.
 
 And also the problem goes away if you do specify files directly,
 as with a file glob, so it makes a difference wether you say
 $ cvs -fz9 up -PAC .
 or
 $ cvs -fz9 up -PAC *.*
 I don't remember wether i've used -d or not.
 
 So for me this turned out as either look into the code,
 instrument some functions and try to fix it or turn over to
 cvsync.
 And GNU cvs is hard to look at, with a lot of comments which refer
 to some (numeric or so) error reports.  But it would surely be
 interesting to know what is going wrong.
 
 --steffen

I like to say that long delays I have seen when using cvs had to do
with multiple different values of CVS/Root files in my local tree.

Those different entries can be created when doing a cvs up -d that
creates a new dir. If a cvs -d option is used at the same time, the
CVS/Root entry for tht dir wil be different than the other's. 

The exact cause of the slowdown is not known to me. But when you are
switch repositories once in a while it's easy to get this case. 

I repair this by find . -name Root | xargs rm and using a explicit cvs
root.

-Otto



Re: Long delay updating xenocara source tree?

2012-02-03 Thread Steffen Daode Nurpmeso
Otto Moerbeek wrote [2012-02-03 12:47+0100]:
 I like to say that long delays I have seen when using cvs had to do
 with multiple different values of CVS/Root files in my local tree.
 
 Those different entries can be created when doing a cvs up -d that
 creates a new dir. If a cvs -d option is used at the same time, the
 CVS/Root entry for tht dir wil be different than the other's. 
 
 The exact cause of the slowdown is not known to me. But when you are
 switch repositories once in a while it's easy to get this case. 
 
 I repair this by find . -name Root | xargs rm and using a explicit cvs
 root.

Now this is really another important issue of scattered
information, is it, and it's not noted in anoncvs.html!
I've slightly modified your command, i think my version is more
secure for use on a webpage.

   -Otto

--steffen

Index: anoncvs.html
===
RCS file: /cvs/www/anoncvs.html,v
retrieving revision 1.363
diff -a -p -u -r1.363 anoncvs.html
--- anoncvs.html24 Jan 2012 09:57:35 -  1.363
+++ anoncvs.html3 Feb 2012 13:33:28 -
@@ -542,6 +542,15 @@ add the em-d anon...@anoncvs.ca.openbs
# strongcd /usr/src/strong
# strongcvs -d anon...@anoncvs.ca.openbsd.org:/cvs -q up -Pd/strong
 /pre
+
+p And because cvs(1) stores the name of the server which is in use once
+a directory gets created in the file CVS/Root inside this new directory,
+it maybe wise to issue a command sequence like the following:
+pre
+   # strongcd /usr/src/strong
+   # strongfind . -path '*CVS/Root' | xargs rm/strong
+   # strongcvs -d anon...@anoncvs.ca.openbsd.org:/cvs -q up -Pd/strong
+/pre
 /ul
 
 p



Re: Long delay updating xenocara source tree?

2012-02-03 Thread Dave Anderson
On Fri, 3 Feb 2012, Otto Moerbeek wrote:

On Thu, Feb 02, 2012 at 03:15:29PM +0100, Steffen Daode Nurpmeso wrote:

 Henning Brauer wrote:
  there aren't all that many repositories the size of ours out there.

 That's true.
 But no Henning, i don't believe it's that;
 you know, it's just that i don't have anything to say, because
 i have no knowledge about the internals of cvs(1).

 I always thought of this as some kind of misbehaviour in between
 OpenCVS and GNU cvs, because i would think of cvs(1) as something
 like this:

 cvs up .
 |
 read CVS/Entries
 |
 for those files with diff. timestamps, checksum file
 |
 send list [+ checksums] to server
 |
 server compare revision/timestamp/[checksum]
 - client unmodified: send diff (expected final checksum?)
 - client modified: send full file (if size  treshold),
   otherwise do blockwise checksumming etc. (i.e. rsync-like)
   [I don't really believe cvs(1) does the latter though.]
 |
 integrate diffs / replace locally modified files

 Wether cvs(1) does do some rsync-like block-checksumming for
 locally modified files or not, uploading 10% of the repositories
 size or more before any data is sent from the server just can't be
 correct anyhow.  Even more for my usage case because there were no
 locally modified files at all.

 And also the problem goes away if you do specify files directly,
 as with a file glob, so it makes a difference wether you say
 $ cvs -fz9 up -PAC .
 or
 $ cvs -fz9 up -PAC *.*
 I don't remember wether i've used -d or not.

 So for me this turned out as either look into the code,
 instrument some functions and try to fix it or turn over to
 cvsync.
 And GNU cvs is hard to look at, with a lot of comments which refer
 to some (numeric or so) error reports.  But it would surely be
 interesting to know what is going wrong.

 --steffen

I like to say that long delays I have seen when using cvs had to do
with multiple different values of CVS/Root files in my local tree.

Those different entries can be created when doing a cvs up -d that
creates a new dir. If a cvs -d option is used at the same time, the
CVS/Root entry for tht dir wil be different than the other's.

The exact cause of the slowdown is not known to me. But when you are
switch repositories once in a while it's easy to get this case.

I repair this by find . -name Root | xargs rm and using a explicit cvs
root.

   -Otto

Hmmm.  That doesn't seem to [fully] explain the slowdowns I've seen,
since I always use an explicit cvs root (following the FAQ) though I
certainly have switched repositories from time to time.

Dave

-- 
Dave Anderson
d...@daveanderson.com



Re: Long delay updating xenocara source tree?

2012-02-02 Thread Stuart Henderson
On 2012-02-02, Brett brett.ma...@gmx.com wrote:
 Yes, I also finally got around to trying cvsync because of this thread and 
 its a lot quicker. 

 And even more speedy when I added a scanfile /root/cvsync-scanfile line in 
 the collection part of the config file.

You're running it as root?

It makes a lot more sense to use a separate user.



Re: Long delay updating xenocara source tree?

2012-02-02 Thread Brett
On Thu, 2 Feb 2012 11:40:22 + (UTC)
Stuart Henderson s...@spacehopper.org wrote:

 On 2012-02-02, Brett brett.ma...@gmx.com wrote:
  Yes, I also finally got around to trying cvsync because of this thread and 
  its a lot quicker. 
 
  And even more speedy when I added a scanfile /root/cvsync-scanfile line 
  in the collection part of the config file.
 
 You're running it as root?
 
 It makes a lot more sense to use a separate user.
 

I have been updating as root (the few times I have used it so far) but thanks 
for the reminder, will chown and switch to normal user next time.



Re: Long delay updating xenocara source tree?

2012-02-02 Thread Stuart Henderson
On 2012/02/02 23:00, Brett wrote:
 On Thu, 2 Feb 2012 11:40:22 + (UTC)
 Stuart Henderson s...@spacehopper.org wrote:
 
  On 2012-02-02, Brett brett.ma...@gmx.com wrote:
   Yes, I also finally got around to trying cvsync because of this thread 
   and its a lot quicker. 
  
   And even more speedy when I added a scanfile /root/cvsync-scanfile line 
   in the collection part of the config file.
  
  You're running it as root?
  
  It makes a lot more sense to use a separate user.
  
 
 I have been updating as root (the few times I have used it so far) but thanks 
 for the reminder, will chown and switch to normal user next time.

I use a dedicated user for this.



Re: Long delay updating xenocara source tree?

2012-02-02 Thread Brett
And even more speedy when I added a scanfile /root/cvsync-scanfile 
line in the collection part of the config file.
   
   You're running it as root?
   
   It makes a lot more sense to use a separate user.
   
  
  I have been updating as root (the few times I have used it so far) but 
  thanks for the reminder, will chown and switch to normal user next time.
 
 I use a dedicated user for this.
 

Sounds like a good idea. 



Re: Long delay updating xenocara source tree?

2012-02-02 Thread Steffen Daode Nurpmeso
Henning Brauer wrote:
 there aren't all that many repositories the size of ours out there.

That's true.
But no Henning, i don't believe it's that;
you know, it's just that i don't have anything to say, because
i have no knowledge about the internals of cvs(1).

I always thought of this as some kind of misbehaviour in between
OpenCVS and GNU cvs, because i would think of cvs(1) as something
like this:

cvs up .
|
read CVS/Entries
|
for those files with diff. timestamps, checksum file
|
send list [+ checksums] to server
|
server compare revision/timestamp/[checksum]
- client unmodified: send diff (expected final checksum?)
- client modified: send full file (if size  treshold),
  otherwise do blockwise checksumming etc. (i.e. rsync-like)
  [I don't really believe cvs(1) does the latter though.]
|
integrate diffs / replace locally modified files

Wether cvs(1) does do some rsync-like block-checksumming for
locally modified files or not, uploading 10% of the repositories
size or more before any data is sent from the server just can't be
correct anyhow.  Even more for my usage case because there were no
locally modified files at all.

And also the problem goes away if you do specify files directly,
as with a file glob, so it makes a difference wether you say
$ cvs -fz9 up -PAC .
or
$ cvs -fz9 up -PAC *.*
I don't remember wether i've used -d or not.

So for me this turned out as either look into the code,
instrument some functions and try to fix it or turn over to
cvsync.
And GNU cvs is hard to look at, with a lot of comments which refer
to some (numeric or so) error reports.  But it would surely be
interesting to know what is going wrong.

--steffen



Re: Long delay updating xenocara source tree?

2012-02-01 Thread Steffen Daode Nurpmeso
Hi Amit,

Amit Kulkarni wrote [2012-02-01 00:57+0100]:
 this motivated me to use cvsync from anoncvs and use a
 CVSROOT=/home/amit/MYLOCALREPO to update from cvs. Much much faster
 and while initial checkout from cvsync takes 5-10 hrs

Yes, that's a real pity.
I think it would be great if tarballs would be offered for
those, too.  I.e. this is *all* of OpenBSD (src, xenocara and
www, the latter however refuses papers/, slides/ and songs/
because i also have a checkout of the Steelix translation
project), as has been burned onto my last full-backup DVD:

$ ls -latr
-rw-r--r--  1 steffen  wheel  516407350 26 Jan 15:41 cvsync_openbsd.tbz

I think plain gzip wouldn't be that much larger.
And hey, it's worth noting that this is smaller than
.git/objects/pack of src.git alone!

 the subsequent updates are lightning quick.

Yes.
And how easy it now is to do 'cvs up -PAC' to overwrite my messy
patches.

 --amit

Ciao,

--steffen



Re: Long delay updating xenocara source tree?

2012-02-01 Thread Brett
  Dave Anderson wrote [2012-01-28 15:13+0100]:
  [.]
  I haven't yet had a chance to look into how cvs works beyond
  reading the man page, faq, etc.
 

 
  If you're doing your updates in such a regular manner, i think
  your best bet is cvsync(1), even if that means additional local
  storage - but it is *far* more efficient in both, time and
  traffic.  (Not to talk about the possibility to do 'cvs log' and
  the like locally, without internet connection; if that's an issue.)
  Pears similar ciao,
 
  --steffen
 

 
 thanks... this motivated me to use cvsync from anoncvs and use a
 CVSROOT=/home/amit/MYLOCALREPO to update from cvs. Much much faster
 and while initial checkout from cvsync takes 5-10 hrs, the subsequent
 updates are lightning quick.
 
 --amit
 

Yes, I also finally got around to trying cvsync because of this thread and its 
a lot quicker. 

And even more speedy when I added a scanfile /root/cvsync-scanfile line in 
the collection part of the config file.



Re: Long delay updating xenocara source tree?

2012-01-31 Thread Janne Johansson
2012/1/31 Dave Anderson d...@daveanderson.com:

 I do have a slowish ADSL link (384Kbps/1536Kbps) which would limit me to
 very roughly 1MB/min outbound, so I took advice to use '-z 9' to
 compress data and that reduced the total time for a xenocara source tree
 update from about 11 hours to about 2.5 hours.  (Though I discovered
 that not all servers support compression.)

if they do anoncvs over ssh, you can ask ssh to compress the data
instead of having cvs do it, for those servers.

--
 To our sweethearts and wives.  May they never meet. -- 19th century toast



Re: Long delay updating xenocara source tree?

2012-01-31 Thread Amit Kulkarni
On Sat, Jan 28, 2012 at 8:43 AM, Steffen Daode Nurpmeso
sdao...@googlemail.com wrote:
 Hey,

 Dave Anderson wrote [2012-01-28 15:13+0100]:
 [.]
 I haven't yet had a chance to look into how cvs works beyond
 reading the man page, faq, etc.

 Also true for me.

  I've run into this problem perhaps a dozen times over the past several
  months
 [.]

 I've noted a lot of upload network traffic when doing 'cvs up'
 on OpenBSD repos; i.e., before anything else happened about
 ~70 MB (www) and ~150 MB (src) *upstream* traffic were produced,
 and it took more than an hour before the download of data began
 (src).  I never had similar problems with anoncvs.mindrot.org, nor
 cvs.savannah.gnu.org and *.cvs.sourceforge.net etc.

 If you're doing your updates in such a regular manner, i think
 your best bet is cvsync(1), even if that means additional local
 storage - but it is *far* more efficient in both, time and
 traffic.  (Not to talk about the possibility to do 'cvs log' and
 the like locally, without internet connection; if that's an issue.)
 Pears similar ciao,

 --steffen


Steffen,

i also used to suffer from this unexplained stuff, and yes i used
comstyle/spacehopper

thanks... this motivated me to use cvsync from anoncvs and use a
CVSROOT=/home/amit/MYLOCALREPO to update from cvs. Much much faster
and while initial checkout from cvsync takes 5-10 hrs, the subsequent
updates are lightning quick.

--amit



Re: Long delay updating xenocara source tree?

2012-01-30 Thread Dave Anderson
On Sat, 28 Jan 2012, Nick Holland wrote:

On 01/28/12 09:12, Dave Anderson wrote:
 Thanks for the info.  I've been using -Pd because
 http://www.openbsd.org/anoncvs.html says to use them; I haven't yet
 had a chance to look into how cvs works beyond reading the man page,
 faq, etc.

and please continue to use them.
-Pd is the RIGHT way.

I plan to.  Dropping them felt kind of iffy; thanks for the confirmation
that it isn't the way to go.

Apparently, Philip gets away with it, but he's a developer and he knows
this stuff pretty well, we don't expect ordinary users to clean up the
mess it can make.  I'll defer to his expertise on coding and probably
CVS, but there are many things in many parts of the tree where a lack of
a -Pd will hurt you in ways other than slow updates.  There are
thousands of ways to use cvs incorrectly, -Pd is the correct way to do
updates (or maybe -PAd under some circumstances).


And none of this has anything to do with your real problem.  I run far
slower hardware than most people, and xenocara updates don't take nine
hours (and if I understand you, that was nine hours then you gave up and
killed it).  This has NOTHING TO DO WITH COMMAND LINE OPTIONS.  I wrote
the FAQ you used, I use that FAQ, and I do it on hardware like mac68k
and sparc, and it works, it does not take nine hours to update xenocara
(it just feels like it...)

No, it was about 9 hours from issuing the cvs update command until there
was any visible action; the update ran to completion in a total of about
11 hours.  I've killed some other update attempts which ran even longer
without any visible action.

If you could...next time you see this, use a
  CVSROOT=anon...@obsd.cec.mtu.edu:/cvs
and see if things run better.  NOTE: DO NOT GET USED TO USING THIS
MIRROR, IT IS BEING SHUT DOWN VERY SOON.  But, being it's been being
advertised as being shut down, it's pretty lightly loaded, and it
handles the CVS temp directory as an mfs, which really really helps
(this is on the server end. Nothing you can do about it on your side).
My hunch, as a soon-to-be former mirror operator is that you are having
a problem with your mirror of choice, not a problem on your end, and it
may be a problem with multiple mirrors.

I've tried 3 or 4 different servers, and have had this problem with all
of them (at least some of the time).

I just checked out xenocara from that mirror, and then did an update on
my amd64 system, the update took less than one minute.  Your results
will vary, but not to nine hours, unless you are using dialup. :)

I do have a slowish ADSL link (384Kbps/1536Kbps) which would limit me to
very roughly 1MB/min outbound, so I took advice to use '-z 9' to
compress data and that reduced the total time for a xenocara source tree
update from about 11 hours to about 2.5 hours.  (Though I discovered
that not all servers support compression.)

Then I did a test update of xenocara against your server (still using -z
9), and the entire process took barely 1 minute.  I then retried that
upgrade against the server I've been using (anoncvs.comstyle.com), and
the total time was just under 3 minutes.  As a final (for the moment)
test I did (against my usual server and with -z 9) an update of my
entire source tree and the total times were src: 7:37, xenocara: 3:55,
ports: 41:58, and www: 2:39 -- for a total of about 55 minutes.

I've no idea why I'm suddenly getting so much faster responses.

Does cvs update send a potentially large but extremely variable amount
of data from my system to the server?  If so, that (plus my slowish
uplink) might explain some of these timings.  But the cause of these
massive variations is not at all obvious from where I sit.

Thanks for any further info.

Dave

-- 
Dave Anderson
d...@daveanderson.com



Re: Long delay updating xenocara source tree?

2012-01-29 Thread Henning Brauer
* Steffen Daode Nurpmeso sdao...@googlemail.com [2012-01-28 15:44]:
 I've noted a lot of upload network traffic when doing 'cvs up'
 on OpenBSD repos; i.e., before anything else happened about
 ~70 MB (www) and ~150 MB (src) *upstream* traffic were produced,
 and it took more than an hour before the download of data began
 (src).  I never had similar problems with anoncvs.mindrot.org, nor
 cvs.savannah.gnu.org and *.cvs.sourceforge.net etc.

there aren't all that many repositories the size of ours out there.

 If you're doing your updates in such a regular manner, i think
 your best bet is cvsync(1), even if that means additional local
 storage - but it is *far* more efficient in both, time and
 traffic.  (Not to talk about the possibility to do 'cvs log' and
 the like locally, without internet connection; if that's an issue.)
 Pears similar ciao,

that's what many of us do - full repository, synced somehow (i
personally rsync from another machine which in turn speaks cvsync to
bob) locally. Especially convenient when you sit in an airplane or the
like and want to diff...

-- 
Henning Brauer, h...@bsws.de, henn...@openbsd.org
BS Web Services, http://bsws.de, Full-Service ISP
Secure Hosting, Mail and DNS Services. Dedicated Servers, Root to Fully Managed
Henning Brauer Consulting, http://henningbrauer.com/



Re: Long delay updating xenocara source tree?

2012-01-28 Thread Dave Anderson
On Fri, 27 Jan 2012, Philip Guenther wrote:

On Fri, Jan 27, 2012 at 12:10 PM, Dave Anderson d...@daveanderson.com
wrote:
 I've run into this problem perhaps a dozen times over the past several
 months while running amd64-current, most recently at 15:53 2012/1/26 EST
 while running a system built from source updated at about 14:30
 2012/1/21 EST: when trying to update the xenocara source tree there is a
 very long (perhaps infinite) delay between issuing the 'cvs ...' command
 and the start of any visible activity.  In this most recent case the
 delay was about 9 hours.  Updating the src and ports source trees at
 about the same time and using the same CVSROOT has always worked OK;
 there's some delay but not a really long one.  And sometimes the
 xenocara update has worked without any problem.  When it doesn't, 'rm
 -rf /usr/xenocara' followed by reloading from the 5.0-release CD has
 always allowed a subsequent cvs update to work.

 The command I'm using is
  # cd /usr/xenocara  cvs -d$CVSROOT -q up -Pd
 (except for the working directory, exactly the same as the command for
 updating the src or ports tree).

I bet it'll be faster if you don't use the -P or -d options.

The -d option to cvs up requires the cvs server to walk directories
that are present on the server but not present on the client.  That
includes directories which are now empty because all their files have
been removed (ala cvs rm)...of which there are a bunch in the
xenocara tree.

The -P option requires extra work too, though it's not as bad as the
-d option, IIRC.

Personally, I use the rule of thumb of only using -d and -P when I
have reason to believe directories have been added or removed, either
from seeing the commit email or from a build failing because a
directory is missing...

Thanks for the info.  I've been using -Pd because
http://www.openbsd.org/anoncvs.html says to use them; I haven't yet
had a chance to look into how cvs works beyond reading the man page,
faq, etc.

Dave

-- 
Dave Anderson
d...@daveanderson.com



Re: Long delay updating xenocara source tree?

2012-01-28 Thread Steffen Daode Nurpmeso
Hey,

Dave Anderson wrote [2012-01-28 15:13+0100]:
[.]
 I haven't yet had a chance to look into how cvs works beyond
 reading the man page, faq, etc.

Also true for me.

  I've run into this problem perhaps a dozen times over the past several
  months
[.]

I've noted a lot of upload network traffic when doing 'cvs up'
on OpenBSD repos; i.e., before anything else happened about
~70 MB (www) and ~150 MB (src) *upstream* traffic were produced,
and it took more than an hour before the download of data began
(src).  I never had similar problems with anoncvs.mindrot.org, nor
cvs.savannah.gnu.org and *.cvs.sourceforge.net etc.

If you're doing your updates in such a regular manner, i think
your best bet is cvsync(1), even if that means additional local
storage - but it is *far* more efficient in both, time and
traffic.  (Not to talk about the possibility to do 'cvs log' and
the like locally, without internet connection; if that's an issue.)
Pears similar ciao,

--steffen



Re: Long delay updating xenocara source tree?

2012-01-28 Thread Stuart Henderson
On 2012-01-28, Philip Guenther guent...@gmail.com wrote:
 I've run into this problem perhaps a dozen times over the past several
 months while running amd64-current, most recently at 15:53 2012/1/26 EST
 while running a system built from source updated at about 14:30
 2012/1/21 EST: when trying to update the xenocara source tree there is a
 very long (perhaps infinite) delay between issuing the 'cvs ...' command
 and the start of any visible activity.  In this most recent case the
 delay was about 9 hours.  Updating the src and ports source trees at
 about the same time and using the same CVSROOT has always worked OK;
 there's some delay but not a really long one.  And sometimes the
 xenocara update has worked without any problem.  When it doesn't, 'rm
 -rf /usr/xenocara' followed by reloading from the 5.0-release CD has
 always allowed a subsequent cvs update to work.

 The command I'm using is
  # cd /usr/xenocara  cvs -d$CVSROOT -q up -Pd
 (except for the working directory, exactly the same as the command for
 updating the src or ports tree).

 I bet it'll be faster if you don't use the -P or -d options.

If people try this, please don't report any build problems unless
you've re-run with both of these options.

Also note it's not going to work well for ports..



Re: Long delay updating xenocara source tree?

2012-01-28 Thread Nick Holland
On 01/28/12 09:12, Dave Anderson wrote:
 Thanks for the info.  I've been using -Pd because
 http://www.openbsd.org/anoncvs.html says to use them; I haven't yet
 had a chance to look into how cvs works beyond reading the man page,
 faq, etc.

and please continue to use them.
-Pd is the RIGHT way.

Apparently, Philip gets away with it, but he's a developer and he knows
this stuff pretty well, we don't expect ordinary users to clean up the
mess it can make.  I'll defer to his expertise on coding and probably
CVS, but there are many things in many parts of the tree where a lack of
a -Pd will hurt you in ways other than slow updates.  There are
thousands of ways to use cvs incorrectly, -Pd is the correct way to do
updates (or maybe -PAd under some circumstances).


And none of this has anything to do with your real problem.  I run far
slower hardware than most people, and xenocara updates don't take nine
hours (and if I understand you, that was nine hours then you gave up and
killed it).  This has NOTHING TO DO WITH COMMAND LINE OPTIONS.  I wrote
the FAQ you used, I use that FAQ, and I do it on hardware like mac68k
and sparc, and it works, it does not take nine hours to update xenocara
(it just feels like it...)

If you could...next time you see this, use a
  CVSROOT=anon...@obsd.cec.mtu.edu:/cvs
and see if things run better.  NOTE: DO NOT GET USED TO USING THIS
MIRROR, IT IS BEING SHUT DOWN VERY SOON.  But, being it's been being
advertised as being shut down, it's pretty lightly loaded, and it
handles the CVS temp directory as an mfs, which really really helps
(this is on the server end. Nothing you can do about it on your side).
My hunch, as a soon-to-be former mirror operator is that you are having
a problem with your mirror of choice, not a problem on your end, and it
may be a problem with multiple mirrors.

I just checked out xenocara from that mirror, and then did an update on
my amd64 system, the update took less than one minute.  Your results
will vary, but not to nine hours, unless you are using dialup. :)

Nick.



Long delay updating xenocara source tree?

2012-01-27 Thread Dave Anderson
I've run into this problem perhaps a dozen times over the past several
months while running amd64-current, most recently at 15:53 2012/1/26 EST
while running a system built from source updated at about 14:30
2012/1/21 EST: when trying to update the xenocara source tree there is a
very long (perhaps infinite) delay between issuing the 'cvs ...' command
and the start of any visible activity.  In this most recent case the
delay was about 9 hours.  Updating the src and ports source trees at
about the same time and using the same CVSROOT has always worked OK;
there's some delay but not a really long one.  And sometimes the
xenocara update has worked without any problem.  When it doesn't, 'rm
-rf /usr/xenocara' followed by reloading from the 5.0-release CD has
always allowed a subsequent cvs update to work.

The command I'm using is
  # cd /usr/xenocara  cvs -d$CVSROOT -q up -Pd
(except for the working directory, exactly the same as the command for
updating the src or ports tree).

This has happened with several different values for CVSROOT, currently
  # echo $CVSROOT
  anon...@anoncvs1.usa.openbsd.org:/cvs

I am very confused by this.  Any clues would be greatly appreciated.

Dave

-- 
Dave Anderson
d...@daveanderson.com



Re: Long delay updating xenocara source tree?

2012-01-27 Thread Tomas Bodzar
On Fri, Jan 27, 2012 at 9:10 PM, Dave Anderson d...@daveanderson.com wrote:
 I've run into this problem perhaps a dozen times over the past several
 months while running amd64-current, most recently at 15:53 2012/1/26 EST
 while running a system built from source updated at about 14:30
 2012/1/21 EST: when trying to update the xenocara source tree there is a
 very long (perhaps infinite) delay between issuing the 'cvs ...' command
 and the start of any visible activity. B In this most recent case the
 delay was about 9 hours. B Updating the src and ports source trees at
 about the same time and using the same CVSROOT has always worked OK;
 there's some delay but not a really long one. B And sometimes the
 xenocara update has worked without any problem. B When it doesn't, 'rm
 -rf /usr/xenocara' followed by reloading from the 5.0-release CD has
 always allowed a subsequent cvs update to work.

 The command I'm using is
 B # cd /usr/xenocara  cvs -d$CVSROOT -q up -Pd
 (except for the working directory, exactly the same as the command for
 updating the src or ports tree).

How about:

# cd /usr ; cvs -d$CVSROOT -q up -Pd xenocara


 This has happened with several different values for CVSROOT, currently
 B # echo $CVSROOT
 B anon...@anoncvs1.usa.openbsd.org:/cvs

 I am very confused by this. B Any clues would be greatly appreciated.

 B  B  B  B Dave

 --
 Dave Anderson
 d...@daveanderson.com



Re: Long delay updating xenocara source tree?

2012-01-27 Thread Philip Guenther
On Fri, Jan 27, 2012 at 12:10 PM, Dave Anderson d...@daveanderson.com
wrote:
 I've run into this problem perhaps a dozen times over the past several
 months while running amd64-current, most recently at 15:53 2012/1/26 EST
 while running a system built from source updated at about 14:30
 2012/1/21 EST: when trying to update the xenocara source tree there is a
 very long (perhaps infinite) delay between issuing the 'cvs ...' command
 and the start of any visible activity.  In this most recent case the
 delay was about 9 hours.  Updating the src and ports source trees at
 about the same time and using the same CVSROOT has always worked OK;
 there's some delay but not a really long one.  And sometimes the
 xenocara update has worked without any problem.  When it doesn't, 'rm
 -rf /usr/xenocara' followed by reloading from the 5.0-release CD has
 always allowed a subsequent cvs update to work.

 The command I'm using is
  # cd /usr/xenocara  cvs -d$CVSROOT -q up -Pd
 (except for the working directory, exactly the same as the command for
 updating the src or ports tree).

I bet it'll be faster if you don't use the -P or -d options.

The -d option to cvs up requires the cvs server to walk directories
that are present on the server but not present on the client.  That
includes directories which are now empty because all their files have
been removed (ala cvs rm)...of which there are a bunch in the
xenocara tree.

The -P option requires extra work too, though it's not as bad as the
-d option, IIRC.

Personally, I use the rule of thumb of only using -d and -P when I
have reason to believe directories have been added or removed, either
from seeing the commit email or from a build failing because a
directory is missing...


Philip Guenther



Re: xenocara source

2008-03-01 Thread Marc Espie
On Fri, Feb 29, 2008 at 05:19:00PM -0800, Marco S Hyman wrote:
   For the sake of new folks it may be wise to put a .cvsignore in 
   our /usr/src tree to prevent unintended cosequences of using the (also 
   suggested) prune switch on cvs (-P).
 
 -P will only remove EMPTY directories that cvs knows about.   Putting
 xenocara (or in my case zenocara and ports) in /usr/src is pretty much
 a no-op when it comes to cvs.   A cd /usr/src; cvs up -Pd displays
 ? xenocara.  I can live with that.
 
Still, if we keep recommending /usr/src/xenocara, the ignore would get
rid of the 
? xenocara 
noise.

I routinely read through the output of cvs update to figure out which files
I've got which do not belong. Any extra line will make me go `huh ?' and
think about it.



Re: xenocara source

2008-03-01 Thread Antoine Jacoutot

On Sat, 1 Mar 2008, Marc Espie wrote:

Still, if we keep recommending /usr/src/xenocara, the ignore would get
rid of the
? xenocara
noise.


Yeah, I agree.
I already proposed this several times, but obviously that wasn't an 
interested for anyone before.


--
Antoine



Re: xenocara source

2008-03-01 Thread Stuart Henderson
On 2008-03-01, Marc Espie [EMAIL PROTECTED] wrote:
 Still, if we keep recommending /usr/src/xenocara, the ignore would get
 rid of the 
 ? xenocara 
 noise.

I don't see any ? xenocara noise here, just the normal output from
cvs update as it recurses into the xenocara tree.. I thought it was useful
to be able to update all the source in one command, but I'm certain there
will be other opinions :-)



Re: xenocara source

2008-03-01 Thread hyjial
You can simply add a newline like
/xenocara/// # I don't really remember the syntax
in the list of directories in a file under
/usr/src/CVS thus making all of your sources updated
at once without any error.


  
_ 
Ne gardez plus qu'une seule adresse mail ! Copiez vos mails vers Yahoo! Mail 
http://mail.yahoo.fr



Re: xenocara source

2008-03-01 Thread Stuart Henderson
On 2008-03-01, hyjial [EMAIL PROTECTED] wrote:
 You can simply add a newline like
 /xenocara/// # I don't really remember the syntax
 in the list of directories in a file under
 /usr/src/CVS thus making all of your sources updated
 at once without any error.

Ah, perhaps I did that at some point then...



Re: xenocara source

2008-03-01 Thread Pierre Riteau
On Sat, Mar 01, 2008 at 12:13:53PM +, Stuart Henderson wrote:
 On 2008-03-01, hyjial [EMAIL PROTECTED] wrote:
  You can simply add a newline like
  /xenocara/// # I don't really remember the syntax
  in the list of directories in a file under
  /usr/src/CVS thus making all of your sources updated
  at once without any error.
 
 Ah, perhaps I did that at some point then...
 

If you checkout xenocara with cvs it will add the entry for you.
But of course it won't happen if you just untar xenocara.tar.gz.

--
Pierre Riteau



Re: xenocara source

2008-03-01 Thread J.C. Roberts
On Friday 29 February 2008, Marco S Hyman wrote:
   For the sake of new folks it may be wise to put a .cvsignore in
   our /usr/src tree to prevent unintended cosequences of using the
 (also  suggested) prune switch on cvs (-P).

 -P will only remove EMPTY directories that cvs knows about.   Putting
 xenocara (or in my case zenocara and ports) in /usr/src is pretty
 much a no-op when it comes to cvs.   A cd /usr/src; cvs up -Pd
 displays ? xenocara.  I can live with that.

   When following anoncvs.html, if a new person goes to update
   their /usr/src tree, they would thwack their /usr/src/xenocara
 tree.

 If the directory isn't empty it isn't thwacked
 If the directory isn't known by CVS it isn't thwacked.

You are correct about the thwacking and I failed to actually test it.
While trying to build a new -stable box from CD and looking over the
site docs/faq, I noticed the discrepancy and added a .cvsignore before
running any cvs update commands -But I'm odd that way, because I
actually enjoy going through the docs/faq at least once per release and
thinking about the suggested commands.

And yes, the ? xenocara error/message is really very trivial.

But the question still stands; why does our documentation give suggested
methods which result in an error/message without explaining it?

I'm not concerned about long time users like you or me, or people who
are already familiar with UNIX and it's tools. But if this was your
very first adventure into CVS, both the docs and ways things work
should be clear and correct.

Yesterday I sent a diff to www@ to handle the XF4 - xenocara changes
that were missed on release in anoncvs.html. Adding a one line
statement about .cvsignore and/or ? xenocara to either anoncvs.html
or faq5.html would solve this, or alternatively we could just add
a .cvsignore to /usr/src

It's not a big deal, and is not really a problem that stops stuff from
working, but if we want our docs to be as clear and accuate as
possible, then we need to make a change (either document the issue, or
prevent it).

kind regards,
jcr



Re: xenocara source

2008-03-01 Thread Jason Beaudoin
  I'm not concerned about long time users like you or me, or people who
  are already familiar with UNIX and it's tools. But if this was your
  very first adventure into CVS, both the docs and ways things work
  should be clear and correct.

As a new user of CVS and maintaining an OpenBSD install, I'm certainly
a bit confused about this. Even more so now.. what is the suggested
method.. I understand that depends on what you're trying to
accomplish:

I'm not (yet) modifying any code under /usr/src.. so my goal is simply
pulling the -stable repositories and updating my system as needed.


thanks!

~Jason



Re: xenocara source

2008-03-01 Thread J.C. Roberts
On Saturday 01 March 2008, Jason Beaudoin wrote:
   I'm not concerned about long time users like you or me, or people
  who are already familiar with UNIX and it's tools. But if this was
  your very first adventure into CVS, both the docs and ways things
  work should be clear and correct.

 As a new user of CVS and maintaining an OpenBSD install, I'm
 certainly a bit confused about this. Even more so now.. what is the
 suggested method.. I understand that depends on what you're trying to
 accomplish:

 I'm not (yet) modifying any code under /usr/src.. so my goal is
 simply pulling the -stable repositories and updating my system as
 needed.

Historically, OpenBSD keeps the X server code in it's own branch. You
can see the cvs layout here:
http://www.openbsd.org/cgi-bin/cvsweb/

There's a description of the brances here:
http://www.openbsd.org/anoncvs.html

On OpenBSD 4.1 and eariler the suggested layout would be:

/usr/src-The system source code
/usr/XF4-The X source code
/usr/obj-System build object files
/usr/objx   -The X build object files

In 4.1 and earlier, to update both system source and X source, you'd run
two separate cvs commands, one for each branch.

With the new 4.2 release of OpenBSD the suggested layout has changed.

/usr/src-The system source code
/usr/src/xenocara   -The X source code
/usr/obj-System build object files
/usr/objx   -The X build object files

In 4.2 and later, to update both system source and X source, you can
supposedly run just one cvs command according to the claim by Owain
Ainsworth in this thread, but I personally have not tested this, and
the documentation in the FAQ-5 and anoncvs.html do not mention it.

I need to test this... If the claim is true, then the docs need more
work.

The goal of the new layout is to simplify things but since this is new,
we're still ironing out the rough spots, namely making sure docs match
expected behavior and are consistent (steven@ corrected anoncvs.html
just a few hours ago).

As for the obvious qusetion of why keep X in it's own branch? the
answer is because it makes things simple (surprisingly enough). Keeping
the build of X separated from the rest of the system allows one a lot
of flexibility...

If you want to add a new X server (such as the recent addition of
xenocara-X.org), it's a very straight forward change. If you have
esoteric/old hardware and need to run XFree86-3 (the X11/ branch), or
if you need/want XFree86-4 (the XF4/ branch), you can easily do it.

Some folks don't even bother with X, so there's not point in forcing cvs
downloads/updates on them when they are just trying to maintain a
simple system.

Additionally, like Dongsheng Song mentioned, there are people who like
keeping their X source separated from their system source tree.

Of course, there are people who keep their source trees Read-Only in a
central location and export them over nfs to their build machine(s).

In short, there's a lot of flexibility, and how *you* want to do it is
*your* own choice. The only problem here is all this flexibility tends
to be a bit confusing when you're first learning it, so keeping the
docs clean, correct and clear is important.

Kind Regards,
JCR



Re: xenocara source

2008-02-29 Thread Dongsheng Song
Yes, I'd like use /usr/xenocara, not /usr/src/xenocara.

2008/3/1, J.C. Roberts [EMAIL PROTECTED]:
 According to FAQ-5, the suggested place to put your xenocara source tree
  is under /usr/src/xenocara

  I know it really doesn't matter where you put your xenocara tree but...

  For the sake of new folks it may be wise to put a .cvsignore in
  our /usr/src tree to prevent unintended cosequences of using the (also
  suggested) prune switch on cvs (-P).

  When following anoncvs.html, if a new person goes to update
  their /usr/src tree, they would thwack their /usr/src/xenocara tree.

  Thoughts?


  -JCR



Re: xenocara source

2008-02-29 Thread Marco S Hyman
  For the sake of new folks it may be wise to put a .cvsignore in 
  our /usr/src tree to prevent unintended cosequences of using the (also 
  suggested) prune switch on cvs (-P).

-P will only remove EMPTY directories that cvs knows about.   Putting
xenocara (or in my case zenocara and ports) in /usr/src is pretty much
a no-op when it comes to cvs.   A cd /usr/src; cvs up -Pd displays
? xenocara.  I can live with that.

  When following anoncvs.html, if a new person goes to update 
  their /usr/src tree, they would thwack their /usr/src/xenocara tree.

If the directory isn't empty it isn't thwacked
If the directory isn't known by CVS it isn't thwacked.

// marc



Re: xenocara source

2008-02-29 Thread J.C. Roberts
On Friday 29 February 2008, Dongsheng Song wrote:
 Yes, I'd like use /usr/xenocara, not /usr/src/xenocara.


You can. The addition of a .cvsignore to /usr/src would not remove your 
ability to keep your xenocara where ever you like.

The trouble is the project documentation is misleading. If a new person 
follows the documentation (faq5.html and anoncvs.html), they will 
unintentionally delete their /usr/src/xenocara tree which is the 
suggested location for it according to the documentation.

-jcr



Re: xenocara source

2008-02-29 Thread Owain Ainsworth
On Fri, Feb 29, 2008 at 05:22:34PM -0800, J.C. Roberts wrote:
 On Friday 29 February 2008, Dongsheng Song wrote:
  Yes, I'd like use /usr/xenocara, not /usr/src/xenocara.
 
 
 You can. The addition of a .cvsignore to /usr/src would not remove your 
 ability to keep your xenocara where ever you like.
 
 The trouble is the project documentation is misleading. If a new person 
 follows the documentation (faq5.html and anoncvs.html), they will 
 unintentionally delete their /usr/src/xenocara tree which is the 
 suggested location for it according to the documentation.

Incorrect. I put xenocara in /usr/src/xenocara. in fact a cvs up updates
both. Since i reckon i do more in the xenocara tree than most people, I
think it's safe to say that it's alright. Prune only removes EMPTY
directories that are in cvs.
 
 -jcr
 

-- 
Don't you feel more like you do now than you did when you came in?