{"thread":{"id":"39895","subject":"[PATCH v2 01/16] perl/Makefile: treat a missing PM.stamp as if empty","startedAt":"2015-07-19T20:08:00Z","lastAt":"2015-07-20T18:10:52Z","messageCount":26,"participants":["Philip Oakley","Eric Sunshine"],"isPatch":true,"patchVersion":2,"patchTotal":16},"messages":[{"id":"266442","messageId":"1437336497-4072-1-git-send-email-philipoakley@iee.org","threadId":"39895","inReplyTo":null,"subject":"[PATCH v2 00/16] Make the msvc-build scripts work again","fromName":"Philip Oakley","fromEmail":"philipoakley@iee.org","sentAt":"2015-07-19T20:08:00Z","receivedAt":"2015-07-19T20:08:00Z","isPatch":true,"sender":{"key":"philipoakley@iee.email","avatar":"https://avatars.githubusercontent.com/u/914343?v=4"},"body":"This updated series fixes the scripts which generated Visual Studio project\nfiles. The scripts had bit rotted over the years as other commits\nchanged the git makefile which it post-processes.\n\nThe series doesn't attempt (yet) to install the Visual Studio compiled product\nbut allows Windows developers familiar with VS to support the Windows SDK\nport of Git.\n\nThe fixes are presented in a fine grained manner.\n\nThe key change in this series is that the failure of using the git/Makefile\nfor a clean dry-run has been identified in perl/Makefile. The new fix replaces\ntwo previous hack patches.\n\nGrammatical corrections and other comments have all been included. In\nparticular the use of deactivated code is now better explained. The false\nmode change has also been fixed (from using 'git gui', who's unstage/re-stage\naction on Windows with its core.filemode=false loses the 'x' bit).\n\nThe previous patch series was not picked up on $gmane, but is available\nat http://marc.info/?t=143519065200003&r=1&w=2 (2015-06-25)\n\nOlder patch series were at:\n $gmane/21132 (2014-11-20),\n $gmane/21207 (2014-12-26),\n and on Msysgit list (2015-02-23) at\n https://groups.google.com/forum/?hl=en_US?hl%3Den#!topic/msysgit/aiEVBKjRshY\n and as a PR https://github.com/msysgit/git/pull/318/files\n\n\nPhilip Oakley (16):\n  perl/Makefile: treat a missing PM.stamp as if empty\n  .gitignore: improve MSVC ignore patterns\n  .gitignore: ignore library directories created by MSVC VS2008\n    buildsystem\n  (msvc-build) Vcproj.pm: remove duplicate GUID\n  engine.pl: fix error message (lib->link)\n  engine.pl: Properly accept quoted spaces in filenames\n  engine.pl: Fix i18n -o option in msvc buildsystem generator\n  engine.pl: ignore invalidcontinue.obj which is known to MSVC\n  engine.pl: name the msvc buildsystem's makedry error file\n  engine.pl: delete the captured stderr file if empty\n  engine.pl: add debug line to capture the dry-run\n  engine.pl: provide more debug print statements\n  Vcproj.pm: list git.exe first to be startup project\n  vcbuild/readme: Improve layout\n  msvc-build: add complete Microsoft Visual C compilation script\n  config.mak.uname: add MSVC No_SafeExeceptionHandler option\n\n .gitignore                                |  8 ++-\n compat/vcbuild/README                     | 27 +++++++---\n compat/vcbuild/scripts/msvc-build         | 86 +++++++++++++++++++++++++++++++\n config.mak.uname                          |  9 ++++\n contrib/buildsystems/Generators/Vcproj.pm | 34 ++++++------\n contrib/buildsystems/engine.pl            | 37 ++++++++++---\n perl/Makefile                             |  2 +\n 7 files changed, 170 insertions(+), 33 deletions(-)\n create mode 100755 compat/vcbuild/scripts/msvc-build\n\n-- \n2.4.2.windows.1.5.gd32afb6\n\n-- \n-- \n*** Please reply-to-all at all times ***\n*** (do not pretend to know who is subscribed and who is not) ***\n*** Please avoid top-posting. ***\nThe msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.\n\nYou received this message because you are subscribed to the Google\nGroups \"msysGit\" group.\nTo post to this group, send email to msysgit@googlegroups.com\nTo unsubscribe from this group, send email to\nmsysgit+unsubscribe@googlegroups.com\nFor more options, and view previous threads, visit this group at\nhttp://groups.google.com/group/msysgit?hl=en_US?hl=en\n\n--- \nYou received this message because you are subscribed to the Google Groups \"Git for Windows\" group.\nTo unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.\nFor more options, visit https://groups.google.com/d/optout.\n"},{"id":"266441","messageId":"1437336497-4072-2-git-send-email-philipoakley@iee.org","threadId":"39895","inReplyTo":"1437336497-4072-1-git-send-email-philipoakley@iee.org","subject":"[PATCH v2 01/16] perl/Makefile: treat a missing PM.stamp as if empty","fromName":"Philip Oakley","fromEmail":"philipoakley@iee.org","sentAt":"2015-07-19T20:08:01Z","receivedAt":"2015-07-19T20:08:01Z","isPatch":true,"sender":{"key":"philipoakley@iee.email","avatar":"https://avatars.githubusercontent.com/u/914343?v=4"},"body":"'make clean', or a 'git clean -dfx' will delete the PM stamp file,\nso it cannot be a direct target in such clean conditions, resulting\nin an error.\n\nNormally the PM.stamp is recreated by the git/Makefile, except when\na dry-run is requested, for example, as used in the msysgit msvc-build\nscript which implements the compat/vcbuild/README using\ncontrib/buildsystems. The script msvc-build is introduced later in this\nseries.\n\nProtect the PM.stamp target when the PM.stamp file does not exist,\nallowing a Git 'Makefile -n' to succeed on a clean repo.\n\nSigned-off-by: Philip Oakley <philipoakley@iee.org>\n---\nThis is development of the original \"[PATCH 4/17] Makefile: a dry-run\ncan error out if no perl. Document the issue\" 2015-06-25,\n(http://marc.info/?l=git&m=143519054716960&w=2), which simply documented\nthe issue and then used NO_PERL to avoid the problem. See follow on\nemail thread for some discussion.\n---\n perl/Makefile | 2 ++\n 1 file changed, 2 insertions(+)\n\ndiff --git a/perl/Makefile b/perl/Makefile\nindex 15d96fc..5b86aac 100644\n--- a/perl/Makefile\n+++ b/perl/Makefile\n@@ -22,7 +22,9 @@ clean:\n \t$(RM) $(makfile).old\n \t$(RM) PM.stamp\n \n+ifneq (,$(wildcard PM.stamp))\n $(makfile): PM.stamp\n+endif\n \n ifdef NO_PERL_MAKEMAKER\n instdir_SQ = $(subst ','\\'',$(prefix)/lib)\n-- \n2.4.2.windows.1.5.gd32afb6\n\n-- \n-- \n*** Please reply-to-all at all times ***\n*** (do not pretend to know who is subscribed and who is not) ***\n*** Please avoid top-posting. ***\nThe msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.\n\nYou received this message because you are subscribed to the Google\nGroups \"msysGit\" group.\nTo post to this group, send email to msysgit@googlegroups.com\nTo unsubscribe from this group, send email to\nmsysgit+unsubscribe@googlegroups.com\nFor more options, and view previous threads, visit this group at\nhttp://groups.google.com/group/msysgit?hl=en_US?hl=en\n\n--- \nYou received this message because you are subscribed to the Google Groups \"Git for Windows\" group.\nTo unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.\nFor more options, visit https://groups.google.com/d/optout.\n"},{"id":"266445","messageId":"1437336497-4072-3-git-send-email-philipoakley@iee.org","threadId":"39895","inReplyTo":"1437336497-4072-1-git-send-email-philipoakley@iee.org","subject":"[PATCH v2 02/16] .gitignore: improve MSVC ignore patterns","fromName":"Philip Oakley","fromEmail":"philipoakley@iee.org","sentAt":"2015-07-19T20:08:02Z","receivedAt":"2015-07-19T20:08:02Z","isPatch":true,"sender":{"key":"philipoakley@iee.email","avatar":"https://avatars.githubusercontent.com/u/914343?v=4"},"body":"Add the Microsoft .manifest pattern, and correct the generic 'Debug'\nand 'Release' directory patterns which were mechanically adjusted way\nback in c591d5f (gitignore: root most patterns at the top-level directory,\n2009-10-26) to allow multi-level projects within the Git suite.\n\nSigned-off-by: Philip Oakley <philipoakley@iee.org>\n---\nJunio's correction http://marc.info/?l=git&m=143524522500906&w=2\n(2015-06-25)\n---\n .gitignore | 5 +++--\n 1 file changed, 3 insertions(+), 2 deletions(-)\n\ndiff --git a/.gitignore b/.gitignore\nindex a685ec1..91e75ee 100644\n--- a/.gitignore\n+++ b/.gitignore\n@@ -247,5 +247,6 @@\n *.user\n *.idb\n *.pdb\n-/Debug/\n-/Release/\n+*.manifest\n+Debug/\n+Release/\n-- \n2.4.2.windows.1.5.gd32afb6\n\n-- \n-- \n*** Please reply-to-all at all times ***\n*** (do not pretend to know who is subscribed and who is not) ***\n*** Please avoid top-posting. ***\nThe msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.\n\nYou received this message because you are subscribed to the Google\nGroups \"msysGit\" group.\nTo post to this group, send email to msysgit@googlegroups.com\nTo unsubscribe from this group, send email to\nmsysgit+unsubscribe@googlegroups.com\nFor more options, and view previous threads, visit this group at\nhttp://groups.google.com/group/msysgit?hl=en_US?hl=en\n\n--- \nYou received this message because you are subscribed to the Google Groups \"Git for Windows\" group.\nTo unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.\nFor more options, visit https://groups.google.com/d/optout.\n"},{"id":"266443","messageId":"1437336497-4072-4-git-send-email-philipoakley@iee.org","threadId":"39895","inReplyTo":"1437336497-4072-1-git-send-email-philipoakley@iee.org","subject":"[PATCH v2 03/16] .gitignore: ignore library directories created by MSVC VS2008 buildsystem","fromName":"Philip Oakley","fromEmail":"philipoakley@iee.org","sentAt":"2015-07-19T20:08:03Z","receivedAt":"2015-07-19T20:08:03Z","isPatch":true,"sender":{"key":"philipoakley@iee.email","avatar":"https://avatars.githubusercontent.com/u/914343?v=4"},"body":"Signed-off-by: Philip Oakley <philipoakley@iee.org>\n---\n .gitignore | 3 +++\n 1 file changed, 3 insertions(+)\n\ndiff --git a/.gitignore b/.gitignore\nindex 91e75ee..e35c492 100644\n--- a/.gitignore\n+++ b/.gitignore\n@@ -178,6 +178,7 @@\n /gitweb/gitweb.cgi\n /gitweb/static/gitweb.js\n /gitweb/static/gitweb.min.*\n+/libgit\n /test-chmtime\n /test-ctype\n /test-config\n@@ -210,6 +211,8 @@\n /test-urlmatch-normalization\n /test-wildmatch\n /common-cmds.h\n+/vcs-svn_lib\n+/xdiff_lib\n *.tar.gz\n *.dsc\n *.deb\n-- \n2.4.2.windows.1.5.gd32afb6\n\n-- \n-- \n*** Please reply-to-all at all times ***\n*** (do not pretend to know who is subscribed and who is not) ***\n*** Please avoid top-posting. ***\nThe msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.\n\nYou received this message because you are subscribed to the Google\nGroups \"msysGit\" group.\nTo post to this group, send email to msysgit@googlegroups.com\nTo unsubscribe from this group, send email to\nmsysgit+unsubscribe@googlegroups.com\nFor more options, and view previous threads, visit this group at\nhttp://groups.google.com/group/msysgit?hl=en_US?hl=en\n\n--- \nYou received this message because you are subscribed to the Google Groups \"Git for Windows\" group.\nTo unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.\nFor more options, visit https://groups.google.com/d/optout.\n"},{"id":"266450","messageId":"1437336497-4072-5-git-send-email-philipoakley@iee.org","threadId":"39895","inReplyTo":"1437336497-4072-1-git-send-email-philipoakley@iee.org","subject":"[PATCH v2 04/16] (msvc-build) Vcproj.pm: remove duplicate GUID","fromName":"Philip Oakley","fromEmail":"philipoakley@iee.org","sentAt":"2015-07-19T20:08:04Z","receivedAt":"2015-07-19T20:08:04Z","isPatch":true,"sender":{"key":"philipoakley@iee.email","avatar":"https://avatars.githubusercontent.com/u/914343?v=4"},"body":"Delete the duplicated GUID from the generation code for the Visual Studio\n.sln project file.\n\nThe duplicate GUID tended to be allocated to test-svn-fe, which was then\nignored by Visual Studio / MSVC, and its omission from the build never\nnoticed.\n\nSigned-off-by: Philip Oakley <philipoakley@iee.org>\n---\nEric Sunshine correction http://marc.info/?l=git&m=143546075320855&w=2\n---\n contrib/buildsystems/Generators/Vcproj.pm | 1 -\n 1 file changed, 1 deletion(-)\n\ndiff --git a/contrib/buildsystems/Generators/Vcproj.pm b/contrib/buildsystems/Generators/Vcproj.pm\nindex cfa74ad..1b01d58 100644\n--- a/contrib/buildsystems/Generators/Vcproj.pm\n+++ b/contrib/buildsystems/Generators/Vcproj.pm\n@@ -52,7 +52,6 @@ my @GUIDS = (\n     \"{00785268-A9CC-4E40-AC29-BAC0019159CE}\",\n     \"{4C06F56A-DCDB-46A6-B67C-02339935CF12}\",\n     \"{3A62D3FD-519E-4EC9-8171-D2C1BFEA022F}\",\n-    \"{3A62D3FD-519E-4EC9-8171-D2C1BFEA022F}\",\n     \"{9392EB58-D7BA-410B-B1F0-B2FAA6BC89A7}\",\n     \"{2ACAB2D5-E0CE-4027-BCA0-D78B2D7A6C66}\",\n     \"{86E216C3-43CE-481A-BCB2-BE5E62850635}\",\n-- \n2.4.2.windows.1.5.gd32afb6\n\n-- \n-- \n*** Please reply-to-all at all times ***\n*** (do not pretend to know who is subscribed and who is not) ***\n*** Please avoid top-posting. ***\nThe msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.\n\nYou received this message because you are subscribed to the Google\nGroups \"msysGit\" group.\nTo post to this group, send email to msysgit@googlegroups.com\nTo unsubscribe from this group, send email to\nmsysgit+unsubscribe@googlegroups.com\nFor more options, and view previous threads, visit this group at\nhttp://groups.google.com/group/msysgit?hl=en_US?hl=en\n\n--- \nYou received this message because you are subscribed to the Google Groups \"Git for Windows\" group.\nTo unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.\nFor more options, visit https://groups.google.com/d/optout.\n"},{"id":"266444","messageId":"1437336497-4072-6-git-send-email-philipoakley@iee.org","threadId":"39895","inReplyTo":"1437336497-4072-1-git-send-email-philipoakley@iee.org","subject":"[PATCH v2 05/16] engine.pl: fix error message (lib->link)","fromName":"Philip Oakley","fromEmail":"philipoakley@iee.org","sentAt":"2015-07-19T20:08:05Z","receivedAt":"2015-07-19T20:08:05Z","isPatch":true,"sender":{"key":"philipoakley@iee.email","avatar":"https://avatars.githubusercontent.com/u/914343?v=4"},"body":"Signed-off-by: Philip Oakley <philipoakley@iee.org>\n---\n contrib/buildsystems/engine.pl | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\ndiff --git a/contrib/buildsystems/engine.pl b/contrib/buildsystems/engine.pl\nindex 23da787..c8a5258 100755\n--- a/contrib/buildsystems/engine.pl\n+++ b/contrib/buildsystems/engine.pl\n@@ -329,7 +329,7 @@ sub handleLinkLine\n         } elsif ($part =~ /\\.(o|obj)$/) {\n             push(@objfiles, $part);\n         } else {\n-            die \"Unhandled lib option @ line $lineno: $part\";\n+            die \"Unhandled link option @ line $lineno: $part\";\n         }\n     }\n #    print \"AppOut: '$appout'\\nLFlags: @lflags\\nLibs  : @libs\\nOfiles: @objfiles\\n\";\n-- \n2.4.2.windows.1.5.gd32afb6\n\n-- \n-- \n*** Please reply-to-all at all times ***\n*** (do not pretend to know who is subscribed and who is not) ***\n*** Please avoid top-posting. ***\nThe msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.\n\nYou received this message because you are subscribed to the Google\nGroups \"msysGit\" group.\nTo post to this group, send email to msysgit@googlegroups.com\nTo unsubscribe from this group, send email to\nmsysgit+unsubscribe@googlegroups.com\nFor more options, and view previous threads, visit this group at\nhttp://groups.google.com/group/msysgit?hl=en_US?hl=en\n\n--- \nYou received this message because you are subscribed to the Google Groups \"Git for Windows\" group.\nTo unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.\nFor more options, visit https://groups.google.com/d/optout.\n"},{"id":"266447","messageId":"1437336497-4072-7-git-send-email-philipoakley@iee.org","threadId":"39895","inReplyTo":"1437336497-4072-1-git-send-email-philipoakley@iee.org","subject":"[PATCH v2 06/16] engine.pl: Properly accept quoted spaces in filenames","fromName":"Philip Oakley","fromEmail":"philipoakley@iee.org","sentAt":"2015-07-19T20:08:06Z","receivedAt":"2015-07-19T20:08:06Z","isPatch":true,"sender":{"key":"philipoakley@iee.email","avatar":"https://avatars.githubusercontent.com/u/914343?v=4"},"body":"The engine.pl script barfs on the properly quoted spaces in\nfilename options prevalent on Windows. Use shellwords() rather\nthan split() to separate such options.\n\nHelped-by: Junio C Hamano <gitster@pobox.com>\nSigned-off-by: Philip Oakley <philipoakley@iee.org>\n---\nJunio's help at gmane.comp.version-control.msysgit/21145 (2014-11-21)\n& gmane.comp.version-control.msysgit/21147 (2014-11-21)\n---\n contrib/buildsystems/engine.pl | 7 ++++---\n 1 file changed, 4 insertions(+), 3 deletions(-)\n\ndiff --git a/contrib/buildsystems/engine.pl b/contrib/buildsystems/engine.pl\nindex c8a5258..24b8992 100755\n--- a/contrib/buildsystems/engine.pl\n+++ b/contrib/buildsystems/engine.pl\n@@ -12,6 +12,7 @@ use File::Basename;\n use File::Spec;\n use Cwd;\n use Generators;\n+use Text::ParseWords;\n \n my (%build_structure, %compile_options, @makedry);\n my $out_dir = getcwd();\n@@ -231,7 +232,7 @@ sub removeDuplicates\n sub handleCompileLine\n {\n     my ($line, $lineno) = @_;\n-    my @parts = split(' ', $line);\n+    my @parts = shellwords($line);\n     my $sourcefile;\n     shift(@parts); # ignore cmd\n     while (my $part = shift @parts) {\n@@ -265,7 +266,7 @@ sub handleLibLine\n     my (@objfiles, @lflags, $libout, $part);\n     # kill cmd and rm 'prefix'\n     $line =~ s/^rm -f .* && .* rcs //;\n-    my @parts = split(' ', $line);\n+    my @parts = shellwords($line);\n     while ($part = shift @parts) {\n         if ($part =~ /^-/) {\n             push(@lflags, $part);\n@@ -306,7 +307,7 @@ sub handleLinkLine\n {\n     my ($line, $lineno) = @_;\n     my (@objfiles, @lflags, @libs, $appout, $part);\n-    my @parts = split(' ', $line);\n+    my @parts = shellwords($line);\n     shift(@parts); # ignore cmd\n     while ($part = shift @parts) {\n         if ($part =~ /^-IGNORE/) {\n-- \n2.4.2.windows.1.5.gd32afb6\n\n-- \n-- \n*** Please reply-to-all at all times ***\n*** (do not pretend to know who is subscribed and who is not) ***\n*** Please avoid top-posting. ***\nThe msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.\n\nYou received this message because you are subscribed to the Google\nGroups \"msysGit\" group.\nTo post to this group, send email to msysgit@googlegroups.com\nTo unsubscribe from this group, send email to\nmsysgit+unsubscribe@googlegroups.com\nFor more options, and view previous threads, visit this group at\nhttp://groups.google.com/group/msysgit?hl=en_US?hl=en\n\n--- \nYou received this message because you are subscribed to the Google Groups \"Git for Windows\" group.\nTo unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.\nFor more options, visit https://groups.google.com/d/optout.\n"},{"id":"266446","messageId":"1437336497-4072-8-git-send-email-philipoakley@iee.org","threadId":"39895","inReplyTo":"1437336497-4072-1-git-send-email-philipoakley@iee.org","subject":"[PATCH v2 07/16] engine.pl: Fix i18n -o option in msvc buildsystem generator","fromName":"Philip Oakley","fromEmail":"philipoakley@iee.org","sentAt":"2015-07-19T20:08:07Z","receivedAt":"2015-07-19T20:08:07Z","isPatch":true,"sender":{"key":"philipoakley@iee.email","avatar":"https://avatars.githubusercontent.com/u/914343?v=4"},"body":"The i18n 5e9637c (i18n: add infrastructure for translating\nGit with gettext, 2011-11-18) introduced an extra '-o' option\ninto the make file.\n\nIf the msvc buildsystem is run without NO_GETTEXT being set\nthen this broke the engine.pl code for extracting the git.sln\nfor msvc gui-IDE. The setting of NO_GETTEXT was not fixed until\nlater, relative to the Msysgit project where this issue was being\ninvestigated.\n\nThe presence of these options in the Makefile output should not\ncompromise the derived build structure. They should be ignored.\n\nAdd tests to remove these non linker options, in same vein as\n74cf9bd (engine.pl: Fix a recent breakage of the buildsystem\ngenerator, 2010-01-22).\n\nSigned-off-by: Philip Oakley <philipoakley@iee.org>\n---\n contrib/buildsystems/engine.pl | 6 ++++++\n 1 file changed, 6 insertions(+)\n\ndiff --git a/contrib/buildsystems/engine.pl b/contrib/buildsystems/engine.pl\nindex 24b8992..60c7a7d 100755\n--- a/contrib/buildsystems/engine.pl\n+++ b/contrib/buildsystems/engine.pl\n@@ -141,6 +141,12 @@ sub parseMakeOutput\n             next;\n         }\n \n+        if ($text =~ /^(mkdir|msgfmt) /) {\n+            # options to the Portable Object translations\n+            # the line \"mkdir ... && msgfmt ...\" contains no linker options\n+            next;\n+        }\n+\n         if($text =~ / -c /) {\n             # compilation\n             handleCompileLine($text, $line);\n-- \n2.4.2.windows.1.5.gd32afb6\n\n-- \n-- \n*** Please reply-to-all at all times ***\n*** (do not pretend to know who is subscribed and who is not) ***\n*** Please avoid top-posting. ***\nThe msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.\n\nYou received this message because you are subscribed to the Google\nGroups \"msysGit\" group.\nTo post to this group, send email to msysgit@googlegroups.com\nTo unsubscribe from this group, send email to\nmsysgit+unsubscribe@googlegroups.com\nFor more options, and view previous threads, visit this group at\nhttp://groups.google.com/group/msysgit?hl=en_US?hl=en\n\n--- \nYou received this message because you are subscribed to the Google Groups \"Git for Windows\" group.\nTo unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.\nFor more options, visit https://groups.google.com/d/optout.\n"},{"id":"266449","messageId":"1437336497-4072-9-git-send-email-philipoakley@iee.org","threadId":"39895","inReplyTo":"1437336497-4072-1-git-send-email-philipoakley@iee.org","subject":"[PATCH v2 08/16] engine.pl: ignore invalidcontinue.obj which is known to MSVC","fromName":"Philip Oakley","fromEmail":"philipoakley@iee.org","sentAt":"2015-07-19T20:08:08Z","receivedAt":"2015-07-19T20:08:08Z","isPatch":true,"sender":{"key":"philipoakley@iee.email","avatar":"https://avatars.githubusercontent.com/u/914343?v=4"},"body":"Commit 4b623d8 (MSVC: link in invalidcontinue.obj for better\nPOSIX compatibility, 2014-03-29) is not processed correctly\nby the buildsystem. Ignore it.\n\nAlso split the .o and .obj processing; 'make' does not produce .obj\nfiles. Only substitute filenames ending with .o when generating the\nsource .c filename.\n\nSigned-off-by: Philip Oakley <philipoakley@iee.org>\n---\n contrib/buildsystems/engine.pl | 10 +++++++---\n 1 file changed, 7 insertions(+), 3 deletions(-)\n\ndiff --git a/contrib/buildsystems/engine.pl b/contrib/buildsystems/engine.pl\nindex 60c7a7d..9db3d43 100755\n--- a/contrib/buildsystems/engine.pl\n+++ b/contrib/buildsystems/engine.pl\n@@ -289,7 +289,7 @@ sub handleLibLine\n #    exit(1);\n     foreach (@objfiles) {\n         my $sourcefile = $_;\n-        $sourcefile =~ s/\\.o/.c/;\n+        $sourcefile =~ s/\\.o$/.c/;\n         push(@sources, $sourcefile);\n         push(@cflags, @{$compile_options{\"${sourcefile}_CFLAGS\"}});\n         push(@defines, @{$compile_options{\"${sourcefile}_DEFINES\"}});\n@@ -333,8 +333,12 @@ sub handleLinkLine\n         } elsif ($part =~ /\\.(a|lib)$/) {\n             $part =~ s/\\.a$/.lib/;\n             push(@libs, $part);\n-        } elsif ($part =~ /\\.(o|obj)$/) {\n+        } elsif ($part eq 'invalidcontinue.obj') {\n+            # ignore - known to MSVC\n+        } elsif ($part =~ /\\.o$/) {\n             push(@objfiles, $part);\n+        } elsif ($part =~ /\\.obj$/) {\n+            # do nothing, 'make' should not be producing .obj, only .o files\n         } else {\n             die \"Unhandled link option @ line $lineno: $part\";\n         }\n@@ -343,7 +347,7 @@ sub handleLinkLine\n #    exit(1);\n     foreach (@objfiles) {\n         my $sourcefile = $_;\n-        $sourcefile =~ s/\\.o/.c/;\n+        $sourcefile =~ s/\\.o$/.c/;\n         push(@sources, $sourcefile);\n         push(@cflags, @{$compile_options{\"${sourcefile}_CFLAGS\"}});\n         push(@defines, @{$compile_options{\"${sourcefile}_DEFINES\"}});\n-- \n2.4.2.windows.1.5.gd32afb6\n\n-- \n-- \n*** Please reply-to-all at all times ***\n*** (do not pretend to know who is subscribed and who is not) ***\n*** Please avoid top-posting. ***\nThe msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.\n\nYou received this message because you are subscribed to the Google\nGroups \"msysGit\" group.\nTo post to this group, send email to msysgit@googlegroups.com\nTo unsubscribe from this group, send email to\nmsysgit+unsubscribe@googlegroups.com\nFor more options, and view previous threads, visit this group at\nhttp://groups.google.com/group/msysgit?hl=en_US?hl=en\n\n--- \nYou received this message because you are subscribed to the Google Groups \"Git for Windows\" group.\nTo unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.\nFor more options, visit https://groups.google.com/d/optout.\n"},{"id":"266448","messageId":"1437336497-4072-10-git-send-email-philipoakley@iee.org","threadId":"39895","inReplyTo":"1437336497-4072-1-git-send-email-philipoakley@iee.org","subject":"[PATCH v2 09/16] engine.pl: name the msvc buildsystem's makedry error file","fromName":"Philip Oakley","fromEmail":"philipoakley@iee.org","sentAt":"2015-07-19T20:08:09Z","receivedAt":"2015-07-19T20:08:09Z","isPatch":true,"sender":{"key":"philipoakley@iee.email","avatar":"https://avatars.githubusercontent.com/u/914343?v=4"},"body":"Save the stderr from the dry MSVC make to a well named file for\nlater review. Use 'msvc-build-makedryerrors.txt' which should be\nobvious as to its source, and is not ignored by 'git status'.\n\nSigned-off-by: Philip Oakley <philipoakley@iee.org>\n---\nfixed false mode change:- Junio's report (last line of)\nhttp://marc.info/?l=git&m=143524504500824 (2015-06-25),\n\nThe cause was probably an early 'commit --amend' during a\nrebase, and using the git gui to unstage the whole commit, then\npick up and commit hunks one at a time. Unfortunately, on Msysgit/g4w\ncore.filemode is false, so the execute bit was lost during the\nunstage, never noticed, and there's no simple way of adding it back.\n\nDiscussion on correcting file mode on msysgit/git4Windows is at\nhttps://groups.google.com/forum/#!topic/msysgit/zwH-qj0xR48\n---\n contrib/buildsystems/engine.pl | 5 ++++-\n 1 file changed, 4 insertions(+), 1 deletion(-)\n\ndiff --git a/contrib/buildsystems/engine.pl b/contrib/buildsystems/engine.pl\nindex 9db3d43..a6999b6 100755\n--- a/contrib/buildsystems/engine.pl\n+++ b/contrib/buildsystems/engine.pl\n@@ -73,7 +73,10 @@ Running GNU Make to figure out build structure...\n EOM\n \n # Pipe a make --dry-run into a variable, if not already loaded from file\n-@makedry = `cd $git_dir && make -n MSVC=1 V=1 2>/dev/null` if !@makedry;\n+# Capture the make dry stderr to file for review (will be empty for a release build).\n+\n+my $ErrsFile = \"msvc-build-makedryerrors.txt\";\n+@makedry = `cd $git_dir && make -n MSVC=1 V=1 2>$ErrsFile` if !@makedry;\n \n # Parse the make output into usable info\n parseMakeOutput();\n-- \n2.4.2.windows.1.5.gd32afb6\n\n-- \n-- \n*** Please reply-to-all at all times ***\n*** (do not pretend to know who is subscribed and who is not) ***\n*** Please avoid top-posting. ***\nThe msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.\n\nYou received this message because you are subscribed to the Google\nGroups \"msysGit\" group.\nTo post to this group, send email to msysgit@googlegroups.com\nTo unsubscribe from this group, send email to\nmsysgit+unsubscribe@googlegroups.com\nFor more options, and view previous threads, visit this group at\nhttp://groups.google.com/group/msysgit?hl=en_US?hl=en\n\n--- \nYou received this message because you are subscribed to the Google Groups \"Git for Windows\" group.\nTo unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.\nFor more options, visit https://groups.google.com/d/optout.\n"},{"id":"266451","messageId":"1437336497-4072-11-git-send-email-philipoakley@iee.org","threadId":"39895","inReplyTo":"1437336497-4072-1-git-send-email-philipoakley@iee.org","subject":"[PATCH v2 10/16] engine.pl: delete the captured stderr file if empty","fromName":"Philip Oakley","fromEmail":"philipoakley@iee.org","sentAt":"2015-07-19T20:08:10Z","receivedAt":"2015-07-19T20:08:10Z","isPatch":true,"sender":{"key":"philipoakley@iee.email","avatar":"https://avatars.githubusercontent.com/u/914343?v=4"},"body":"Keep the build clean of extraneous files if it is indeed clean.\nOtherwise leave the msvc-build-makedryerrors.txt file both as\na flag for any CI system or for manual debugging.\n\nNote that the file will contain the new values of the GIT_VERSION\nand GITGUI_VERSION if they were generated by the make file. They\nare omitted if the release is tagged and indentically defined in\ntheir respective GIT_VERSION_GEN file DEF_VER variables.\n\nSigned-off-by: Philip Oakley <philipoakley@iee.org>\n---\n contrib/buildsystems/engine.pl | 2 ++\n 1 file changed, 2 insertions(+)\n\ndiff --git a/contrib/buildsystems/engine.pl b/contrib/buildsystems/engine.pl\nindex a6999b6..020776e 100755\n--- a/contrib/buildsystems/engine.pl\n+++ b/contrib/buildsystems/engine.pl\n@@ -77,6 +77,8 @@ EOM\n \n my $ErrsFile = \"msvc-build-makedryerrors.txt\";\n @makedry = `cd $git_dir && make -n MSVC=1 V=1 2>$ErrsFile` if !@makedry;\n+# test for an empty Errors file and remove it\n+for ($ErrsFile) {unlink $_ if (-f $_) && (!-s $_);}\n \n # Parse the make output into usable info\n parseMakeOutput();\n-- \n2.4.2.windows.1.5.gd32afb6\n\n-- \n-- \n*** Please reply-to-all at all times ***\n*** (do not pretend to know who is subscribed and who is not) ***\n*** Please avoid top-posting. ***\nThe msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.\n\nYou received this message because you are subscribed to the Google\nGroups \"msysGit\" group.\nTo post to this group, send email to msysgit@googlegroups.com\nTo unsubscribe from this group, send email to\nmsysgit+unsubscribe@googlegroups.com\nFor more options, and view previous threads, visit this group at\nhttp://groups.google.com/group/msysgit?hl=en_US?hl=en\n\n--- \nYou received this message because you are subscribed to the Google Groups \"Git for Windows\" group.\nTo unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.\nFor more options, visit https://groups.google.com/d/optout.\n"},{"id":"266453","messageId":"1437336497-4072-12-git-send-email-philipoakley@iee.org","threadId":"39895","inReplyTo":"1437336497-4072-1-git-send-email-philipoakley@iee.org","subject":"[PATCH v2 11/16] engine.pl: add debug line to capture the dry-run","fromName":"Philip Oakley","fromEmail":"philipoakley@iee.org","sentAt":"2015-07-19T20:08:11Z","receivedAt":"2015-07-19T20:08:11Z","isPatch":true,"sender":{"key":"philipoakley@iee.email","avatar":"https://avatars.githubusercontent.com/u/914343?v=4"},"body":"Add a debug suggestion for capturing to file the stdout from the dry-run\nof the make file used in determining the msvc-build structure for easy\ndebugging.\n\nSigned-off-by: Philip Oakley <philipoakley@iee.org>\n---\n contrib/buildsystems/engine.pl | 1 +\n 1 file changed, 1 insertion(+)\n\ndiff --git a/contrib/buildsystems/engine.pl b/contrib/buildsystems/engine.pl\nindex 020776e..4a843f3 100755\n--- a/contrib/buildsystems/engine.pl\n+++ b/contrib/buildsystems/engine.pl\n@@ -76,6 +76,7 @@ EOM\n # Capture the make dry stderr to file for review (will be empty for a release build).\n \n my $ErrsFile = \"msvc-build-makedryerrors.txt\";\n+#@makedry = `cd $git_dir && make -n MSVC=1 V=1 1>makedry.txt 2>$ErrsFile`; # capture the dry run as a text file\n @makedry = `cd $git_dir && make -n MSVC=1 V=1 2>$ErrsFile` if !@makedry;\n # test for an empty Errors file and remove it\n for ($ErrsFile) {unlink $_ if (-f $_) && (!-s $_);}\n-- \n2.4.2.windows.1.5.gd32afb6\n\n-- \n-- \n*** Please reply-to-all at all times ***\n*** (do not pretend to know who is subscribed and who is not) ***\n*** Please avoid top-posting. ***\nThe msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.\n\nYou received this message because you are subscribed to the Google\nGroups \"msysGit\" group.\nTo post to this group, send email to msysgit@googlegroups.com\nTo unsubscribe from this group, send email to\nmsysgit+unsubscribe@googlegroups.com\nFor more options, and view previous threads, visit this group at\nhttp://groups.google.com/group/msysgit?hl=en_US?hl=en\n\n--- \nYou received this message because you are subscribed to the Google Groups \"Git for Windows\" group.\nTo unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.\nFor more options, visit https://groups.google.com/d/optout.\n"},{"id":"266455","messageId":"1437336497-4072-13-git-send-email-philipoakley@iee.org","threadId":"39895","inReplyTo":"1437336497-4072-1-git-send-email-philipoakley@iee.org","subject":"[PATCH v2 12/16] engine.pl: provide more debug print statements","fromName":"Philip Oakley","fromEmail":"philipoakley@iee.org","sentAt":"2015-07-19T20:08:12Z","receivedAt":"2015-07-19T20:08:12Z","isPatch":true,"sender":{"key":"philipoakley@iee.email","avatar":"https://avatars.githubusercontent.com/u/914343?v=4"},"body":"Assist developers transitioning between the two cultures\nby including appropriate, but commented out, debug statements.\n\nThe exception is when an unhandled compiler option is detected,\nwhere printing of the full line will supplement the line number and\noption part. Otherwise the OP has no immediate mechanism for\ninspecting the relevant part of the makedry output.\n\nThe commented out code is \"deactivated code\", not dead code, as per\nDO178B safety critical software development guideline [1].\n\nThese debug print statements act as a guide for a poor man's --verbose\noption. The test suite doesn't cover the contrib/buildsystems (or\nMsysgit's msvc-build) contributions so fails to notice breakages there-in.\n\nIt is doubly hard to get developers to ride both horses so, contrary to\nnormal convention, retain selected debug statements as a safety net for\nthose willing to try.\n\n[1] Dead code : Dead code is source code (and it is a part of binary code)\nthat is not executed in the final system and it will be not having\ntraceability to any requirements (one can say unintentional code).\n\nDeactivated code: code which is commented out or removed via #ifdef's\n(it is not a part of final binary code) and it will be having\ntraceability to its low level requirements (its a intentional code and\nit can be activated in some configurations through hardware traps for\ndebugging or other purposes.\n\nSigned-off-by: Philip Oakley <philipoakley@iee.org>\n---\nMy response to Sebastian Schuberth's comment on dead code\nhttp://marc.info/?l=git&m=143630748919942&w=2 (2015-07-07)\n---\n contrib/buildsystems/engine.pl | 4 ++++\n 1 file changed, 4 insertions(+)\n\ndiff --git a/contrib/buildsystems/engine.pl b/contrib/buildsystems/engine.pl\nindex 4a843f3..3238d16 100755\n--- a/contrib/buildsystems/engine.pl\n+++ b/contrib/buildsystems/engine.pl\n@@ -41,6 +41,7 @@ EOM\n # Parse command-line options\n while (@ARGV) {\n     my $arg = shift @ARGV;\n+\t#print \"Arg: $arg \\n\";\n     if (\"$arg\" eq \"-h\" || \"$arg\" eq \"--help\" || \"$arg\" eq \"-?\") {\n \tshowUsage();\n \texit(0);\n@@ -129,6 +130,7 @@ sub parseMakeOutput\n     print \"Parsing GNU Make output to figure out build structure...\\n\";\n     my $line = 0;\n     while (my $text = shift @makedry) {\n+\t\t#print \"Make: $text\\n\"; # show the makedry line\n         my $ate_next;\n         do {\n             $ate_next = 0;\n@@ -263,6 +265,7 @@ sub handleCompileLine\n         } elsif ($part =~ /\\.(c|cc|cpp)$/) {\n             $sourcefile = $part;\n         } else {\n+            print \"full line: $line\\n\";\n             die \"Unhandled compiler option @ line $lineno: $part\";\n         }\n     }\n@@ -288,6 +291,7 @@ sub handleLibLine\n             $libout = $part;\n             $libout =~ s/\\.a$//;\n         } else {\n+            print \"full line: $line\\n\";\n             die \"Unhandled lib option @ line $lineno: $part\";\n         }\n     }\n-- \n2.4.2.windows.1.5.gd32afb6\n\n-- \n-- \n*** Please reply-to-all at all times ***\n*** (do not pretend to know who is subscribed and who is not) ***\n*** Please avoid top-posting. ***\nThe msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.\n\nYou received this message because you are subscribed to the Google\nGroups \"msysGit\" group.\nTo post to this group, send email to msysgit@googlegroups.com\nTo unsubscribe from this group, send email to\nmsysgit+unsubscribe@googlegroups.com\nFor more options, and view previous threads, visit this group at\nhttp://groups.google.com/group/msysgit?hl=en_US?hl=en\n\n--- \nYou received this message because you are subscribed to the Google Groups \"Git for Windows\" group.\nTo unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.\nFor more options, visit https://groups.google.com/d/optout.\n"},{"id":"266456","messageId":"1437336497-4072-14-git-send-email-philipoakley@iee.org","threadId":"39895","inReplyTo":"1437336497-4072-1-git-send-email-philipoakley@iee.org","subject":"[PATCH v2 13/16] Vcproj.pm: list git.exe first to be startup project","fromName":"Philip Oakley","fromEmail":"philipoakley@iee.org","sentAt":"2015-07-19T20:08:13Z","receivedAt":"2015-07-19T20:08:13Z","isPatch":true,"sender":{"key":"philipoakley@iee.email","avatar":"https://avatars.githubusercontent.com/u/914343?v=4"},"body":"Visual Studio takes the first listed application/library as the default\nstartup project [1].\n\nDetect the 'git' project and place it the head of the apps list, rather\nthan the tail.\n\nExport the apps list before libs list for both the projects and global\nstructures of the .sln file.\n\n[1] http://stackoverflow.com/questions/1238553/\nvs2008-where-is-the-startup-project-setting-stored-for-a-solution\n    \"In the solution file, there are a list of pseudo-XML \"Project\"\n    entries. It turns out that whatever is the first one ends up as\n    the Startup Project, unless it’s overridden in the suo file. Argh.\n    I just rearranged the order in the file and it’s good.\"\n\n    \"just moving the pseudo-xml isn't enough. You also have to move the\n    group of entries in the \"GlobalSection(ProjectConfigurationPlatforms)\n    = postSolution\" group that has the GUID of the project you moved to\n    the top. So there are two places to move lines.\"\n\nSigned-off-by: Philip Oakley <philipoakley@iee.org>\n---\n contrib/buildsystems/Generators/Vcproj.pm | 33 ++++++++++++++++++-------------\n 1 file changed, 19 insertions(+), 14 deletions(-)\n\ndiff --git a/contrib/buildsystems/Generators/Vcproj.pm b/contrib/buildsystems/Generators/Vcproj.pm\nindex 1b01d58..cc2fa21 100644\n--- a/contrib/buildsystems/Generators/Vcproj.pm\n+++ b/contrib/buildsystems/Generators/Vcproj.pm\n@@ -560,20 +560,18 @@ sub createGlueProject {\n     foreach (@apps) {\n         $_ =~ s/\\//_/g;\n         $_ =~ s/\\.exe//;\n-        push(@tmp, $_);\n+        if ($_ eq \"git\" ) {\n+            unshift(@tmp, $_);\n+        } else {\n+            push(@tmp, $_);\n+        }\n     }\n     @apps = @tmp;\n \n     open F, \">git.sln\" || die \"Could not open git.sln for writing!\\n\";\n     binmode F, \":crlf\";\n     print F \"$SLN_HEAD\";\n-    foreach (@libs) {\n-        my $libname = $_;\n-        my $uuid = $build_structure{\"LIBS_${libname}_GUID\"};\n-        print F \"$SLN_PRE\";\n-        print F \"\\\"${libname}\\\", \\\"${libname}\\\\${libname}.vcproj\\\", \\\"${uuid}\\\"\";\n-        print F \"$SLN_POST\";\n-    }\n+\n     my $uuid_libgit = $build_structure{\"LIBS_libgit_GUID\"};\n     my $uuid_xdiff_lib = $build_structure{\"LIBS_xdiff_lib_GUID\"};\n     foreach (@apps) {\n@@ -587,6 +585,13 @@ sub createGlueProject {\n         print F \"\tEndProjectSection\";\n         print F \"$SLN_POST\";\n     }\n+    foreach (@libs) {\n+        my $libname = $_;\n+        my $uuid = $build_structure{\"LIBS_${libname}_GUID\"};\n+        print F \"$SLN_PRE\";\n+        print F \"\\\"${libname}\\\", \\\"${libname}\\\\${libname}.vcproj\\\", \\\"${uuid}\\\"\";\n+        print F \"$SLN_POST\";\n+    }\n \n     print F << \"EOM\";\n Global\n@@ -598,17 +603,17 @@ EOM\n     print F << \"EOM\";\n \tGlobalSection(ProjectConfigurationPlatforms) = postSolution\n EOM\n-    foreach (@libs) {\n-        my $libname = $_;\n-        my $uuid = $build_structure{\"LIBS_${libname}_GUID\"};\n+    foreach (@apps) {\n+        my $appname = $_;\n+        my $uuid = $build_structure{\"APPS_${appname}_GUID\"};\n         print F \"\\t\\t${uuid}.Debug|Win32.ActiveCfg = Debug|Win32\\n\";\n         print F \"\\t\\t${uuid}.Debug|Win32.Build.0 = Debug|Win32\\n\";\n         print F \"\\t\\t${uuid}.Release|Win32.ActiveCfg = Release|Win32\\n\";\n         print F \"\\t\\t${uuid}.Release|Win32.Build.0 = Release|Win32\\n\";\n     }\n-    foreach (@apps) {\n-        my $appname = $_;\n-        my $uuid = $build_structure{\"APPS_${appname}_GUID\"};\n+    foreach (@libs) {\n+        my $libname = $_;\n+        my $uuid = $build_structure{\"LIBS_${libname}_GUID\"};\n         print F \"\\t\\t${uuid}.Debug|Win32.ActiveCfg = Debug|Win32\\n\";\n         print F \"\\t\\t${uuid}.Debug|Win32.Build.0 = Debug|Win32\\n\";\n         print F \"\\t\\t${uuid}.Release|Win32.ActiveCfg = Release|Win32\\n\";\n-- \n2.4.2.windows.1.5.gd32afb6\n\n-- \n-- \n*** Please reply-to-all at all times ***\n*** (do not pretend to know who is subscribed and who is not) ***\n*** Please avoid top-posting. ***\nThe msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.\n\nYou received this message because you are subscribed to the Google\nGroups \"msysGit\" group.\nTo post to this group, send email to msysgit@googlegroups.com\nTo unsubscribe from this group, send email to\nmsysgit+unsubscribe@googlegroups.com\nFor more options, and view previous threads, visit this group at\nhttp://groups.google.com/group/msysgit?hl=en_US?hl=en\n\n--- \nYou received this message because you are subscribed to the Google Groups \"Git for Windows\" group.\nTo unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.\nFor more options, visit https://groups.google.com/d/optout.\n"},{"id":"266457","messageId":"1437336497-4072-15-git-send-email-philipoakley@iee.org","threadId":"39895","inReplyTo":"1437336497-4072-1-git-send-email-philipoakley@iee.org","subject":"[PATCH v2 14/16] vcbuild/readme: Improve layout and reference msvc-build script","fromName":"Philip Oakley","fromEmail":"philipoakley@iee.org","sentAt":"2015-07-19T20:08:14Z","receivedAt":"2015-07-19T20:08:14Z","isPatch":true,"sender":{"key":"philipoakley@iee.email","avatar":"https://avatars.githubusercontent.com/u/914343?v=4"},"body":"Layout the 'either/or' with more white space to clarify\nwhich alternatives are matched up.\n\nReference the Msysgit build script which automates one sequence of options.\n\nSigned-off-by: Philip Oakley <philipoakley@iee.org>\n---\n compat/vcbuild/README | 27 +++++++++++++++++++--------\n 1 file changed, 19 insertions(+), 8 deletions(-)\n\ndiff --git a/compat/vcbuild/README b/compat/vcbuild/README\nindex df8a657..7548dc4 100644\n--- a/compat/vcbuild/README\n+++ b/compat/vcbuild/README\n@@ -3,20 +3,24 @@ The Steps of Build Git with VS2008\n 1. You need the build environment, which contains the Git dependencies\n    to be able to compile, link and run Git with MSVC.\n \n-   You can either use the binary repository:\n+   You can either:\n+      use the binary repository:\n \n        WWW: http://repo.or.cz/w/msvcgit.git\n        Git: git clone git://repo.or.cz/msvcgit.git\n        Zip: http://repo.or.cz/w/msvcgit.git?a=snapshot;h=master;sf=zip\n \n-   and call the setup_32bit_env.cmd batch script before compiling Git,\n-   (see repo/package README for details), or the source repository:\n+      and call the setup_32bit_env.cmd batch script before compiling Git,\n+     (see repo/package README for details),\n+\n+   or:\n+      use the source repository:\n \n        WWW: http://repo.or.cz/w/gitbuild.git\n        Git: git clone git://repo.or.cz/gitbuild.git\n        Zip: (None, as it's a project with submodules)\n \n-   and build the support libs as instructed in that repo/package.\n+     and build the support libs as instructed in that repo/package.\n \n 2. Ensure you have the msysgit environment in your path, so you have\n    GNU Make, bash and perl available.\n@@ -33,18 +37,25 @@ The Steps of Build Git with VS2008\n        make common-cmds.h\n    to generate the common-cmds.h file needed to compile git.\n \n-4. Then either build Git with the GNU Make Makefile in the Git projects\n-   root\n+4. Then either\n+\n+     build Git with the GNU Make Makefile in the Git projects root\n        make MSVC=1\n-   or generate Visual Studio solution/projects (.sln/.vcproj) with the\n+   or\n+\n+   generate Visual Studio solution/projects (.sln/.vcproj) with the\n    command\n        perl contrib/buildsystems/generate -g Vcproj\n    and open and build the solution with the IDE\n        devenv git.sln /useenv\n-   or build with the IDE build engine directly from the command line\n+     or\n+\n+   build with the IDE build engine directly from the command line\n        devenv git.sln /useenv /build \"Release|Win32\"\n    The /useenv option is required, so Visual Studio picks up the\n    environment variables for the support libraries required to build\n    Git, which you set up in step 1.\n \n Done!\n+\n+Or, use the Msysgit msvc-build script; available from that project.\n-- \n2.4.2.windows.1.5.gd32afb6\n\n-- \n-- \n*** Please reply-to-all at all times ***\n*** (do not pretend to know who is subscribed and who is not) ***\n*** Please avoid top-posting. ***\nThe msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.\n\nYou received this message because you are subscribed to the Google\nGroups \"msysGit\" group.\nTo post to this group, send email to msysgit@googlegroups.com\nTo unsubscribe from this group, send email to\nmsysgit+unsubscribe@googlegroups.com\nFor more options, and view previous threads, visit this group at\nhttp://groups.google.com/group/msysgit?hl=en_US?hl=en\n\n--- \nYou received this message because you are subscribed to the Google Groups \"Git for Windows\" group.\nTo unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.\nFor more options, visit https://groups.google.com/d/optout.\n"},{"id":"266458","messageId":"1437336497-4072-16-git-send-email-philipoakley@iee.org","threadId":"39895","inReplyTo":"1437336497-4072-1-git-send-email-philipoakley@iee.org","subject":"[PATCH v2 14/16] vcbuild/readme: Improve layout","fromName":"Philip Oakley","fromEmail":"philipoakley@iee.org","sentAt":"2015-07-19T20:08:15Z","receivedAt":"2015-07-19T20:08:15Z","isPatch":true,"sender":{"key":"philipoakley@iee.email","avatar":"https://avatars.githubusercontent.com/u/914343?v=4"},"body":"Layout the 'either/or' with more white space to clarify\nwhich alternatives are matched up.\n\nA revised copy of the Msysgit msvc-build script which automates this\nREADME is introduced in the next commit.\n\nSigned-off-by: Philip Oakley <philipoakley@iee.org>\n---\n compat/vcbuild/README | 25 +++++++++++++++++--------\n 1 file changed, 17 insertions(+), 8 deletions(-)\n\ndiff --git a/compat/vcbuild/README b/compat/vcbuild/README\nindex df8a657..ad8633e 100644\n--- a/compat/vcbuild/README\n+++ b/compat/vcbuild/README\n@@ -3,20 +3,24 @@ The Steps of Build Git with VS2008\n 1. You need the build environment, which contains the Git dependencies\n    to be able to compile, link and run Git with MSVC.\n \n-   You can either use the binary repository:\n+   You can either:\n+      use the binary repository:\n \n        WWW: http://repo.or.cz/w/msvcgit.git\n        Git: git clone git://repo.or.cz/msvcgit.git\n        Zip: http://repo.or.cz/w/msvcgit.git?a=snapshot;h=master;sf=zip\n \n-   and call the setup_32bit_env.cmd batch script before compiling Git,\n-   (see repo/package README for details), or the source repository:\n+      and call the setup_32bit_env.cmd batch script before compiling Git,\n+     (see repo/package README for details),\n+\n+   or:\n+      use the source repository:\n \n        WWW: http://repo.or.cz/w/gitbuild.git\n        Git: git clone git://repo.or.cz/gitbuild.git\n        Zip: (None, as it's a project with submodules)\n \n-   and build the support libs as instructed in that repo/package.\n+     and build the support libs as instructed in that repo/package.\n \n 2. Ensure you have the msysgit environment in your path, so you have\n    GNU Make, bash and perl available.\n@@ -33,15 +37,20 @@ The Steps of Build Git with VS2008\n        make common-cmds.h\n    to generate the common-cmds.h file needed to compile git.\n \n-4. Then either build Git with the GNU Make Makefile in the Git projects\n-   root\n+4. Then either\n+\n+     build Git with the GNU Make Makefile in the Git projects root\n        make MSVC=1\n-   or generate Visual Studio solution/projects (.sln/.vcproj) with the\n+   or\n+\n+   generate Visual Studio solution/projects (.sln/.vcproj) with the\n    command\n        perl contrib/buildsystems/generate -g Vcproj\n    and open and build the solution with the IDE\n        devenv git.sln /useenv\n-   or build with the IDE build engine directly from the command line\n+     or\n+\n+   build with the IDE build engine directly from the command line\n        devenv git.sln /useenv /build \"Release|Win32\"\n    The /useenv option is required, so Visual Studio picks up the\n    environment variables for the support libraries required to build\n-- \n2.4.2.windows.1.5.gd32afb6\n\n-- \n-- \n*** Please reply-to-all at all times ***\n*** (do not pretend to know who is subscribed and who is not) ***\n*** Please avoid top-posting. ***\nThe msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.\n\nYou received this message because you are subscribed to the Google\nGroups \"msysGit\" group.\nTo post to this group, send email to msysgit@googlegroups.com\nTo unsubscribe from this group, send email to\nmsysgit+unsubscribe@googlegroups.com\nFor more options, and view previous threads, visit this group at\nhttp://groups.google.com/group/msysgit?hl=en_US?hl=en\n\n--- \nYou received this message because you are subscribed to the Google Groups \"Git for Windows\" group.\nTo unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.\nFor more options, visit https://groups.google.com/d/optout.\n"},{"id":"266454","messageId":"1437336497-4072-17-git-send-email-philipoakley@iee.org","threadId":"39895","inReplyTo":"1437336497-4072-1-git-send-email-philipoakley@iee.org","subject":"[PATCH v2 15/16] msvc-build: add complete Microsoft Visual C compilation script","fromName":"Philip Oakley","fromEmail":"philipoakley@iee.org","sentAt":"2015-07-19T20:08:16Z","receivedAt":"2015-07-19T20:08:16Z","isPatch":true,"sender":{"key":"philipoakley@iee.email","avatar":"https://avatars.githubusercontent.com/u/914343?v=4"},"body":"Implement the README to facilitate cross community development.\nInclude comments for those Windows folks not yet fully familiar\nwith bash commands.\n\nThis is identical to the msysgit script, except for the 'cd toplevel'\nstep, and comments for the edification of converts from Windows.\n\nOriginal author: Johannes Schindelin (2011-11-01 3142da4 : Add a script\nto make the MSVC build more convenient) on Msysgit\nhttps://github.com/msysgit/msysgit/commit/3142da4038 and subsequent\ndevelopment.\n\nThe --gui clean now also removes the VS2010 .sdf file, and the\nvcs-svn_lib & xdiff_lib directories.\n\nThe script is made executable in line with $msysgit/cb9836b8a\n(Mark scripts and binaries in /bin/ as executable, 2012-06-26)\n\nSigned-off-by: Philip Oakley <philipoakley@iee.org>\n---\n\nTODO:\nresolve any further cleaning of newer VS2010... build products.\n---\n compat/vcbuild/README             |  2 +\n compat/vcbuild/scripts/msvc-build | 86 +++++++++++++++++++++++++++++++++++++++\n 2 files changed, 88 insertions(+)\n create mode 100755 compat/vcbuild/scripts/msvc-build\n\ndiff --git a/compat/vcbuild/README b/compat/vcbuild/README\nindex ad8633e..faaea69 100644\n--- a/compat/vcbuild/README\n+++ b/compat/vcbuild/README\n@@ -57,3 +57,5 @@ The Steps of Build Git with VS2008\n    Git, which you set up in step 1.\n \n Done!\n+\n+Or, use the msvc-build script; available from /compat/vcbuild/scripts/.\ndiff --git a/compat/vcbuild/scripts/msvc-build b/compat/vcbuild/scripts/msvc-build\nnew file mode 100755\nindex 0000000..d67203b\n--- /dev/null\n+++ b/compat/vcbuild/scripts/msvc-build\n@@ -0,0 +1,86 @@\n+#!/bin/sh\n+\n+# This msvc-build command should be executed from the msysgit directory level\n+# This is so that the 'cd/git' step works and the subequent operations have the right msysgit super directory.\n+set -e # Exit immediately if a command exits with a nonzero exit status.\n+\n+gui=\n+clean=\n+while test $# -gt 0\n+do\n+\tcase \"$1\" in\n+\t--gui|--dev|--devenv|--vs|--visual-studio)\n+\t\tgui=t\n+\t\t;;\n+\tclean)\n+\t\tclean=t\n+\t\t;;\n+\t*)\n+\t\techo \"Usage: $0 [--vs] [clean]\" >&2\n+\t\texit 1\n+\t\t;;\n+\tesac\n+\tshift\n+done\n+\n+cd $(git rev-parse --show-toplevel)\n+\n+case \"$clean\" in\n+t)\n+\tcase \"$gui\" in\n+\tt)\n+\t\trm -rf git.sln git.sdf libgit vcs-svn_lib xdiff_lib\n+\t\t# remove any other new VS2010... stuff as well: rm -rf  ?\n+\t\t;;\n+\t'')\n+\t\tmake clean\n+\t\t;;\n+\tesac\n+\texit\n+\t;;\n+esac\n+\n+to_ignore=\"$(git ls-files --other --exclude-standard msvcgit msvc-build.cmd)\"\n+test -z \"$to_ignore\" || {\n+\tmkdir -p .git/info &&\n+\techo \"$to_ignore\" |\n+\tsed 's/^/\\//' >> .git/info/exclude\n+} || exit\n+\n+test -d msvcgit || git clone git://repo.or.cz/msvcgit.git\n+\n+vsvars=\n+# assume cl.exe will populate its relevant environment variables\n+# if cl.exe does not exist, populate vsvars with the most recent Visual Studio path\n+type cl.exe 2> /dev/null ||\n+vsvars=\"$(ls -t \\\n+\t\"$PROGRAMFILES/Microsoft Visual Studio\"*/Common7/Tools/vsvars32.bat |\n+\thead -n 1)\"\n+\n+\n+config_mak=\n+# if a config.mak file (dot, not underscore) exists, back it up,\n+# remember the backup file name in config_mak.\n+test -f config.mak &&\n+config_mak=config.mak.bup.$$ &&\n+mv config.mak $config_mak\n+\n+cat > config.mak << EOF\n+CFLAGS += -Imsvcgit/32bits/include\n+LDFLAGS += -Lmsvcgit/32bits/lib\n+EOF\n+\n+echo \"call \\\"$vsvars\\\"\" > msvc-build.cmd\n+if test -z \"$gui\"\n+then\n+\techo 'make MSVC=1' >> msvc-build.cmd\n+else\n+\techo 'perl contrib/buildsystems/generate -g Vcproj' >> msvc-build.cmd\n+\techo 'start git.sln' >> msvc-build.cmd\n+fi\n+\n+cmd /c msvc-build.cmd\n+\n+# if we made a backup file (name in config_mak), then restore it.\n+test -z \"$config_mak\" ||\n+mv $config_mak config.mak\n-- \n2.4.2.windows.1.5.gd32afb6\n\n-- \n-- \n*** Please reply-to-all at all times ***\n*** (do not pretend to know who is subscribed and who is not) ***\n*** Please avoid top-posting. ***\nThe msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.\n\nYou received this message because you are subscribed to the Google\nGroups \"msysGit\" group.\nTo post to this group, send email to msysgit@googlegroups.com\nTo unsubscribe from this group, send email to\nmsysgit+unsubscribe@googlegroups.com\nFor more options, and view previous threads, visit this group at\nhttp://groups.google.com/group/msysgit?hl=en_US?hl=en\n\n--- \nYou received this message because you are subscribed to the Google Groups \"Git for Windows\" group.\nTo unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.\nFor more options, visit https://groups.google.com/d/optout.\n"},{"id":"266452","messageId":"1437336497-4072-18-git-send-email-philipoakley@iee.org","threadId":"39895","inReplyTo":"1437336497-4072-1-git-send-email-philipoakley@iee.org","subject":"[PATCH v2 16/16] config.mak.uname: add MSVC No_SafeExeceptionHandler option","fromName":"Philip Oakley","fromEmail":"philipoakley@iee.org","sentAt":"2015-07-19T20:08:17Z","receivedAt":"2015-07-19T20:08:17Z","isPatch":true,"sender":{"key":"philipoakley@iee.email","avatar":"https://avatars.githubusercontent.com/u/914343?v=4"},"body":"Microsoft flipped the Windows Safe Exception Handling default\nin VS2013 so that zlib became unacceptable to certain OS versions\n(Vista and subsequent 32-bit OS's) without the addition of\nthe option -SAFESEH:NO.\n\nProvide a switch to disable the Safe Exeption Handler when required.\n\nThe option ImageHasSafeExceptionHandlers for VS2013 is not available in\nearlier versions, so use the SAFESEH:NO linker flag. See\nhttps://msdn.microsoft.com/en-us/library/9a89h429.aspx for\nfurther details.\n\nThis has only had limited testing due to the lack of a suitable system.\n\nHelped-by: Yue Lin Ho <b8732003@student.nsysu.edu.tw>\nSigned-off-by: Philip Oakley <philipoakley@iee.org>\n---\nJunio/my discussion on reviews: http://marc.info/?l=git&m=143526063906215&w=2 (2015-06-25)\nPatch series v1: https://github.com/msysgit/git/pull/318\nYue Lin Ho: https://github.com/msysgit/git/pull/318#issuecomment-81292918\n---\n config.mak.uname | 9 +++++++++\n 1 file changed, 9 insertions(+)\n\ndiff --git a/config.mak.uname b/config.mak.uname\nindex 943c439..1c27828 100644\n--- a/config.mak.uname\n+++ b/config.mak.uname\n@@ -1,5 +1,9 @@\n # Platform specific Makefile tweaks based on uname detection\n \n+# Define NO_SAFESEH if you need MSVC/Visual Studio to ignore the lack of\n+# Microsoft's Safe Exception Handling in libraries (such as zlib).\n+# Typically required for VS2013+/32-bit compilation on Vista+ versions.\n+\n uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not')\n uname_M := $(shell sh -c 'uname -m 2>/dev/null || echo not')\n uname_O := $(shell sh -c 'uname -o 2>/dev/null || echo not')\n@@ -385,6 +389,11 @@ ifeq ($(uname_S),Windows)\n \tPTHREAD_LIBS =\n \tlib =\n \tBASIC_CFLAGS += -DPROTECT_NTFS_DEFAULT=1\n+\n+ifdef NO_SAFESEH\n+\tLDFLAGS += -SAFESEH:NO\n+endif\n+\n ifndef DEBUG\n \tBASIC_CFLAGS += -GL -Os -MD\n \tBASIC_LDFLAGS += -LTCG\n-- \n2.4.2.windows.1.5.gd32afb6\n\n-- \n-- \n*** Please reply-to-all at all times ***\n*** (do not pretend to know who is subscribed and who is not) ***\n*** Please avoid top-posting. ***\nThe msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.\n\nYou received this message because you are subscribed to the Google\nGroups \"msysGit\" group.\nTo post to this group, send email to msysgit@googlegroups.com\nTo unsubscribe from this group, send email to\nmsysgit+unsubscribe@googlegroups.com\nFor more options, and view previous threads, visit this group at\nhttp://groups.google.com/group/msysgit?hl=en_US?hl=en\n\n--- \nYou received this message because you are subscribed to the Google Groups \"Git for Windows\" group.\nTo unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.\nFor more options, visit https://groups.google.com/d/optout.\n"},{"id":"266459","messageId":"E38778D2F5964B60974C9E95C88E2559@PhilipOakley","threadId":"39895","inReplyTo":"1437336497-4072-15-git-send-email-philipoakley@iee.org","subject":"Re: [PATCH v2 14/16] vcbuild/readme: Improve layout and reference msvc-build script","fromName":"Philip Oakley","fromEmail":"philipoakley@iee.org","sentAt":"2015-07-19T20:21:50Z","receivedAt":"2015-07-19T20:21:50Z","isPatch":true,"sender":{"key":"philipoakley@iee.email","avatar":"https://avatars.githubusercontent.com/u/914343?v=4"},"body":"From: \"Philip Oakley\" <philipoakley@iee.org>\nSent: Sunday, July 19, 2015 9:08 PM\n\nThis \"14/16\" is the wrong version accidently left over from a previous \ndraft.\nPlease use the other version with the shorter subject line.\n\nSorry for the noise / mistake.\n\n> Layout the 'either/or' with more white space to clarify\n> which alternatives are matched up.\n>\n> Reference the Msysgit build script which automates one sequence of \n> options.\n\nThis part has been dropped.\n>\n> Signed-off-by: Philip Oakley <philipoakley@iee.org>\n> ---\n[...]\n> Done!\n> +\n> +Or, use the Msysgit msvc-build script; available from that project.\n... has gone.\n\n> -- \n> 2.4.2.windows.1.5.gd32afb6\n>\n> \n\n-- \n-- \n*** Please reply-to-all at all times ***\n*** (do not pretend to know who is subscribed and who is not) ***\n*** Please avoid top-posting. ***\nThe msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.\n\nYou received this message because you are subscribed to the Google\nGroups \"msysGit\" group.\nTo post to this group, send email to msysgit@googlegroups.com\nTo unsubscribe from this group, send email to\nmsysgit+unsubscribe@googlegroups.com\nFor more options, and view previous threads, visit this group at\nhttp://groups.google.com/group/msysgit?hl=en_US?hl=en\n\n--- \nYou received this message because you are subscribed to the Google Groups \"Git for Windows\" group.\nTo unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.\nFor more options, visit https://groups.google.com/d/optout.\n"},{"id":"266469","messageId":"CAPig+cRYPVg-YOvUvH=7QViDRChG1Lvwt84-3z8ERjBMVdrvnw@mail.gmail.com","threadId":"39895","inReplyTo":"1437336497-4072-9-git-send-email-philipoakley@iee.org","subject":"Re: [PATCH v2 08/16] engine.pl: ignore invalidcontinue.obj which is known to MSVC","fromName":"Eric Sunshine","fromEmail":"sunshine@sunshineco.com","sentAt":"2015-07-20T01:54:45Z","receivedAt":"2015-07-20T01:54:45Z","isPatch":true,"sender":{"key":"sunshine@sunshineco.com","avatar":"https://avatars.githubusercontent.com/u/163641?v=4"},"body":"On Sun, Jul 19, 2015 at 4:08 PM, Philip Oakley <philipoakley@iee.org> wrote:\n> Commit 4b623d8 (MSVC: link in invalidcontinue.obj for better\n> POSIX compatibility, 2014-03-29) is not processed correctly\n> by the buildsystem. Ignore it.\n\nWhat does \"not processed correctly\" mean? For a person reading the\ncommit message, but lacking your experience with this, \"not processed\ncorrectly\" seems akin to \"it doesn't work\"[1]. Can the commit message\nprovide a bit more detail?\n\n[1]: http://www.chiark.greenend.org.uk/~sgtatham/bugs.html\n\n> Also split the .o and .obj processing; 'make' does not produce .obj\n> files. Only substitute filenames ending with .o when generating the\n> source .c filename.\n>\n> Signed-off-by: Philip Oakley <philipoakley@iee.org>\n> ---\n>  contrib/buildsystems/engine.pl | 10 +++++++---\n>  1 file changed, 7 insertions(+), 3 deletions(-)\n>\n> diff --git a/contrib/buildsystems/engine.pl b/contrib/buildsystems/engine.pl\n> index 60c7a7d..9db3d43 100755\n> --- a/contrib/buildsystems/engine.pl\n> +++ b/contrib/buildsystems/engine.pl\n> @@ -289,7 +289,7 @@ sub handleLibLine\n>  #    exit(1);\n>      foreach (@objfiles) {\n>          my $sourcefile = $_;\n> -        $sourcefile =~ s/\\.o/.c/;\n> +        $sourcefile =~ s/\\.o$/.c/;\n>          push(@sources, $sourcefile);\n>          push(@cflags, @{$compile_options{\"${sourcefile}_CFLAGS\"}});\n>          push(@defines, @{$compile_options{\"${sourcefile}_DEFINES\"}});\n> @@ -333,8 +333,12 @@ sub handleLinkLine\n>          } elsif ($part =~ /\\.(a|lib)$/) {\n>              $part =~ s/\\.a$/.lib/;\n>              push(@libs, $part);\n> -        } elsif ($part =~ /\\.(o|obj)$/) {\n> +        } elsif ($part eq 'invalidcontinue.obj') {\n> +            # ignore - known to MSVC\n> +        } elsif ($part =~ /\\.o$/) {\n>              push(@objfiles, $part);\n> +        } elsif ($part =~ /\\.obj$/) {\n> +            # do nothing, 'make' should not be producing .obj, only .o files\n>          } else {\n>              die \"Unhandled link option @ line $lineno: $part\";\n>          }\n> @@ -343,7 +347,7 @@ sub handleLinkLine\n>  #    exit(1);\n>      foreach (@objfiles) {\n>          my $sourcefile = $_;\n> -        $sourcefile =~ s/\\.o/.c/;\n> +        $sourcefile =~ s/\\.o$/.c/;\n>          push(@sources, $sourcefile);\n>          push(@cflags, @{$compile_options{\"${sourcefile}_CFLAGS\"}});\n>          push(@defines, @{$compile_options{\"${sourcefile}_DEFINES\"}});\n> --\n> 2.4.2.windows.1.5.gd32afb6\n\n-- \n-- \n*** Please reply-to-all at all times ***\n*** (do not pretend to know who is subscribed and who is not) ***\n*** Please avoid top-posting. ***\nThe msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.\n\nYou received this message because you are subscribed to the Google\nGroups \"msysGit\" group.\nTo post to this group, send email to msysgit@googlegroups.com\nTo unsubscribe from this group, send email to\nmsysgit+unsubscribe@googlegroups.com\nFor more options, and view previous threads, visit this group at\nhttp://groups.google.com/group/msysgit?hl=en_US?hl=en\n\n--- \nYou received this message because you are subscribed to the Google Groups \"Git for Windows\" group.\nTo unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.\nFor more options, visit https://groups.google.com/d/optout.\n"},{"id":"266470","messageId":"CAPig+cSDGUNZfc3cV=P2WUDUR+MBBjoHFxTBFaizf0NH-LmFTw@mail.gmail.com","threadId":"39895","inReplyTo":"1437336497-4072-11-git-send-email-philipoakley@iee.org","subject":"Re: [PATCH v2 10/16] engine.pl: delete the captured stderr file if empty","fromName":"Eric Sunshine","fromEmail":"sunshine@sunshineco.com","sentAt":"2015-07-20T02:01:01Z","receivedAt":"2015-07-20T02:01:01Z","isPatch":true,"sender":{"key":"sunshine@sunshineco.com","avatar":"https://avatars.githubusercontent.com/u/163641?v=4"},"body":"On Sun, Jul 19, 2015 at 4:08 PM, Philip Oakley <philipoakley@iee.org> wrote:\n> Keep the build clean of extraneous files if it is indeed clean.\n> Otherwise leave the msvc-build-makedryerrors.txt file both as\n> a flag for any CI system or for manual debugging.\n>\n> Note that the file will contain the new values of the GIT_VERSION\n> and GITGUI_VERSION if they were generated by the make file. They\n> are omitted if the release is tagged and indentically defined in\n> their respective GIT_VERSION_GEN file DEF_VER variables.\n>\n> Signed-off-by: Philip Oakley <philipoakley@iee.org>\n> ---\n> diff --git a/contrib/buildsystems/engine.pl b/contrib/buildsystems/engine.pl\n> index a6999b6..020776e 100755\n> --- a/contrib/buildsystems/engine.pl\n> +++ b/contrib/buildsystems/engine.pl\n> @@ -77,6 +77,8 @@ EOM\n>\n>  my $ErrsFile = \"msvc-build-makedryerrors.txt\";\n>  @makedry = `cd $git_dir && make -n MSVC=1 V=1 2>$ErrsFile` if !@makedry;\n> +# test for an empty Errors file and remove it\n> +for ($ErrsFile) {unlink $_ if (-f $_) && (!-s $_);}\n\nWhy the 'for' loop?\n\nAlso, if you're using the 'for' loop for the $_ side-effect, then why\nnot the simpler:\n\n    for ($ErrsFile) { unlink if -f && !-s; }\n\n?\n\n>\n>  # Parse the make output into usable info\n>  parseMakeOutput();\n> --\n> 2.4.2.windows.1.5.gd32afb6\n\n-- \n-- \n*** Please reply-to-all at all times ***\n*** (do not pretend to know who is subscribed and who is not) ***\n*** Please avoid top-posting. ***\nThe msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.\n\nYou received this message because you are subscribed to the Google\nGroups \"msysGit\" group.\nTo post to this group, send email to msysgit@googlegroups.com\nTo unsubscribe from this group, send email to\nmsysgit+unsubscribe@googlegroups.com\nFor more options, and view previous threads, visit this group at\nhttp://groups.google.com/group/msysgit?hl=en_US?hl=en\n\n--- \nYou received this message because you are subscribed to the Google Groups \"Git for Windows\" group.\nTo unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.\nFor more options, visit https://groups.google.com/d/optout.\n"},{"id":"266479","messageId":"53A9335E62C64D578188F002443E6247@PhilipOakley","threadId":"39895","inReplyTo":"CAPig+cRYPVg-YOvUvH=7QViDRChG1Lvwt84-3z8ERjBMVdrvnw@mail.gmail.com","subject":"Re: [PATCH v2 08/16] engine.pl: ignore invalidcontinue.obj which is known to MSVC","fromName":"Philip Oakley","fromEmail":"philipoakley@iee.org","sentAt":"2015-07-20T06:13:14Z","receivedAt":"2015-07-20T06:13:14Z","isPatch":true,"sender":{"key":"philipoakley@iee.email","avatar":"https://avatars.githubusercontent.com/u/914343?v=4"},"body":"From: \"Eric Sunshine\" <sunshine@sunshineco.com> Sent: Monday, July 20, \n2015 2:54 AM\n> On Sun, Jul 19, 2015 at 4:08 PM, Philip Oakley <philipoakley@iee.org> \n> wrote:\n>> Commit 4b623d8 (MSVC: link in invalidcontinue.obj for better\n>> POSIX compatibility, 2014-03-29) is not processed correctly\n>> by the buildsystem. Ignore it.\n>\n> What does \"not processed correctly\" mean? For a person reading the\n> commit message, but lacking your experience with this, \"not processed\n> correctly\" seems akin to \"it doesn't work\"[1].\nTrue, it didn't work...\n\n>              Can the commit message\n> provide a bit more detail?\n\nIn fact it is `parsing` (not just `processing`) the output of a \n'make --dry-run', and essentially the old parser did not handle .obj \nfiles correctly. The deliberate introduction of this .obj file had to be \nhandled, and given it's deliberate inclusion I wanted some deliberate \nhandling code.\n\nA subsequent patch then fixes the generic .obj issue.\n\nI'll update the commit message. Thanks for noticing the slack writing.\n\n>\n> [1]: http://www.chiark.greenend.org.uk/~sgtatham/bugs.html\n\nA timely reminder of this article...\n>\n>> Also split the .o and .obj processing; 'make' does not produce .obj\n>> files. Only substitute filenames ending with .o when generating the\n>> source .c filename.\n>>\n>> Signed-off-by: Philip Oakley <philipoakley@iee.org>\n>> ---\n>>  contrib/buildsystems/engine.pl | 10 +++++++---\n>>  1 file changed, 7 insertions(+), 3 deletions(-)\n>>\n>> diff --git a/contrib/buildsystems/engine.pl \n>> b/contrib/buildsystems/engine.pl\n>> index 60c7a7d..9db3d43 100755\n>> --- a/contrib/buildsystems/engine.pl\n>> +++ b/contrib/buildsystems/engine.pl\n>> @@ -289,7 +289,7 @@ sub handleLibLine\n>>  #    exit(1);\n>>      foreach (@objfiles) {\n>>          my $sourcefile = $_;\n>> -        $sourcefile =~ s/\\.o/.c/;\n>> +        $sourcefile =~ s/\\.o$/.c/;\n>>          push(@sources, $sourcefile);\n>>          push(@cflags, @{$compile_options{\"${sourcefile}_CFLAGS\"}});\n>>          push(@defines, \n>> @{$compile_options{\"${sourcefile}_DEFINES\"}});\n>> @@ -333,8 +333,12 @@ sub handleLinkLine\n>>          } elsif ($part =~ /\\.(a|lib)$/) {\n>>              $part =~ s/\\.a$/.lib/;\n>>              push(@libs, $part);\n>> -        } elsif ($part =~ /\\.(o|obj)$/) {\n>> +        } elsif ($part eq 'invalidcontinue.obj') {\n>> +            # ignore - known to MSVC\n>> +        } elsif ($part =~ /\\.o$/) {\n>>              push(@objfiles, $part);\n>> +        } elsif ($part =~ /\\.obj$/) {\n>> +            # do nothing, 'make' should not be producing .obj, only \n>> .o files\n>>          } else {\n>>              die \"Unhandled link option @ line $lineno: $part\";\n>>          }\n>> @@ -343,7 +347,7 @@ sub handleLinkLine\n>>  #    exit(1);\n>>      foreach (@objfiles) {\n>>          my $sourcefile = $_;\n>> -        $sourcefile =~ s/\\.o/.c/;\n>> +        $sourcefile =~ s/\\.o$/.c/;\n>>          push(@sources, $sourcefile);\n>>          push(@cflags, @{$compile_options{\"${sourcefile}_CFLAGS\"}});\n>>          push(@defines, \n>> @{$compile_options{\"${sourcefile}_DEFINES\"}});\n>> --\n>> 2.4.2.windows.1.5.gd32afb6\n>\n\n-- \n-- \n*** Please reply-to-all at all times ***\n*** (do not pretend to know who is subscribed and who is not) ***\n*** Please avoid top-posting. ***\nThe msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.\n\nYou received this message because you are subscribed to the Google\nGroups \"msysGit\" group.\nTo post to this group, send email to msysgit@googlegroups.com\nTo unsubscribe from this group, send email to\nmsysgit+unsubscribe@googlegroups.com\nFor more options, and view previous threads, visit this group at\nhttp://groups.google.com/group/msysgit?hl=en_US?hl=en\n\n--- \nYou received this message because you are subscribed to the Google Groups \"Git for Windows\" group.\nTo unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.\nFor more options, visit https://groups.google.com/d/optout.\n"},{"id":"266480","messageId":"FDE2D068444A4350B0C2F25275CBC41D@PhilipOakley","threadId":"39895","inReplyTo":"CAPig+cSDGUNZfc3cV=P2WUDUR+MBBjoHFxTBFaizf0NH-LmFTw@mail.gmail.com","subject":"Re: [PATCH v2 10/16] engine.pl: delete the captured stderr file if empty","fromName":"Philip Oakley","fromEmail":"philipoakley@iee.org","sentAt":"2015-07-20T06:16:24Z","receivedAt":"2015-07-20T06:16:24Z","isPatch":true,"sender":{"key":"philipoakley@iee.email","avatar":"https://avatars.githubusercontent.com/u/914343?v=4"},"body":"From: \"Eric Sunshine\" <sunshine@sunshineco.com>\n> On Sun, Jul 19, 2015 at 4:08 PM, Philip Oakley <philipoakley@iee.org> \n> wrote:\n>> Keep the build clean of extraneous files if it is indeed clean.\n>> Otherwise leave the msvc-build-makedryerrors.txt file both as\n>> a flag for any CI system or for manual debugging.\n>>\n>> Note that the file will contain the new values of the GIT_VERSION\n>> and GITGUI_VERSION if they were generated by the make file. They\n>> are omitted if the release is tagged and indentically defined in\n>> their respective GIT_VERSION_GEN file DEF_VER variables.\n>>\n>> Signed-off-by: Philip Oakley <philipoakley@iee.org>\n>> ---\n>> diff --git a/contrib/buildsystems/engine.pl \n>> b/contrib/buildsystems/engine.pl\n>> index a6999b6..020776e 100755\n>> --- a/contrib/buildsystems/engine.pl\n>> +++ b/contrib/buildsystems/engine.pl\n>> @@ -77,6 +77,8 @@ EOM\n>>\n>>  my $ErrsFile = \"msvc-build-makedryerrors.txt\";\n>>  @makedry = `cd $git_dir && make -n MSVC=1 V=1 2>$ErrsFile` if \n>> !@makedry;\n>> +# test for an empty Errors file and remove it\n>> +for ($ErrsFile) {unlink $_ if (-f $_) && (!-s $_);}\n>\n> Why the 'for' loop?\n>\n> Also, if you're using the 'for' loop for the $_ side-effect, then why\n> not the simpler:\n\nIt was cargo cult programming, with some Google searching to select \nbetween invocations. Most examples were looping through lists in \nscripts, hence the down select.\n\n>\n>    for ($ErrsFile) { unlink if -f && !-s; }\n\nA lot better. Will fix.\n\n>\n> ?\n>\n>>\n>>  # Parse the make output into usable info\n>>  parseMakeOutput();\n>> --\n>> 2.4.2.windows.1.5.gd32afb6\n>\n\n-- \n-- \n*** Please reply-to-all at all times ***\n*** (do not pretend to know who is subscribed and who is not) ***\n*** Please avoid top-posting. ***\nThe msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.\n\nYou received this message because you are subscribed to the Google\nGroups \"msysGit\" group.\nTo post to this group, send email to msysgit@googlegroups.com\nTo unsubscribe from this group, send email to\nmsysgit+unsubscribe@googlegroups.com\nFor more options, and view previous threads, visit this group at\nhttp://groups.google.com/group/msysgit?hl=en_US?hl=en\n\n--- \nYou received this message because you are subscribed to the Google Groups \"Git for Windows\" group.\nTo unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.\nFor more options, visit https://groups.google.com/d/optout.\n"},{"id":"266482","messageId":"CAPig+cRZgjnxrYRVYCLuzomE=qQtF9N_SE6t5kLcXbdiheNeTg@mail.gmail.com","threadId":"39895","inReplyTo":"FDE2D068444A4350B0C2F25275CBC41D@PhilipOakley","subject":"Re: [PATCH v2 10/16] engine.pl: delete the captured stderr file if empty","fromName":"Eric Sunshine","fromEmail":"sunshine@sunshineco.com","sentAt":"2015-07-20T06:40:54Z","receivedAt":"2015-07-20T06:40:54Z","isPatch":true,"sender":{"key":"sunshine@sunshineco.com","avatar":"https://avatars.githubusercontent.com/u/163641?v=4"},"body":"On Mon, Jul 20, 2015 at 2:16 AM, Philip Oakley <philipoakley@iee.org> wrote:\n> From: \"Eric Sunshine\" <sunshine@sunshineco.com>\n>> On Sun, Jul 19, 2015 at 4:08 PM, Philip Oakley <philipoakley@iee.org>\n>> wrote:\n>>> Keep the build clean of extraneous files if it is indeed clean.\n>>> Otherwise leave the msvc-build-makedryerrors.txt file both as\n>>> a flag for any CI system or for manual debugging.\n>>>\n>>> Note that the file will contain the new values of the GIT_VERSION\n>>> and GITGUI_VERSION if they were generated by the make file. They\n>>> are omitted if the release is tagged and indentically defined in\n>>> their respective GIT_VERSION_GEN file DEF_VER variables.\n>>>\n>>> Signed-off-by: Philip Oakley <philipoakley@iee.org>\n>>> ---\n>>> +# test for an empty Errors file and remove it\n>>> +for ($ErrsFile) {unlink $_ if (-f $_) && (!-s $_);}\n>>\n>> Why the 'for' loop?\n>>\n>> Also, if you're using the 'for' loop for the $_ side-effect, then why\n>> not the simpler:\n>\n> It was cargo cult programming, with some Google searching to select between\n> invocations. Most examples were looping through lists in scripts, hence the\n> down select.\n>\n>>    for ($ErrsFile) { unlink if -f && !-s; }\n>\n> A lot better. Will fix.\n\nAlthough that works, I'm not sure that it's really all that desirable\ndue to the unnecessary and potentially confusing 'for' loop. I'd\nprobably just write it as:\n\n    unlink $ErrsFile if -f $ErrsFile && !-s _;\n\nThe lone '_' is magical[1] in that it re-uses the stat() information\nfrom the -f rather than stat'ing $ErrsFile again. I'd also probably\nreplace !-s (\"not non-zero size\") with -z (\"zero size\"):\n\n    unlink $ErrsFile if -f $ErrsFile && -z _;\n\nAnd, if you're using Perl 5.10 or later, you could use a little\nsyntactic sugar[1] and stack the file test operators up against one\nanother:\n\n    unlink $ErrsFile if -f -z $ErrsFile;\n\nwhich is the equivalent of the above with the sugar removed.\n\n[1]: http://perldoc.perl.org/functions/-X.html\n\n-- \n-- \n*** Please reply-to-all at all times ***\n*** (do not pretend to know who is subscribed and who is not) ***\n*** Please avoid top-posting. ***\nThe msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.\n\nYou received this message because you are subscribed to the Google\nGroups \"msysGit\" group.\nTo post to this group, send email to msysgit@googlegroups.com\nTo unsubscribe from this group, send email to\nmsysgit+unsubscribe@googlegroups.com\nFor more options, and view previous threads, visit this group at\nhttp://groups.google.com/group/msysgit?hl=en_US?hl=en\n\n--- \nYou received this message because you are subscribed to the Google Groups \"Git for Windows\" group.\nTo unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.\nFor more options, visit https://groups.google.com/d/optout.\n"},{"id":"266486","messageId":"3CB33892F653436E8DCF521B61A2D48E@PhilipOakley","threadId":"39895","inReplyTo":"CAPig+cRZgjnxrYRVYCLuzomE=qQtF9N_SE6t5kLcXbdiheNeTg@mail.gmail.com","subject":"Re: [PATCH v2 10/16] engine.pl: delete the captured stderr file if empty","fromName":"Philip Oakley","fromEmail":"philipoakley@iee.org","sentAt":"2015-07-20T11:55:25Z","receivedAt":"2015-07-20T11:55:25Z","isPatch":true,"sender":{"key":"philipoakley@iee.email","avatar":"https://avatars.githubusercontent.com/u/914343?v=4"},"body":"From: \"Eric Sunshine\" <sunshine@sunshineco.com>\n> On Mon, Jul 20, 2015 at 2:16 AM, Philip Oakley <philipoakley@iee.org>\n> wrote:\n>> From: \"Eric Sunshine\" <sunshine@sunshineco.com>\n>>> On Sun, Jul 19, 2015 at 4:08 PM, Philip Oakley\n>>> <philipoakley@iee.org>\n>>> wrote:\n>>>> Keep the build clean of extraneous files if it is indeed clean.\n>>>> Otherwise leave the msvc-build-makedryerrors.txt file both as\n>>>> a flag for any CI system or for manual debugging.\n>>>>\n>>>> Note that the file will contain the new values of the GIT_VERSION\n>>>> and GITGUI_VERSION if they were generated by the make file. They\n>>>> are omitted if the release is tagged and indentically defined in\n>>>> their respective GIT_VERSION_GEN file DEF_VER variables.\n>>>>\n>>>> Signed-off-by: Philip Oakley <philipoakley@iee.org>\n>>>> ---\n>>>> +# test for an empty Errors file and remove it\n>>>> +for ($ErrsFile) {unlink $_ if (-f $_) && (!-s $_);}\n>>>\n>>> Why the 'for' loop?\n>>>\n>>> Also, if you're using the 'for' loop for the $_ side-effect, then\n>>> why\n>>> not the simpler:\n>>\n>> It was cargo cult programming, with some Google searching to select\n>> between\n>> invocations. Most examples were looping through lists in scripts,\n>> hence the\n>> down select.\n>>\n>>>    for ($ErrsFile) { unlink if -f && !-s; }\n>>\n>> A lot better. Will fix.\n>\n> Although that works, I'm not sure that it's really all that desirable\n> due to the unnecessary and potentially confusing 'for' loop. I'd\n> probably just write it as:\n>\n>    unlink $ErrsFile if -f $ErrsFile && !-s _;\n>\n> The lone '_' is magical[1] in that it re-uses the stat() information\n> from the -f rather than stat'ing $ErrsFile again. I'd also probably\n> replace !-s (\"not non-zero size\") with -z (\"zero size\"):\n>\n>    unlink $ErrsFile if -f $ErrsFile && -z _;\n>\n> And, if you're using Perl 5.10 or later,\n\nThe Msysgit (@1.9.5) uses perl v5.8.8, while the newer G4W SDK uses perl\n5, version 20, subversion 2 (v5.20.2), so there is a decision to be made\nabout whether to leave the Msysgit version behind.\n\nWhile it would be nice to use the newest version, I'm minded that we\nshould keep a little backward compatibility with Msysgit, at least until\nthe new G4w has had a few 'proper' releases, so not use the magic\nsuggestion below.\n\nI've cc'd dscho, Johannes, J6t and Sebastian in case they have any firm\nopinions with respect to the Msysgit / G4W split.\n\n>     you could use a little\n> syntactic sugar[1] and stack the file test operators up against one\n> another:\n>\n>    unlink $ErrsFile if -f -z $ErrsFile;\n>\n> which is the equivalent of the above with the sugar removed.\n>\n> [1]: http://perldoc.perl.org/functions/-X.html\n> --\n\nPhilip \n\n-- \n-- \n*** Please reply-to-all at all times ***\n*** (do not pretend to know who is subscribed and who is not) ***\n*** Please avoid top-posting. ***\nThe msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.\n\nYou received this message because you are subscribed to the Google\nGroups \"msysGit\" group.\nTo post to this group, send email to msysgit@googlegroups.com\nTo unsubscribe from this group, send email to\nmsysgit+unsubscribe@googlegroups.com\nFor more options, and view previous threads, visit this group at\nhttp://groups.google.com/group/msysgit?hl=en_US?hl=en\n\n--- \nYou received this message because you are subscribed to the Google Groups \"Git for Windows\" group.\nTo unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.\nFor more options, visit https://groups.google.com/d/optout.\n"},{"id":"266503","messageId":"CAPig+cQxCc=HQ5-=KF5HwEQyJD88Lyw6z5R4-Jn3kwabatK_-w@mail.gmail.com","threadId":"39895","inReplyTo":"3CB33892F653436E8DCF521B61A2D48E@PhilipOakley","subject":"Re: [PATCH v2 10/16] engine.pl: delete the captured stderr file if empty","fromName":"Eric Sunshine","fromEmail":"sunshine@sunshineco.com","sentAt":"2015-07-20T18:10:52Z","receivedAt":"2015-07-20T18:10:52Z","isPatch":true,"sender":{"key":"sunshine@sunshineco.com","avatar":"https://avatars.githubusercontent.com/u/163641?v=4"},"body":"On Mon, Jul 20, 2015 at 7:55 AM, Philip Oakley <philipoakley@iee.org> wrote:\n> From: \"Eric Sunshine\" <sunshine@sunshineco.com>\n>> Although that works, I'm not sure that it's really all that desirable\n>> due to the unnecessary and potentially confusing 'for' loop. I'd\n>> probably just write it as:\n>>\n>>    unlink $ErrsFile if -f $ErrsFile && !-s _;\n>>\n>> The lone '_' is magical[1] in that it re-uses the stat() information\n>> from the -f rather than stat'ing $ErrsFile again. I'd also probably\n>> replace !-s (\"not non-zero size\") with -z (\"zero size\"):\n>>\n>>    unlink $ErrsFile if -f $ErrsFile && -z _;\n>>\n>> And, if you're using Perl 5.10 or later,\n>\n> The Msysgit (@1.9.5) uses perl v5.8.8, while the newer G4W SDK uses perl\n> 5, version 20, subversion 2 (v5.20.2), so there is a decision to be made\n> about whether to leave the Msysgit version behind.\n>\n> While it would be nice to use the newest version, I'm minded that we\n> should keep a little backward compatibility with Msysgit, at least until\n> the new G4w has had a few 'proper' releases, so not use the magic\n> suggestion below.\n>\n>>     you could use a little\n>> syntactic sugar[1] and stack the file test operators up against one\n>> another:\n>>\n>>    unlink $ErrsFile if -f -z $ErrsFile;\n\nSince msysgit is only at Perl 5.8.8, it makes plenty of sense to just\nstick with:\n\n    unlink $ErrsFile if -f $ErrsFile && -z _;\n\nsince it's only a tiny bit more verbose than:\n\n    unlink $ErrsFile if -f -z $ErrsFile;\n\nand then you don't have to worry about needing a more modern Perl version.\n\n-- \n-- \n*** Please reply-to-all at all times ***\n*** (do not pretend to know who is subscribed and who is not) ***\n*** Please avoid top-posting. ***\nThe msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.\n\nYou received this message because you are subscribed to the Google\nGroups \"msysGit\" group.\nTo post to this group, send email to msysgit@googlegroups.com\nTo unsubscribe from this group, send email to\nmsysgit+unsubscribe@googlegroups.com\nFor more options, and view previous threads, visit this group at\nhttp://groups.google.com/group/msysgit?hl=en_US?hl=en\n\n--- \nYou received this message because you are subscribed to the Google Groups \"Git for Windows\" group.\nTo unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.\nFor more options, visit https://groups.google.com/d/optout.\n"}]}