[I'm guessing that increasing the size of buf in RCS_copydeltas from 8192 to about 64k or 128k would probably fix this. At least that is the most obvious difference I saw between the CVS 1.10 code and the RCS 5.7 code. Of course, reading in the _whole file_ at once is a bad idea. Could people try this out and report back (to bug-cvs) whether it seems to help? At the risk of belaboring the obvious, I've included a diff at the end of this message. -kingdon] The report: [10x to 100x slowdown in checkin, in CVS 1.10 as compared with RCS 5.7] The time is spent in the function RCS_copydeltas(), where the last while loop (it is the 'while(fread) { fwrite }' loop) is the problem. The actual throughput of this loop is only a couple of Kb's per second across my NFS [HPUX 10.20 NFS client, not sure about NFS server; also observed with Solaris 2.6 over NFS]. Index: rcs.c =================================================================== RCS file: /home2/cvsroot/ccvs/src/rcs.c,v retrieving revision 1.208 diff -c -r1.208 rcs.c *** rcs.c 1998/09/25 01:25:18 1.208 --- rcs.c 1998/10/03 20:20:28 *************** *** 8210,8216 **** char *bufrest; int nls; size_t buflen; ! char buf[8192]; int got; /* Count the number of versions for which we have to do some --- 8210,8216 ---- char *bufrest; int nls; size_t buflen; ! char buf[131072]; int got; /* Count the number of versions for which we have to do some