VCS::Dir - module for access to a VCS directory
use VCS;
my $d = VCS::Dir->new($url);
print $d->url . "\n";
foreach my $x ($d->content) {
print "\t" . $x->url . "\t" . ref($x) . "\n";
}
"VCS::Dir" abstracts access to a directory
under version control.
Methods marked with a "*" are not yet finalised/implemented.
$url is a file-container URL. Creates data as
appropriate to convince the VCS that there is a file-container, and returns an
object of class "VCS::Dir", or throws an
exception if it fails. This is a pure virtual method, which must be
over-ridden, and cannot be called directly in this class (a
"die" will result).
$name is a file or directory name, absolute or relative.
$create_class is either
"File" or
"Dir", and implementation classes are
expected to use something similar to this code, to call the appropriate
create_new:
sub introduce {
my ($class, $name, $create_class) = @_;
my $call_class = $class;
$call_class =~ s/[^:]+$/$create_class/;
return $call_class->create_new($name);
}
This is a pure virtual method, which must be over-ridden, and
cannot be called directly in this class (a
"die" will result).
$url is a file-container URL. Returns an object of class
"VCS::Dir", or throws an exception if it
fails. Normally, an override of this method will call
"VCS::Dir->init($url)" to make an object,
and then add to it as appropriate.
$url is a file-container URL. Returns an object of class
"VCS::Dir". This method calls
"VCS->parse_url" to make sense of the
URL.
* THIS METHOD WORKS RECURSIVELY ON THE DIRECTORY AT HAND *
Returns all the tags inside a directory and a little bit more
information. The actual datstructure is a hash of hashes. The first level
hash is a hash keyed on tag names, in other words it lists as its keys every
single tag name in or below a directory. Each of these tag names point to
another hash with has filenames as keys and version numbers as values.
Returns the $url argument to
"new".
Returns a list of objects, either of class
"VCS::Dir" or
"VCS::File", corresponding to files and
directories within this directory.
Returns the absolute path of the directory.
Returns the contents of the given filesystem directory. This is intended as a
utility method for subclasses.
This library is free software; you can redistribute it and/or modify it under
the same terms as Perl itself.