> -----Original Message-----
> From: Julian Foad [mailto:julian.f...@wandisco.com]
> Sent: dinsdag 3 augustus 2010 15:19
> To: Erik Huelsmann
> Cc: dev
> Subject: Re: NODE_DATA (2nd iteration)

> > TABLE NODE_DATA (
> >   wc_id  INTEGER NOT NULL REFERENCES WCROOT (id),
> >   local_relpath  TEXT NOT NULL,
> >   op_depth  INTEGER NOT NULL,
> >   presence  TEXT NOT NULL,
> >   kind  TEXT NOT NULL,
> >   checksum  TEXT,
> >   changed_rev  INTEGER,
> >   changed_date  INTEGER,  /* an APR date/time (usec since 1970) */
> >   changed_author  TEXT,
> 
> The changed_* columns can only belong to a node-rev that exists in the
> repository.  What node-rev do they belong to and why aren't they
> alongside the node-rev details?

> 
> (The changed_* columns convey essentially a rev number and two of the
> rev-props associated with that revnum that can be used in keyword
> expansions.  We should consider representing that information in a more
> general form, both to avoid tying the DB format to the choice of those
> two particular revprops, and to avoid the redundancy of storing these
> same data and author values N times.)

changed_rev is in many ways information that the other changed_* values exist 
(compared to SVN_INVALID_REVNUM) and the value itself is being used to locate 
copyfrom info in the update editor.

Changed_date is used to update the file-time if you use commit-times in your 
subversion settings.

And changed-author and changed-rev are used in the svn status -v output. (Which 
makes them +- performance critical).

(That's why all of these have their values mapped in svn_wc__db_read_info() and 
svn_wc__db_base_get_info() and before that in svn_wc_entry_t)

On top of that the update_editor and the commit editor always handled these 
properties specifically, so we should really keep these as fast as possible. (A 
join on changed_rev would be an option, but almost certainly slower than the 
current code...) 
Do you expect the author or date to change on all files of a specific revision 
if you propedit the revprops and then update one file?

        Bert 

Reply via email to