Search notes:

Perl module Git::Repository

#!/usr/bin/perl
use warnings;
use strict;

use Git::Repository;
use File::Path;
use File::Slurp;

my $repo_dir = '/tmp/a-git-repository';

my $git_repo = create_a_repository();

write_file("$repo_dir/aFile.txt", <<"FILE");
first line
second line
third line
FILE

$git_repo->run(add=>'aFile.txt');
print $git_repo->run('ls-files'), "\n";
$git_repo->run('commit', '-m', 'added aFile.txt');
print $git_repo->run('ls-files'), "\n";

for my $obj (map { s/.*(..)\/(......................................)/$1$2/; $_ } glob("$repo_dir/.git/objects/**/*")) {
 
  my $type    = $git_repo->run('cat-file' => $obj, '-t');
  my $content = $git_repo->run('cat-file' => $obj, '-p');

  print "$obj [$type]\n";
  print $content;

  print "\n\n";
 
}

sub create_a_repository { #_{

  rmtree $repo_dir if -d $repo_dir;

  Git::Repository->run(init=>$repo_dir);

  my $git_repo = Git::Repository->new(work_tree=>$repo_dir);

  return $git_repo;

} #_}
Github repository PerlModules, path: /Git/Repository/script.pl

See also

Git
Perl modules

Index