On Fri, Mar 12, 2010 at 07:42:53PM -0600, Hyrum K. Wright wrote:
> On Mar 12, 2010, at 3:52 PM, Daniel Näslund wrote:
> >>> - if (status->entry->depth != svn_depth_exclude)
> >>> + /* Added files have a revision of no interest */
> >>> + if (revision != SVN_INVALID_REVNUM)
> >>> {
> >>> - sb->result->switched |= status->switched;
> >>> - sb->result->modified |= (status->text_status != svn_wc_status_normal);
> >>> - sb->result->modified |= (status->prop_status != svn_wc_status_normal
> >>> - && status->prop_status != svn_wc_status_none);
> >>> + svn_revnum_t item_rev = (wb->committed
> >>> + ? changed_rev
> >>> + : revision);
> >>
> >> I think this may introduce a bug. Depending on wb->committed, we look
> >> at different revision values. And it may be that REVISION is valid,
> >> but CHANGED_REV is not. I would suggest moving the assignment of
> >> ITEM_REV one block out, and using that in the primary if() test.
> >
> > Fixed, although I must admit that I don't truly understand how
> > changed_rev and revision differs!
>
> 'Changed rev' is the last time the object was modified in the repo.
> 'Revision' refers to which revision the working copy thinks this
> object is up-to-date to.
>
> For instance, if I change foo.c in r10, and then later update to r12,
> if foo.c wasn't modified by the update, the last changed revision
> would still be r10, but revision would be r12. You've every right to
> be confused, btw, since in wc-1 entry->revision is overloaded about 4
> different ways.
Ah, it was that simple. I got a bit twisted up when reading
wc-metadata.sql and forgot the big picture. I was sure there was
something not-obvious to it. Glad it wasn't.
Thanks,
Daniel
Received on 2010-03-14 21:43:00 CET