#!/usr/bin/python import os, sqlite3 try: os.remove('wcx.db') except: pass c = sqlite3.connect('wcx.db') c.execute("""pragma case_sensitive_like=1""") c.execute("""pragma foreign_keys=on""") c.execute("""pragma synchronous=off""") c.execute("""pragma temp_store=memory""") c.execute("""create table repository ( id integer primary key autoincrement, root text unique not null, uuid text not null)""") c.execute("""create index i_uuid on repository (uuid)""") c.execute("""create index i_root on repository (root)""") c.execute("""create table wcroot ( id integer primary key autoincrement, local_abspath text unique)""") c.execute("""create unique index i_local_abspath on wcroot (local_abspath)""") c.execute("""create table nodes ( wc_id integer not null references wcroot (id), local_relpath text not null, op_depth integer not null, parent_relpath text, repos_id integer references repository (id), repos_path text, revision integer, presence text not null, depth text, moved_here integer, moved_to text, kind text not null, changed_revision integer, changed_date integer, changed_author text, checksum text properties blob, translated_size integer, last_mod_time integer, dav_cache blob, symlink_target text, file_external text, primary key(wc_id, local_relpath, op_depth))""") c.execute("""create index i_parent on nodes (wc_id, parent_relpath, local_relpath, op_depth)""") c.execute("""create table lock ( repos_id integer not null references repository (id), repos_relpath text not null, lock_token text not null, lock_owner text, lock_comment text, lock_date integer, primary key (repos_id, repos_relpath))""") c.execute("""insert into repository (root, uuid) values ( "http://example.com/repo", "f738be9e-409d-481f-b246-1fb6a969aba2")""") c.execute("""insert into wcroot(local_abspath) values ("/wc")""") c.execute("""insert into nodes ( wc_id, local_relpath, op_depth, repos_id, repos_path, parent_relpath, presence, kind) values ( 1, "", 0, 1, "trunk", NULL, "normal", "dir")""") for i in range(100): c.execute("""insert into nodes ( wc_id, local_relpath, op_depth, repos_id, repos_path, parent_relpath, presence, kind) values ( 1, "foo"""+str(i)+"""", 0, 1, "trunk/foo"""+str(i)+"""", "", "normal", "file")""") if i >= 60: continue; c.execute("""insert into nodes ( wc_id, local_relpath, op_depth, repos_id, repos_path, parent_relpath, presence, kind) values ( 1, "zag"""+str(i)+"""", 0, 1, "trunk/zag"""+str(i)+"""", "", "normal", "dir")""") c.execute("""insert into nodes ( wc_id, local_relpath, op_depth, repos_id, repos_path, parent_relpath, presence, kind) values ( 1, "zig"""+str(i)+"""", 0, 1, "trunk/zig"""+str(i)+"""", "", "normal", "dir")""") for j in range(100): c.execute("""insert into nodes ( wc_id, local_relpath, op_depth, repos_id, repos_path, parent_relpath, presence, kind) values ( 1, "zag"""+str(i)+"/foo"+str(j)+"""", 0, 1, "trunk/zag"""+str(i)+"/foo"+str(j)+"""", "zag"""+str(i)+"""", "normal", "file")""") if j % 10 == 1: c.execute("""insert into nodes ( wc_id, local_relpath, op_depth, repos_id, repos_path, parent_relpath, presence, kind) values ( 1, "zag"""+str(i)+"/foo"+str(j)+"""", 3, 1, "trunk/zag"""+str(i)+"/foo"+str(j)+"""", "zag"""+str(i)+"""", "base-delete", "file")""") c.execute("""insert into nodes ( wc_id, local_relpath, op_depth, repos_id, repos_path, parent_relpath, presence, kind) values ( 1, "zag"""+str(i)+"/bar"+str(j)+"""", 3, null, null, "zag"""+str(i)+"""", "normal", "file")""") c.execute("""insert into nodes ( wc_id, local_relpath, op_depth, repos_id, repos_path, parent_relpath, presence, kind) values ( 1, "zig"""+str(i)+"/foo"+str(j)+"""", 0, 1, "trunk/zig"""+str(i)+"/foo"+str(j)+"""", "zig"""+str(i)+"""", "normal", "file")""") if j >= 60: continue c.execute("""insert into nodes ( wc_id, local_relpath, op_depth, repos_id, repos_path, parent_relpath, presence, kind) values ( 1, "zig"""+str(i)+"/zag"+str(j)+"""", 0, 1, "trunk/zig"""+str(i)+"/zag"+str(j)+"""", "zig"""+str(i)+"""", "normal", "dir")""") for k in range(100): c.execute("""insert into nodes ( wc_id, local_relpath, op_depth, repos_id, repos_path, parent_relpath, presence, kind) values ( 1, "zig"""+str(i)+"/zag"+str(j)+"/foo"+str(k)+"""", 0, 1, "trunk/zig"""+str(i)+"/zag"+str(j)+"/foo"+str(k)+"""", "zig"""+str(i)+"/zag"+str(j)+"""", "normal", "file")""") c.commit()