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