[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: wc-metadata.sql3

From: Greg Stein <gstein_at_gmail.com>
Date: Sat, 20 Sep 2008 05:49:47 -0700

oops. copying dev@ list.

On Fri, Sep 19, 2008 at 8:00 PM, Greg Stein <gstein_at_gmail.com> wrote:
> On Fri, Sep 19, 2008 at 5:42 AM, Daniel Shahaf <d.s_at_daniel.shahaf.name> wrote:
>>...
>>> CREATE TABLE WORKING_COPY (
>>> id INTEGER PRIMARY KEY AUTOINCREMENT,
>>>
>>> /* foreign key to REPOSITORY.id */
>>> repos_id INTEGER NOT NULL,
>>>
>>> /* absolute path in the local filesystem */
>>> local_path TEXT NOT NULL,
>>
>> Why NOT NULL? local_path is only needed when the metadata is stored outside
>> the wc.
>
> True. Will change.
>
>>...
>>> CREATE TABLE DIRECTORY (
>>> id INTEGER PRIMARY KEY AUTOINCREMENT,
>>>
>>> wc_id INTEGER NOT NULL,
>>>
>>> /* relative path from wcroot */
>>> local_relpath TEXT NOT NULL,
>>>
>>> /* path in repository */
>>> /* ### for switched subdirs, this could point to something other than
>>> ### local_relpath would imply. anything else for switching? */
>>> repos_path TEXT NOT NULL
>>
>> For non-switched directories, repos_path can be derived from local_relpath.
>> And non-switched is the more common case. Storing repos_path always (it is
>> NOT NULL) seems slightly redundant.
>
> Good point.
>
>> (Also, what does switched mean here? Switched relative to the parent, or
>> relative to the wc root?)
>
> Well... it really doesn't matter. The point is that the local_relpath
> does not imply the repository path. If a subdirectory "realigns" with
> the local/repos path correspondence, then fine. I believe our general
> definition is "different from what parent implies".
>
>>...
>>> CREATE TABLE NODE (
>>> id INTEGER PRIMARY KEY AUTOINCREMENT,
>>>
>>> dir_id INTEGER NOT NULL,
>>
>> What is dir_id of the wc root dir?
>
> Look in DIRECTORY for a given wc_id and a local_relpath of "". (I've
> added a comment that "" implies the wcroot)
>
>>> filename TEXT,
>>
>> filename NOT NULL? The empty string can represent the "this dir" entry
>> (is there another reason NULL are allowed?).
>
> I intended NULL to mean "this directory", but given the use of "" in
> DIRECTORY for "this", then I'll do the same for this table. Thus,
> switching to NOT NULL.
>
>>...
>>> /* ### or use TEXT and ISO-8601 datetime? */
>>> changed_date INTEGER,
>>
>> What is the precision of this INTEGER? Days? Seconds? Microseconds?
>
> Dunno :-)
>
> Let's say microseconds... APR date/time values, that is.
>
>>...
>>> /* ### some text or prop changes exist. this node is in a changelist. */
>> ^ ^
>>
>> One of these two sentences doesn't belong here?
>
> Hunh. Should stop writing comments while drinking bourbon ;-)
>
>>...
>>> CREATE TABLE BASE_TEXT (
>>> id INTEGER PRIMARY KEY AUTOINCREMENT,
>>>
>>> checksum TEXT NOT NULL,
>>>
>>
>> Checksum kind? (corresponds to the 'kind' field of svn_checksum_t)
>
> Yup. I figured it would be encoded in the value. Something like
> "M:abcdef..." or "S:abcdef..." for MD5 or SHA1.
>
>>...
>>> /* ### do we need to deal with repos-size vs. eol-style-size? this
>>> ### size should be what is in ACTUAL so we can quickly detect
>>> ### differences. */
>>
>> s/should be what is/is what should be/ ?
>
> Fixed.
>
>>...
>
> Thanks!
> -g
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: dev-help_at_subversion.tigris.org
Received on 2008-09-20 14:50:00 CEST

This is an archived mail posted to the Subversion Dev mailing list.