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

5 messages from 2012-01-11 to 2012-01-12. Participants: Sebastian Schuberth, Pat Thoyts, Junio C Hamano.
Thread: https://gitlist.dev/t/29341

## Sebastian Schuberth, 2012-01-11 09:16

Subject: [PATCH 0/2] Make t9200-git-cvsexportcommit.sh pass on MSYS
Message-ID: <4F0D5367.1000506@gmail.com>
URL: https://gitlist.dev/e/4F0D5367.1000506%40gmail.com

```
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, 2012-01-11 09:20

Subject: [PATCH 1/2] t9200: On MSYS, do not pass Windows-style paths to CVS
Message-ID: <4F0D544E.6010105@gmail.com>
URL: https://gitlist.dev/e/4F0D544E.6010105%40gmail.com
In-Reply-To: <4F0D5367.1000506@gmail.com>

```
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(-)

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

```

## Sebastian Schuberth, 2012-01-11 09:21

Subject: [PATCH 2/2] git-cvsexportcommit: Fix calling Perl's rel2abs() on MSYS
Message-ID: <4F0D5486.7020707@gmail.com>
URL: https://gitlist.dev/e/4F0D5486.7020707%40gmail.com
In-Reply-To: <4F0D5367.1000506@gmail.com>

```
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

```

## Pat Thoyts, 2012-01-11 11:29

Subject: Re: [msysGit] [PATCH 2/2] git-cvsexportcommit: Fix calling Perl's rel2abs() on MSYS
Message-ID: <CABNJ2GKRD-v85zA8dgoQUn66FcFp1ZsqxnOrJOYeaf+QCdDkSQ@mail.gmail.com>
URL: https://gitlist.dev/e/CABNJ2GKRD-v85zA8dgoQUn66FcFp1ZsqxnOrJOYeaf%2BQCdDkSQ%40mail.gmail.com
In-Reply-To: <4F0D5486.7020707@gmail.com>

```
On 11 January 2012 09:21, Sebastian Schuberth <sschuberth@gmail.com> wrote:
> 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>

```

## Junio C Hamano, 2012-01-12 02:06

Subject: Re: [PATCH 1/2] t9200: On MSYS, do not pass Windows-style paths to CVS
Message-ID: <7vvcoh4quu.fsf@alter.siamese.dyndns.org>
URL: https://gitlist.dev/e/7vvcoh4quu.fsf%40alter.siamese.dyndns.org
In-Reply-To: <4F0D544E.6010105@gmail.com>

```
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.

```
