> -----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