The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Changes for version 0.1.0_3

  • The XML output format of bzr-xmloutput changed as of revision 18 of that plugin. The Bzr driver now supports both the old and the new format.
  • Calling Bzr::Repository->projects would sometimes fail because Repository.pm wasn't using VCI::VCS::Bzr::Project.
  • Tests were always failing because they weren't properly checking for non-perl-module prerequisites.

Changes for version 0.1.0_2

  • 0.1.0_1 was completely broken for several drivers (couldn't connect to a Repository).
  • Various fixes to Diffs in various drivers (compared to 0.1.0_1).
  • Project objects now remove trailing and starting forward-slashes from their names when they are initialized. So "/project/" will be the same as "project".
  • Various POD fixes.
  • Doing "./Build dist" will now always run tests before building the distribution. This is necessary because running the tests properly sets up t/repos/ for distribution.
  • Added tests for Cvs, Svn, Git, and Bzr, which caused a lot of re-arch and various bug fixes:
  • Svn:
    • Support for local repositories, including relative paths.
    • "time" on objects from get_path, get_file, and get_directory was wrong. (Svn returns microseconds and we were interpreting them as seconds.)
    • The 'R' action is now interepreted as the file being modified, not added and then deleted.
    • Properly strip the final newline from Commit::message.
    • Copied/moved files now handled correctly (and how they are handled is better documented).
    • File and Directory objects from other Projects won't show up in your Project's Commit objects.
  • Cvs:
    • Support for local repositories, including relative paths.
    • Repository now supports "projects".
    • File and Directory objects now return the correct time if gotten from get_path, get_file, or get_directory.
    • We weren't passing the "-u" argument to cvsps, so the History wasn't being updated if there was a new commit to the repository since the very first time anybody ever called "history" on this project.
  • Git:
    • Calling "contents" on a versioned Directory now correctly returns the contents of that Directory at that time in history.
    • Commit::message was always returning an empty string. It now correctly returns the message.
    • File objects now return their most recent revision instead of 'HEAD' if you got them from get_path or get_file.
    • Support for relative paths to local repos.
    • Repository::projects now also detects "bare" repositories.
  • Bzr:
    • Commit:message no longer has an extra space at the start or an extra newline at the end.

Changes for version 0.1.0_1

  • Added "as_diff" to VCI::Abstract::Commit, and implemented it in all drivers. This allows you to get the actual changes done during the commit both as a raw diff from the VCS and as an object representing that diff.
  • Repository objects now fix "root" to end with a slash (if it doesn't already) on most VCSes, and fix it to *not* end with a slash on CVS.
  • Slightly improved debug output for Bzr.

Modules

VCI
A generic interface for interacting with various 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
The Bazaar implementation of VCI
The CVS implementation of VCI
The Git Implementation of VCI
The Mercurial (aka Hg) implementation of VCI
The Subversion implementation of VCI

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