The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

Changes for version 0.6.1

  • VCI now explicitly requires Perl 5.8. (We probably always did actually require 5.8, because some of our dependencies did.)
  • The POD has all been reviewed and improved, for every module.
  • VCI is no longer alpha-quality software, and so all such statements to that effect have been removed from the POD.
  • The VCI package now uses Module::Install instead of Module::Build
  • New Features:
    • There is a new "revno" accessor for Commit objects. "revision" now always represents the global revision id, if the VCS has one.
    • Commit objects have an "author" accessor in addition to the "committer" accessor, for VCSes that understand those things as separate concepts.
    • Added a new method to VCI.pm, "missing_requirements", to assist downstream consumers in figuring out what needs to be installed in order for certain VCI::VCS modules to work.
    • Svn: More debug output available.
  • API Changes:
    • A Commit's "moved" accessor now has Committable objects (File or Directory objects) for its values instead of strings.
    • Bzr: A Commit's "revision" accessor now returns a revid instead of a revision number. This also means that every method that takes "revision" as an argument works on revids intead of revision numbers.
  • Optimizations:
    • VCI now does nearly all of its internal class loading on-demand instead of during compile time. This eliminates dependency loops and probably helps some with startup time.
  • Bug Fixes:
    • The Cvs driver was unable to parse certain valid commit histories, meaning that sometimes commits would be missing. The parser has been re-written to be faster and more reliable.

Modules

VCI
A library for interacting with version-control systems.
Represents a single atomic commit to the repository.
Anything that can be committed to a repository.
An object representing a "diff" or "patch" from a Version-Control System
The changes made to a particular file, in a Diff.
A directory in the repository.
A single file in the repository.
Anything that can contain a File or Directory.
The history of a Project, File, Directory, etc.
A particular project in the Repository
A repository where version-controlled items are kept.
Types and Utility Functions used by VCI
Object-oriented interface to Bazaar (bzr)
Object-oriented interface to CVS
Object-oriented interface to Git
Object-oriented interface to Mercurial (aka Hg)
Object-oriented interface to Subversion

Provides

in lib/VCI/VCS/Bzr/Commit.pm
in lib/VCI/VCS/Bzr/Committable.pm
in lib/VCI/VCS/Bzr/Directory.pm
in lib/VCI/VCS/Bzr/File.pm
in lib/VCI/VCS/Bzr/History.pm
in lib/VCI/VCS/Bzr/Project.pm
in lib/VCI/VCS/Bzr/Repository.pm
in lib/VCI/VCS/Cvs/Commit.pm
in lib/VCI/VCS/Cvs/Diff.pm
in lib/VCI/VCS/Cvs/Directory.pm
in lib/VCI/VCS/Cvs/File.pm
in lib/VCI/VCS/Cvs/History.pm
in lib/VCI/VCS/Cvs/Project.pm
in lib/VCI/VCS/Cvs/Repository.pm
in lib/VCI/VCS/Git/Commit.pm
in lib/VCI/VCS/Git/Committable.pm
in lib/VCI/VCS/Git/Diff.pm
in lib/VCI/VCS/Git/Directory.pm
in lib/VCI/VCS/Git/File.pm
in lib/VCI/VCS/Git/History.pm
in lib/VCI/VCS/Git/Project.pm
in lib/VCI/VCS/Git/Repository.pm
in lib/VCI/VCS/Hg/Commit.pm
in lib/VCI/VCS/Hg/Committable.pm
in lib/VCI/VCS/Hg/Diff.pm
in lib/VCI/VCS/Hg/Directory.pm
in lib/VCI/VCS/Hg/File.pm
in lib/VCI/VCS/Hg/History.pm
in lib/VCI/VCS/Hg/Project.pm
in lib/VCI/VCS/Hg/Repository.pm
in lib/VCI/VCS/Svn/Commit.pm
in lib/VCI/VCS/Svn/Committable.pm
in lib/VCI/VCS/Svn/Directory.pm
in lib/VCI/VCS/Svn/File.pm
in lib/VCI/VCS/Svn/FileOrDirectory.pm
in lib/VCI/VCS/Svn/History.pm
in lib/VCI/VCS/Svn/Project.pm
in lib/VCI/VCS/Svn/Repository.pm