man VCS::Dir () - module for access to a VCS directory

NAME

VCS::Dir - module for access to a VCS directory

SYNOPSIS

    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";
    }

DESCRIPTION

CWVCS::Dir abstracts access to a directory under version control.

METHODS

Methods marked with a * are not yet finalised/implemented.

VCS::Dir->create_new($url) *

CW$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 CWVCS::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 CWdie will result). CW$name is a file or directory name, absolute or relative. CW$create_class is either CWFile or CWDir, 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 CWdie will result).

VCS::Dir->new($url)

CW$url is a file-container URL. Returns an object of class CWVCS::Dir, or throws an exception if it fails. Normally, an override of this method will call CWVCS::Dir->init($url) to make an object, and then add to it as appropriate.

VCS::Dir->init($url)

CW$url is a file-container URL. Returns an object of class CWVCS::Dir. This method calls CWVCS->parse_url to make sense of the URL.

$dir->tags

* 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.

$dir->url

Returns the CW$url argument to CWnew.

$dir->content

Returns a list of objects, either of class CWVCS::Dir or CWVCS::File, corresponding to files and directories within this directory.

$dir->path

Returns the absolute path of the directory.

$dir->read_dir($dir)

Returns the contents of the given filesystem directory. This is intended as a utility method for subclasses.

SEE ALSO

VCS.

COPYRIGHT

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.