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

DORMANTno replies

4 messages, 2 authors, 2016-06-15 · open the first message on its own page

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

From: Sebastian Schuberth <hidden>
Date: 2016-06-15 22:52:46

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

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

From: Sebastian Schuberth <hidden>
Date: 2016-06-15 22:52:46

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

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

From: Sebastian Schuberth <hidden>
Date: 2016-06-15 22:52:46

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

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

From: Pat Thoyts <hidden>
Date: 2016-06-15 22:52:46

On 11 January 2012 09:21, Sebastian Schuberth [off-list ref] wrote:
quoted hunk
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 <redacted>
---
 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 <redacted>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help