]> git.vpit.fr Git - perl/modules/rgit.git/commitdiff
Always canonify the root, the git path and the repo directory
authorVincent Pit <vince@profvince.com>
Wed, 24 Feb 2010 16:39:41 +0000 (17:39 +0100)
committerVincent Pit <vince@profvince.com>
Wed, 24 Feb 2010 16:39:41 +0000 (17:39 +0100)
On Windows, abs_path returns a path with forward slashes, while File::Spec
uses native backslashes.

lib/App/Rgit/Config.pm
lib/App/Rgit/Repository.pm
t/20-each.t
t/21-once.t

index dd6dff2af7f24ad8b2d7224255eea8878cf90bfd..2ac22b23c149cc268412cabf80d9b52097cf560d 100644 (file)
@@ -3,9 +3,9 @@ package App::Rgit::Config;
 use strict;
 use warnings;
 
-use Carp ();
-use Cwd qw/abs_path/;
-use File::Spec::Functions qw/file_name_is_absolute/;
+use Carp                  ();
+use Cwd                   qw/abs_path/;
+use File::Spec::Functions qw/canonpath/;
 
 use App::Rgit::Repository;
 use App::Rgit::Utils qw/:levels/;
@@ -46,7 +46,7 @@ sub new {
 
  my $root = $args{root};
  return unless defined $root and -d $root;
- $root = abs_path $root unless file_name_is_absolute $root;
+ $root = canonpath abs_path $root;
 
  my $git = $args{git};
  return unless defined $git;
@@ -58,7 +58,7 @@ sub new {
  } else {
   return unless -x $git;
  }
- $git = abs_path $git unless file_name_is_absolute $git;
+ $git = canonpath abs_path $git;
 
  my $conf = 'App::Rgit::Config::Default';
  eval "require $conf; 1" or Carp::confess("Couldn't load $conf: $@");
index f859f8f06aa5e804f6bde023f9359023da92b89a..0ca5e940a692537d136620776cecb421e42461bb 100644 (file)
@@ -3,8 +3,8 @@ package App::Rgit::Repository;
 use strict;
 use warnings;
 
-use Cwd qw/cwd abs_path/;
-use File::Spec::Functions qw/canonpath catdir splitdir abs2rel file_name_is_absolute/;
+use Cwd                   qw/cwd abs_path/;
+use File::Spec::Functions qw/canonpath catdir splitdir abs2rel/;
 use POSIX qw/WIFEXITED WEXITSTATUS WIFSIGNALED WTERMSIG SIGINT SIGQUIT/;
 
 BEGIN {
@@ -48,9 +48,12 @@ sub new {
  my %args = @_;
 
  my $dir = $args{dir};
- $dir    = abs_path $dir if defined $dir and not file_name_is_absolute $dir;
- $dir    = cwd       unless defined $dir;
- $dir    = canonpath $dir;
+ if (defined $dir) {
+  $dir = abs_path $dir;
+ } else {
+  $dir = cwd;
+ }
+ $dir = canonpath $dir;
 
  my ($repo, $bare, $name, $work);
  if ($args{fake}) {
index aa978cdde111966ca713b40debb356d9a51fe2d9..a3a26e5e4a827c6eefe9114ac48e747735e99a70 100644 (file)
@@ -4,7 +4,7 @@ use strict;
 use warnings;
 
 use Cwd                   qw/cwd abs_path/;
-use File::Spec::Functions qw/curdir catdir catfile/;
+use File::Spec::Functions qw/catdir catfile/;
 use File::Temp            qw/tempfile tempdir/;
 
 use Test::More;
@@ -129,7 +129,7 @@ sub try {
  );
 
  my $ar = App::Rgit->new(
-  git    => catfile(curdir, qw/t bin git/),
+  git    => 't/bin/git',
   root   => $tmpdir,
   cmd    => $cmd,
   args   => [ abs_path($filename), $cmd, qw/%n %g %w %b %G %W %B %R %%n %x/ ],
index 93a184ce3ce1c90e861131c9fd2982c5b8c8028c..46c6975f38a3eb4a926b235dc12f20b1fd1e0bac 100644 (file)
@@ -25,7 +25,7 @@ my @expected = (
 );
 
 local $ENV{GIT_DIR}       = 't';
-local $ENV{GIT_EXEC_PATH} = abs_path('t/bin/git');
+local $ENV{GIT_EXEC_PATH} = 't/bin/git';
 
 for my $cmd (qw/daemon gui help init version/) {
  my ($fh, $filename) = tempfile(UNLINK => 1);