Rex-scm is a project mainly written in Perl, it's free.
Rex Module for Git/SVN Control
=pod
=head2 Rex::SCM
This is a Rex Module for SCM access (like git, svn, ...).
=head2 Example
Rexfile:
use Rex::SCM; use Rex::Commands::Rsync;
group static => 'static01', 'static02';
repository 'static', url => '[email protected]', type => 'git';
task 'checkout', sub { checkout 'static', 'checked-out-branch', branch => 'stable'; };
task 'sync', group => 'static', sub { sync 'static/*', '/var/www/html'; };
task 'deploy', sub { do_task [ qw/checkout sync/ ]; };