Metabrik-Repository

 view release on metacpan or  search on metacpan

lib/Metabrik/Devel/Mercurial.pm  view on Meta::CPAN


   return $r;
}

sub incoming {
   my $self = shift;
   my ($directory) = @_;

   my $cwd = defined($self->shell) && $self->shell->pwd || '/tmp';

   $directory ||= '';
   if (length($directory)) {
      $self->brik_help_run_directory_not_found('incoming', $directory) or return;
      if (defined($self->shell)) {
         $self->shell->run_cd($directory) or return;
      }
      else {
         chdir($directory) or return $self->log->error("incoming: chdir: $!");
      }
   }

   my $cmd = "hg incoming";
   my $r = $self->execute($cmd);

   if (length($directory)) {
      if (defined($self->shell)) {
         $self->shell->run_cd($cwd) or return;
      }
      else {
         chdir($cwd) or return $self->log->error("incoming: chdir: $!");
      }
   }

   return $r;
}

sub pull {
   my $self = shift;
   my ($directory) = @_;

   my $she = $self->shell;
   my $cwd = $she->pwd;

   $directory ||= '';
   if (length($directory)) {
      $self->brik_help_run_directory_not_found('pull', $directory) or return;
      $she->run_cd($directory) or return;
   }

   my $cmd = "hg pull -u";
   my $r = $self->execute($cmd);

   if (length($directory)) {
      $she->run_cd($cwd) or return;
   }

   return $r;
}

# alias to pull
sub update {
   my $self = shift;

   return $self->pull(@_);
}

sub diff {
   my $self = shift;
   my ($data) = @_;

   $data ||= '.';
   my $ref = $self->brik_help_run_invalid_arg('diff', $data, 'ARRAY', 'SCALAR') or return;
   if ($ref eq 'ARRAY') {
      $data = join(' ', @$data);
   }

   my $cmd = "hg diff $data";

   return $self->execute($cmd);
}

sub add {
   my $self = shift;
   my ($data) = @_;

   $self->brik_help_run_undef_arg('add', $data) or return;
   my $ref = $self->brik_help_run_invalid_arg('add', $data, 'ARRAY', 'SCALAR')
      or return;

   if ($ref eq 'ARRAY') {
      $data = join(' ', @$data);
   }

   my $prev = $self->use_pager;

   $self->use_pager(0);
   my $cmd = "hg add $data";
   my $r = $self->execute($cmd);

   $self->use_pager($prev);

   return $r;
}

sub commit {
   my $self = shift;
   my ($data) = @_;

   $data ||= '.';
   my $ref = $self->brik_help_run_invalid_arg('commit', $data, 'ARRAY', 'SCALAR')
      or return;

   if ($ref eq 'ARRAY') {
      $data = join(' ', @$data);
   }

   my $prev = $self->use_pager;

   $self->use_pager(0);
   my $cmd = "hg commit $data";
   my $r = $self->execute($cmd);



( run in 0.753 second using v1.01-cache-2.11-cpan-85d3896f969 )