bug-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

CVSUP fixup messages for CVS-1.11.22. Regression between 1.11.20 and 1.1


From: Anton Kornev
Subject: CVSUP fixup messages for CVS-1.11.22. Regression between 1.11.20 and 1.11.21.
Date: Fri, 1 Jun 2007 19:09:46 +0400

Hi,

There is a famous tool for CVS repository syncronization called
"CVSUP", and we have found
it producing a lot of "fixup" messages last time. It means it can't
parse RCS to send diff
and have to transfer entire file from server to client.

After some investigation we found it to behave like this after
commits/ setting tags with CVS
later than 1.11.20 version.

I took a look into RCS files produced with the latest CVS version and I found
that for some reason it changing order of  "revisions" (I am not sure
exactly how
to explain it) inside RCS file.


F.ex. when I set tag TAG_015 to the file in my repository it sets the
tag itself in the header
of my Makefile,v

BEFORE:

head    1.15;
access;
symbols
       TAG_012:1.15
       TAG_011:1.15
       TAG_010:1.15
       TAG_009:1.15.0.4
       TAG_008:1.15
       TAG_007:1.15

AFTER:

head    1.15;
access;
symbols
       TAG_015:1.15
       TAG_012:1.15
       TAG_011:1.15
       TAG_010:1.15
       TAG_009:1.15.0.4
       TAG_008:1.15
       TAG_007:1.15

But it also do the following:


BEFORE:

1.2
date    2004.10.15.17.54.17;    author gazik;   state Exp;
branches;
next    1.1;

1.1
date    2004.10.12.21.27.34;    author gazik;   state Exp;
branches
       1.1.1.1;
next    ;

1.1.1.1
date    2004.10.12.21.27.34;    author gazik;   state Exp;
branches;
next    ;

1.7.2.1
date    2005.11.17.20.08.36;    author dmitri;  state Exp;
branches;
next    ;

1.12.6.1
date    2006.06.12.16.34.05;    author gazik;   state Exp;
branches;
next    ;


desc

AFTER


1.2
date    2004.10.15.17.54.17;    author gazik;   state Exp;
branches;
next    1.1;

1.1
date    2004.10.12.21.27.34;    author gazik;   state Exp;
branches
       1.1.1.1;
next    ;

1.12.6.1
date    2006.06.12.16.34.05;    author gazik;   state Exp;
branches;
next    ;

1.7.2.1
date    2005.11.17.20.08.36;    author dmitri;  state Exp;
branches;
next    ;

1.1.1.1
date    2004.10.12.21.27.34;    author gazik;   state Exp;
branches;
next    ;


desc
@@


Please, notice that 1.1.1.1 and 1.12.6.1 changed their places.  Unfortunately
CVSUP goes crazy from this.


With further investigation I found the place it was changed inside CVS code
- it is a RCS_putdtree() function in src/rcs.c source.  It was
completely rewritten
from recursive to non-recursive version and it seems it was a bit broken during
the rewrite.

I took the older RCS_putdtree() function into the latest 1.11.22 and
now it works fine
for me. But it will be nice to have it fixed in future releases of CVS.

--
Best Regards,
Anton Kornev.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]