VCP::DB - Persistant storage for id -> (name, rev_id) maps
use base qw( VCP::DB );
By default, most VCP::Dest::* drivers keep track of the relationship between the
id field assigned by the (original) VCP::Source::* driver and the final name
and rev_id (or whatever fields are important to it) in the destination
repository so that the previous_id fields, which refer to the original id, may
be resolved when backfilling or branching.
The VCP::*::revml drivers do not do this; they do not need to resolve id fields.
The intent for this file is to serve as a base class so that individual sites
may write their own ", ref $self, " plugins to, for instance, store
this state in a RDBMS table. This is not quite offered at this time; we need
to add an option to the appropriate VCP::Dest::* modules to allow the
appropriate ", ref $self, " file to be loaded.
To write your own ", ref $self, " file, see VCP::DB::sdbm.
StoreLoc => $dir, ## path to a dir to keep the state store in
The "Store" field indicates where the DBFile should be stored, for
instance a DBI specification string or a directory to place a
"revmap.db" file in. There is no control over the filename, as
different storage modes may need different conventions.
- Gets (does not set) the StoreLoc field as an absolute path.
Deletes the persitent store. This should remove all files, lock files, etc.
for filesystem stores and drop any tables for RDBMS stores.
Default action is to call close_db; subclasses should
(subclasses should call "$self-"SUPER::delete_db before doing
anything else in their delete_db() overrides).
Creates a new or opens an existing db.
(subclasses should call "$self-"SUPER::open_db before doing
anything else in their open_db() overrides).
Opens an existing db.
(subclasses should call "$self-"SUPER::open_existing_db before
doing anything else in their open_existing_db() overrides).
(subclasses should call "$self-"SUPER::close_db before doing
anything else in their close_db() overrides).
$db->set( $key, @values );
Sets the values for $key.
my @values = $db->get( $key );
Gets the values for $key.
$db->exists( $key );
Tests that key exists
my @keys = $db->keys;
Returns a list of ARRAY references, each ARRAY reference contains the fields
for one key.
$db->dump( \*STDOUT );
my $s = $db->dump;
my @l = $db->dump;
Dumps keys and values from a DB, in lexically sorted key order. If a
filehandle reference is provided, prints to that filehandle. Otherwise,
returns a string or array containing the entire dump, depending on
Barrie Slaymaker <email@example.com>
Copyright (c) 2000, 2001, 2002 Perforce Software, Inc. All rights reserved.