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

Reply via email to