[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: rdiff
From: |
Paul Edwards |
Subject: |
Re: rdiff |
Date: |
Sat, 31 May 2003 04:30:39 GMT |
"Paul Edwards" <kerravon@nosppaam.w3.to> wrote in message
news:U6vBa.6053$ES.66814@news-server.bigpond.net.au...
> "Derek Robert Price" <derek@ximbiot.com> wrote in message
> news:mailman.7024.1054235988.21513.bug-cvs@gnu.org...
> > Once I apply your changes to diff.c, I do see the improvements you
> > mentioned, but I also start seeing failures in the death2 sanity tests.
> > Specifically, death2-diff-3 starts reporting that it can't find a file
> > that exists in the repository with two revisions specified rather than
> > reporting that the file was removed.
>
> Ok, it sounds like more things are falling into that other bug that
> I mentioned (reproduced below). In my opinion use_rev2 should
> be NULL for that removed file, and thus detected as removed,
> before hitting my code change.
>
> But I don't know how to get use_rev2 to be NULL. Any ideas?
I'm going to test this patch out later. I saw code elsewhere
that seemed to say things like if (use_rev2 or rev2-is-dead) so
maybe that is the way to go.
With a bit of luck this will fix both bugs I reported with diff.
patch against cvs1-11-6.
BFN. Paul.
Index: diff.c
===================================================================
RCS file: /cvs/ccvs/src/diff.c,v
retrieving revision 1.94
diff -c -r1.94 diff.c
*** diff.c 23 Jan 2003 21:19:17 -0000 1.94
--- diff.c 31 May 2003 04:24:36 -0000
***************
*** 909,920 ****
freevers_ts (&xvers);
}
! if (use_rev1 == NULL)
{
/* The first revision does not exist. If EMPTY_FILES is
true, treat this as an added file. Otherwise, warn
about the missing tag. */
! if (use_rev2 == NULL)
/* At least in the case where DIFF_REV1 and DIFF_REV2
are both numeric, we should be returning some kind
of error (see basicb-8a0 in testsuite). The symbolic
--- 909,920 ----
freevers_ts (&xvers);
}
! if ((use_rev1 == NULL) || RCS_isdead (vers->srcfile, use_rev1))
{
/* The first revision does not exist. If EMPTY_FILES is
true, treat this as an added file. Otherwise, warn
about the missing tag. */
! if ((use_rev2 == NULL) || RCS_isdead (vers->srcfile, use_rev2))
/* At least in the case where DIFF_REV1 and DIFF_REV2
are both numeric, we should be returning some kind
of error (see basicb-8a0 in testsuite). The symbolic
***************
*** 931,937 ****
return DIFF_ERROR;
}
! if (use_rev2 == NULL)
{
/* The second revision does not exist. If EMPTY_FILES is
true, treat this as a removed file. Otherwise warn
--- 931,937 ----
return DIFF_ERROR;
}
! if ((use_rev2 == NULL) || RCS_isdead (vers->srcfile, use_rev2))
{
/* The second revision does not exist. If EMPTY_FILES is
true, treat this as a removed file. Otherwise warn
***************
*** 948,960 ****
}
/* now, see if we really need to do the diff */
if (strcmp (use_rev1, use_rev2) == 0)
return DIFF_SAME;
- else
- return DIFF_DIFFERENT;
}
! if ((diff_rev1 || diff_date1) && use_rev1 == NULL)
{
/* The first revision does not exist, and no second revision
was given. */
--- 948,966 ----
}
/* now, see if we really need to do the diff */
+ /* if the version numbers are identical, we know
+ they are definitely the same, but otherwise we
+ need to continue to the full check */
if (strcmp (use_rev1, use_rev2) == 0)
return DIFF_SAME;
}
! if ((diff_rev1 || diff_date1)
! && ((use_rev1 == NULL)
! || RCS_isdead (vers->srcfile, use_rev1)
! )
! && !(diff_rev2 || diff_date2)
! )
{
/* The first revision does not exist, and no second revision
was given. */
***************
*** 995,1004 ****
/* now, see if we really need to do the diff */
if (use_rev1 && use_rev2)
{
if (strcmp (use_rev1, use_rev2) == 0)
return DIFF_SAME;
- else
- return DIFF_DIFFERENT;
}
if (use_rev1 == NULL
--- 1001,1011 ----
/* now, see if we really need to do the diff */
if (use_rev1 && use_rev2)
{
+ /* if the version numbers are identical, we know
+ they are definitely the same, but otherwise we
+ need to continue to the full check */
if (strcmp (use_rev1, use_rev2) == 0)
return DIFF_SAME;
}
if (use_rev1 == NULL
- rdiff, Paul Edwards, 2003/05/02
- Re: rdiff, Paul Edwards, 2003/05/02
- Re: rdiff, Derek Robert Price, 2003/05/05
- Re: rdiff, Paul Edwards, 2003/05/23
- Re: rdiff, Paul Edwards, 2003/05/24
- Re: rdiff, Paul Edwards, 2003/05/27
- Re: rdiff, Derek Robert Price, 2003/05/29
- Message not available
- Re: rdiff, Paul Edwards, 2003/05/29
- Re: rdiff,
Paul Edwards <=