Daniel Shahaf wrote on Thu, Jun 30, 2011 at 22:48:27 +0300: > Philip Martin wrote on Thu, Jun 30, 2011 at 20:07:45 +0100: > > Daniel Shahaf <danie...@elego.de> writes: > > > > > Philip Martin wrote on Thu, Jun 30, 2011 at 19:48:25 +0100: > > >> for i in $(seq 0 $(svnlook youngest repo)) ; do > > >> sqlite3 repo/db/revprops/revprops.db "insert into revprop values ($i, > > >> '()'" > > >> done > > >> > > > > > >>From recover_body(): > > > > > > /* No file? Hrm... maybe that's because this repository is > > > packed and the youngest revision is in the revprops.db > > > file? We can at least see if that's a possibility. > > > > > > ### TODO: Could we check for revprops in the revprops.db? > > > ### What if rNNN legitimately has no revprops? */ > > > > > > > > > Your excerpt implies the answer to the first ###'d question is "Yes" > > > (via looking for an empty skel), doesn't it? > > > > I don't understand your question. The properties column is "NOT NULL" > > so must have some value. Are you saying we don't need rows? I guess my > > use of youngest is wrong, it should stop at the last packed rev. I > > haven't actually run that script, I just wrote it in my email client :) > > On IRC we agree that revprops.db is expected to have a row for *every* > revision less than MIN_UNPACKED_REV; that row may map the revision to an > empty proplist skel but it must exist. >
... and therefore, the comment in the code that effectively asks "Is it legitimate for an existing revision not to have a table row (for example, if that revision has no revprops)", is answered by "No". > We might want to tolerate missing table lines (with a warning), both in > 'recover' and elsewhere in the code. Still need to investigate here. > > > > > -- > > Philip