Serious problems accessing cvs

Mike Stump mrs@windriver.com
Mon Mar 6 20:52:00 GMT 2000


> Date: Mon, 6 Mar 00 23:13:37 EST
> From: kenner@vlsi1.ultra.nyu.edu (Richard Kenner)
> To: gcc@gcc.gnu.org

> I just had the same problem I had the other day: the "cvs update" took
> so long that by the time I was able to start the "cvs commit", the
> up-to-date check failed.

> The original "cvs update" took nearly an hour, so I don't plan to stay
> awake long enough to try it again.

> If bbnplanet isn't willing to fix whatever this problem is, perhaps
> a new location needs to be found that's more centrally located from
> a network perspective and is on a network that's responsive to
> customer complaints.  Does anybody have any suggestions?

Another possibility is to reconsider how you use the tools.  If you
update files that you have touched in any way, these will be painfully
slow.  Solution, never to that.  The way I avoid it, is to use two
utilities called mkdiff and mkorig.  mkdiff will essentially to a cvs
diff, but with no network wastage.  The major mode of development is
to update a virgin cvs tree, start work, mkdiff to review the work,
and if it was fast enough, just to a cvs ci right then, if it was
slow, I run a mkdiff . >blabla.patch; mkorig | sh; rm *~; cvs update;
patch -V numbered -p0 <blabla.patch; cvs ci...  The only trick is to
turn on version control in emacs, and always use such an emacs for
editing.  I've used this method for around 8 years with good success,
from 9600bps days to 10Mbps days.  Let me know if you find it useful.

.emacs
(defun i-want-version-control () (setq version-control t))

vmacs:
#!/bin/sh
exec emacs -f i-want-version-control ${1+"$@"}

mkdiff:
#!/bin/bash
# mkdiff [directory...]
# The below is for function name inclusion in GNU diff.
P=-p
export P
 
if [ $# = 0 ]; then
        set .
fi
for i
do
        echo "Doing diffs in $i:"
        find "$i" -name ".*.~1~" -print -o -name "*.~1~" -print | 
        while read n
        do
                if [ ! -r "${n%.~1~}.~0~" ]; then
                        diff -c $P "$n" "${n%.~[01]~}"
                fi
        done
        echo "--------------"
done


mkorig:
#!/bin/bash
 
# Move original editor backup to file.
if [ $# = 0 ]; then
    find . -name .\*.~1~ -print -o -name \*.~1~ -print | while read i
    do
        echo mv $i ${i%.~1~}
    done
    # find . -name \*~ | xargs rm -f
else
    for i in ${1+"$@"}; do
        case "$i" in
        *.~1~)
            echo mv $i ${i%.~1~};;
        esac
    done
    # find . -name \*~ | xargs rm -f
fi


More information about the Gcc mailing list