threads / patch / 29341

patch, 2 partsMake t9200-git-cvsexportcommit.sh pass on MSYS

Subject: [PATCH 0/2] Make t9200-git-cvsexportcommit.sh pass on MSYS

## tl;dr

5 messages between Jan 11, 2012 and Jan 12, 2012. Diffs are folded; open one to read it.

replies: 4people: 3as markdown or json

Sebastian Schuberth· Jan 11, 2012, 09:16 UTC · lore
This tiny series makes the long-pending t9200-git-cvsexportcommit.sh pass on MSYS.
Sebastian Schuberth (2):
  t9200: On MSYS, do not pass Windows-style paths to CVS
  git-cvsexportcommit: Fix calling Perl's rel2abs() on MSYS
 git-cvsexportcommit.perl       |    7 +++++++
 t/t9200-git-cvsexportcommit.sh |    6 +++---
 2 files changed, 10 insertions(+), 3 deletions(-)
-- 
1.7.9.rc0.5096.g30a61
Sebastian Schuberth· Jan 11, 2012, 09:20 UTC · re: Sebastian Schuberth · lore

[PATCH 1/2] t9200: On MSYS, do not pass Windows-style paths to CVS

For details, see the commit message of 4114156ae9. Note that while using $PWD as part of GIT_DIR is not required here, it does no harm and it is more consistent. In addition, on MSYS using an environment variable should be slightly faster than spawning an external executable.

Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>
---
 t/t9200-git-cvsexportcommit.sh |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)
Show changes to t/t9200-git-cvsexportcommit.sh +3 −3
diff --git a/t/t9200-git-cvsexportcommit.sh b/t/t9200-git-cvsexportcommit.sh
index 41db05c..518358a 100755
--- a/t/t9200-git-cvsexportcommit.sh
+++ b/t/t9200-git-cvsexportcommit.sh
@@ -19,9 +19,9 @@ then
     test_done
 fi
 
-CVSROOT=$(pwd)/cvsroot
-CVSWORK=$(pwd)/cvswork
-GIT_DIR=$(pwd)/.git
+CVSROOT=$PWD/cvsroot
+CVSWORK=$PWD/cvswork
+GIT_DIR=$PWD/.git
 export CVSROOT CVSWORK GIT_DIR
 
 rm -rf "$CVSROOT" "$CVSWORK"
-- 
1.7.9.rc0.5096.g30a61
Junio C Hamano· Jan 12, 2012, 02:06 UTC · re: Sebastian Schuberth · lore

Re: [PATCH 1/2] t9200: On MSYS, do not pass Windows-style paths to CVS

Sebastian Schuberth <sschuberth@gmail.com> writes:
> For details, see the commit message of 4114156ae9. Note that while using
> $PWD as part of GIT_DIR is not required here, it does no harm and it is
> more consistent. In addition, on MSYS using an environment variable should
> be slightly faster than spawning an external executable.

Thanks. It seems that the "Dos and Dont's" from t/README needs to be stressed a bit more strongly.

Sebastian Schuberth· Jan 11, 2012, 09:21 UTC · re: Sebastian Schuberth · lore

[PATCH 2/2] git-cvsexportcommit: Fix calling Perl's rel2abs() on MSYS

Due to MSYS path mangling GIT_DIR contains a Windows-style path when checked inside a Perl script even if GIT_DIR was previously set to an MSYS-style path in a shell script. So explicitly convert to an MSYS-style path before calling Perl's rel2abs() to make it work.

This fix was inspired by a very similar patch in WebKit:
http://trac.webkit.org/changeset/76255/trunk/Tools/Scripts/commit-log-editor
Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>
---
 git-cvsexportcommit.perl |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)
Show changes to git-cvsexportcommit.perl +7 −0
diff --git a/git-cvsexportcommit.perl b/git-cvsexportcommit.perl
index 39a426e..e6bf252 100755
--- a/git-cvsexportcommit.perl
+++ b/git-cvsexportcommit.perl
@@ -30,6 +30,13 @@ if ($opt_w || $opt_W) {
 		chomp($gd);
 		$ENV{GIT_DIR} = $gd;
 	}
+
+	# On MSYS, convert a Windows-style path to an MSYS-style path
+	# so that rel2abs() below works correctly.
+	if ($^O eq 'msys') {
+		$ENV{GIT_DIR} =~ s#^([[:alpha:]]):/#/$1/#;
+	}
+
 	# Make sure GIT_DIR is absolute
 	$ENV{GIT_DIR} = File::Spec->rel2abs($ENV{GIT_DIR});
 }
-- 
1.7.9.rc0.5096.g30a61
Pat Thoyts· Jan 11, 2012, 11:29 UTC · re: Sebastian Schuberth · lore

Re: [msysGit] [PATCH 2/2] git-cvsexportcommit: Fix calling Perl's rel2abs() on MSYS

On 11 January 2012 09:21, Sebastian Schuberth <sschuberth@gmail.com> wrote:
Show 35 quoted lines
> Due to MSYS path mangling GIT_DIR contains a Windows-style path when
> checked inside a Perl script even if GIT_DIR was previously set to an
> MSYS-style path in a shell script. So explicitly convert to an MSYS-style
> path before calling Perl's rel2abs() to make it work.
>
> This fix was inspired by a very similar patch in WebKit:
>
> http://trac.webkit.org/changeset/76255/trunk/Tools/Scripts/commit-log-editor
>
> Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>
> ---
>  git-cvsexportcommit.perl |    7 +++++++
>  1 files changed, 7 insertions(+), 0 deletions(-)
>
> diff --git a/git-cvsexportcommit.perl b/git-cvsexportcommit.perl
> index 39a426e..e6bf252 100755
> --- a/git-cvsexportcommit.perl
> +++ b/git-cvsexportcommit.perl
> @@ -30,6 +30,13 @@ if ($opt_w || $opt_W) {
>                chomp($gd);
>                $ENV{GIT_DIR} = $gd;
>        }
> +
> +       # On MSYS, convert a Windows-style path to an MSYS-style path
> +       # so that rel2abs() below works correctly.
> +       if ($^O eq 'msys') {
> +               $ENV{GIT_DIR} =~ s#^([[:alpha:]]):/#/$1/#;
> +       }
> +
>        # Make sure GIT_DIR is absolute
>        $ENV{GIT_DIR} = File::Spec->rel2abs($ENV{GIT_DIR});
>  }
> --
> 1.7.9.rc0.5096.g30a61
>
Cool - works for me. I just assumed we didn't support cvsexport.
Tested-by: Pat Thoyts <patthoyts@users.sourceforge.net>

← back to recent threads