From 9931df3fa97c274449c73a224994aa27f6790ae6 Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Fri, 14 Oct 2011 23:53:28 +0100 Subject: [PATCH 1/7] t1020: disable the pwd test on MinGW It fails both for line ending and for DOS path reasons. Signed-off-by: Johannes Schindelin Signed-off-by: Junio C Hamano --- t/t1020-subdirectory.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/t/t1020-subdirectory.sh b/t/t1020-subdirectory.sh index 3b1b985996..e23ac0e69d 100755 --- a/t/t1020-subdirectory.sh +++ b/t/t1020-subdirectory.sh @@ -118,7 +118,7 @@ test_expect_success 'alias expansion' ' ) ' -test_expect_success '!alias expansion' ' +test_expect_success NOT_MINGW '!alias expansion' ' pwd >expect && ( git config alias.test !pwd && From 72b5158b25ce67a6886dab58011f19ea529742d6 Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Fri, 14 Oct 2011 23:53:30 +0100 Subject: [PATCH 2/7] t9001: do not fail only due to CR/LF issues Signed-off-by: Johannes Schindelin Signed-off-by: Junio C Hamano --- t/t9001-send-email.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/t/t9001-send-email.sh b/t/t9001-send-email.sh index 87b4acc9a6..8c12c65c72 100755 --- a/t/t9001-send-email.sh +++ b/t/t9001-send-email.sh @@ -23,6 +23,7 @@ test_expect_success $PREREQ \ echo do echo " echo \"!\$a!\"" echo "done >commandline\$output" + test_have_prereq MINGW && echo "dos2unix commandline\$output" echo "cat > msgtxt\$output" ) >fake.sendmail && chmod +x ./fake.sendmail && From 184892fb3e19cd28aaced4ca185257ed5b3acc78 Mon Sep 17 00:00:00 2001 From: Sebastian Schuberth Date: Fri, 14 Oct 2011 23:53:31 +0100 Subject: [PATCH 3/7] git-svn: On MSYS, escape and quote SVN_SSH also if set by the user While GIT_SSH does not require any escaping / quoting (e.g. for paths containing spaces), SVN_SSH requires it due to its use in a Perl script. Previously, SVN_SSH has only been escaped and quoted automatically if it was unset and thus derived from GIT_SSH. For user convenience, do the escaping and quoting also for a SVN_SSH set by the user. This way, the user is able to use the same unescaped and unquoted syntax for GIT_SSH and SVN_SSH. Signed-off-by: Sebastian Schuberth Signed-off-by: Junio C Hamano --- git-svn.perl | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/git-svn.perl b/git-svn.perl index a0410f0554..3b33379473 100755 --- a/git-svn.perl +++ b/git-svn.perl @@ -22,14 +22,13 @@ $Git::SVN::default_ref_id = $ENV{GIT_SVN_ID} || 'git-svn'; $Git::SVN::Ra::_log_window_size = 100; $Git::SVN::_minimize_url = 'unset'; -if (! exists $ENV{SVN_SSH}) { - if (exists $ENV{GIT_SSH}) { - $ENV{SVN_SSH} = $ENV{GIT_SSH}; - if ($^O eq 'msys') { - $ENV{SVN_SSH} =~ s/\\/\\\\/g; - $ENV{SVN_SSH} =~ s/(.*)/"$1"/; - } - } +if (! exists $ENV{SVN_SSH} && exists $ENV{GIT_SSH}) { + $ENV{SVN_SSH} = $ENV{GIT_SSH}; +} + +if (exists $ENV{SVN_SSH} && $^O eq 'msys') { + $ENV{SVN_SSH} =~ s/\\/\\\\/g; + $ENV{SVN_SSH} =~ s/(.*)/"$1"/; } $Git::SVN::Log::TZ = $ENV{TZ}; From b52612ed4f736c517231954ef0d765add1fe29b7 Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Fri, 14 Oct 2011 23:53:33 +0100 Subject: [PATCH 4/7] t9300: do not run --cat-blob-fd related tests on MinGW As diagnosed by Johannes Sixt, msys.dll does not hand through file descriptors > 2 to child processes, so these test cases cannot passes when run through an MSys bash. Signed-off-by: Johannes Schindelin Signed-off-by: Junio C Hamano --- t/t9300-fast-import.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/t/t9300-fast-import.sh b/t/t9300-fast-import.sh index bd32b91d8f..438aaf6b14 100755 --- a/t/t9300-fast-import.sh +++ b/t/t9300-fast-import.sh @@ -2237,7 +2237,7 @@ test_expect_success 'R: cat-blob-fd must be a nonnegative integer' ' test_must_fail git fast-import --cat-blob-fd=-1 expect <<-EOF && ${blob} blob 11 @@ -2249,7 +2249,7 @@ test_expect_success 'R: print old blob' ' test_cmp expect actual ' -test_expect_success 'R: in-stream cat-blob-fd not respected' ' +test_expect_success NOT_MINGW 'R: in-stream cat-blob-fd not respected' ' echo hello >greeting && blob=$(git hash-object -w greeting) && cat >expect <<-EOF && @@ -2270,7 +2270,7 @@ test_expect_success 'R: in-stream cat-blob-fd not respected' ' test_cmp expect actual.1 ' -test_expect_success 'R: print new blob' ' +test_expect_success NOT_MINGW 'R: print new blob' ' blob=$(echo "yep yep yep" | git hash-object --stdin) && cat >expect <<-EOF && ${blob} blob 12 @@ -2288,7 +2288,7 @@ test_expect_success 'R: print new blob' ' test_cmp expect actual ' -test_expect_success 'R: print new blob by sha1' ' +test_expect_success NOT_MINGW 'R: print new blob by sha1' ' blob=$(echo "a new blob named by sha1" | git hash-object --stdin) && cat >expect <<-EOF && ${blob} blob 25 From 8850c3da95d17bb23576ee5ee3484bfd3d486444 Mon Sep 17 00:00:00 2001 From: Pat Thoyts Date: Sat, 15 Oct 2011 15:05:19 +0100 Subject: [PATCH 5/7] mergetools: use the correct tool for Beyond Compare 3 on Windows On Windows the bcompare tool launches a graphical program and does not wait for it to terminate. A separate 'bcomp' tool is provided which will wait for the view to exit so we use this instead. Reported-by: Werner BEROUX Signed-off-by: Pat Thoyts Signed-off-by: Junio C Hamano --- mergetools/bc3 | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/mergetools/bc3 b/mergetools/bc3 index 27b3dd48b8..b6319d206e 100644 --- a/mergetools/bc3 +++ b/mergetools/bc3 @@ -16,5 +16,10 @@ merge_cmd () { } translate_merge_tool_path() { - echo bcompare + if type bcomp >/dev/null 2>/dev/null + then + echo bcomp + else + echo bcompare + fi } From 13d24b018f348401cceca45da5c0dd6d17411268 Mon Sep 17 00:00:00 2001 From: Pat Thoyts Date: Sat, 15 Oct 2011 15:05:20 +0100 Subject: [PATCH 6/7] mingw: ensure sockets are initialized before calling gethostname If the Windows sockets subsystem has not been initialized yet then an attempt to get the hostname returns an error and prints a warning to the console. This solves this issue for msysGit as seen with 'git fetch'. Signed-off-by: Pat Thoyts Signed-off-by: Junio C Hamano --- compat/mingw.c | 7 +++++++ compat/mingw.h | 3 +++ 2 files changed, 10 insertions(+) diff --git a/compat/mingw.c b/compat/mingw.c index 6ef0cc4f99..8e17daeac3 100644 --- a/compat/mingw.c +++ b/compat/mingw.c @@ -1321,6 +1321,13 @@ static void ensure_socket_initialization(void) initialized = 1; } +#undef gethostname +int mingw_gethostname(char *name, int namelen) +{ + ensure_socket_initialization(); + return gethostname(name, namelen); +} + #undef gethostbyname struct hostent *mingw_gethostbyname(const char *host) { diff --git a/compat/mingw.h b/compat/mingw.h index ce9dd980eb..fecf0d0776 100644 --- a/compat/mingw.h +++ b/compat/mingw.h @@ -190,6 +190,9 @@ char *mingw_getcwd(char *pointer, int len); char *mingw_getenv(const char *name); #define getenv mingw_getenv +int mingw_gethostname(char *host, int namelen); +#define gethostname mingw_gethostname + struct hostent *mingw_gethostbyname(const char *host); #define gethostbyname mingw_gethostbyname From f64943d242d3b0fff40684d09033f17bb9747a38 Mon Sep 17 00:00:00 2001 From: Pat Thoyts Date: Sat, 15 Oct 2011 15:05:17 +0100 Subject: [PATCH 7/7] t9901: fix line-ending dependency on windows Signed-off-by: Pat Thoyts Signed-off-by: Junio C Hamano --- t/t9901-git-web--browse.sh | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/t/t9901-git-web--browse.sh b/t/t9901-git-web--browse.sh index 7906e5d032..b0a6bad8dd 100755 --- a/t/t9901-git-web--browse.sh +++ b/t/t9901-git-web--browse.sh @@ -7,31 +7,32 @@ This test checks that git web--browse can handle various valid URLs.' . ./test-lib.sh +test_web_browse () { + # browser=$1 url=$2 + git web--browse --browser="$1" "$2" >actual && + tr -d '\015' text && + test_cmp expect text +} + test_expect_success \ 'URL with an ampersand in it' ' echo http://example.com/foo\&bar >expect && git config browser.custom.cmd echo && - git web--browse --browser=custom \ - http://example.com/foo\&bar >actual && - test_cmp expect actual + test_web_browse custom http://example.com/foo\&bar ' test_expect_success \ 'URL with a semi-colon in it' ' echo http://example.com/foo\;bar >expect && git config browser.custom.cmd echo && - git web--browse --browser=custom \ - http://example.com/foo\;bar >actual && - test_cmp expect actual + test_web_browse custom http://example.com/foo\;bar ' test_expect_success \ 'URL with a hash in it' ' echo http://example.com/foo#bar >expect && git config browser.custom.cmd echo && - git web--browse --browser=custom \ - http://example.com/foo#bar >actual && - test_cmp expect actual + test_web_browse custom http://example.com/foo#bar ' test_expect_success \ @@ -43,9 +44,7 @@ test_expect_success \ EOF chmod +x "fake browser" && git config browser.w3m.path "`pwd`/fake browser" && - git web--browse --browser=w3m \ - http://example.com/foo >actual && - test_cmp expect actual + test_web_browse w3m http://example.com/foo ' test_expect_success \ @@ -58,9 +57,7 @@ test_expect_success \ done } f" && - git web--browse --browser=custom \ - http://example.com/foo >actual && - test_cmp expect actual + test_web_browse custom http://example.com/foo ' test_done