Title: [100421] trunk/Tools
Revision
100421
Author
e...@webkit.org
Date
2011-11-16 00:41:36 -0800 (Wed, 16 Nov 2011)

Log Message

check-webkit-style broken by r99773: "Could not determine the port"
https://bugs.webkit.org/show_bug.cgi?id=72275

Reviewed by Adam Barth.

Engage windows hacks harder.

This is a speculative fix for ChromiumWin.  We're now
creating an SCM object much earlier, so we need to
engage our "awesome" windows hacks earlier.

* Scripts/webkitpy/common/host.py:
* Scripts/webkitpy/layout_tests/port/chromium_win.py:

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (100420 => 100421)


--- trunk/Tools/ChangeLog	2011-11-16 08:16:42 UTC (rev 100420)
+++ trunk/Tools/ChangeLog	2011-11-16 08:41:36 UTC (rev 100421)
@@ -1,3 +1,19 @@
+2011-11-16  Eric Seidel  <e...@webkit.org>
+
+        check-webkit-style broken by r99773: "Could not determine the port"
+        https://bugs.webkit.org/show_bug.cgi?id=72275
+
+        Reviewed by Adam Barth.
+
+        Engage windows hacks harder.
+
+        This is a speculative fix for ChromiumWin.  We're now
+        creating an SCM object much earlier, so we need to
+        engage our "awesome" windows hacks earlier.
+
+        * Scripts/webkitpy/common/host.py:
+        * Scripts/webkitpy/layout_tests/port/chromium_win.py:
+
 2011-11-15  Darin Adler  <da...@apple.com>
 
         DRT's uiElementAttributeValueCallback function is leaky

Modified: trunk/Tools/Scripts/webkitpy/common/host.py (100420 => 100421)


--- trunk/Tools/Scripts/webkitpy/common/host.py	2011-11-16 08:16:42 UTC (rev 100420)
+++ trunk/Tools/Scripts/webkitpy/common/host.py	2011-11-16 08:41:36 UTC (rev 100421)
@@ -27,6 +27,8 @@
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
+import logging
+import sys
 
 from webkitpy.common.checkout import Checkout
 from webkitpy.common.checkout.scm import default_scm
@@ -38,6 +40,9 @@
 from webkitpy.layout_tests.port.factory import PortFactory
 
 
+_log = logging.getLogger(__name__)
+
+
 class Host(object):
     def __init__(self):
         # These basic environment abstractions should be a separate lower-level object.
@@ -63,7 +68,35 @@
         # FIXME: PortFactory doesn't belong on this Host object if Port is going to have a Host (circular dependency).
         self.port_factory = PortFactory(self)
 
+    # FIXME: This is a horrible, horrible hack for ChromiumWin and should be removed.
+    # Maybe this belongs in SVN in some more generic "find the svn binary" codepath?
+    # Or possibly Executive should have a way to emulate shell path-lookups?
+    def _engage_awesome_windows_hacks(self):
+        if sys.platform != "win32":
+            return
+        try:
+            self._executive.run_command(['svn', 'help'])
+        except OSError, e:
+            try:
+                self._executive.run_command(['svn.bat', 'help'])
+                # Chromium Win uses the depot_tools package, which contains a number
+                # of development tools, including Python and svn. Instead of using a
+                # real svn executable, depot_tools indirects via a batch file, called
+                # svn.bat. This batch file allows depot_tools to auto-update the real
+                # svn executable, which is contained in a subdirectory.
+                #
+                # That's all fine and good, except that subprocess.popen can detect
+                # the difference between a real svn executable and batch file when we
+                # don't provide use shell=True. Rather than use shell=True on Windows,
+                # We hack the svn.bat name into the SVN class.
+                _log.debug('Engaging svn.bat Windows hack.')
+                from webkitpy.common.checkout.scm.svn import SVN
+                SVN.executable_name = 'svn.bat'
+            except OSError, e:
+                _log.debug('Failed to engage svn.bat Windows hack.')
+
     def _initialize_scm(self, patch_directories=None):
+        self._engage_awesome_windows_hacks()
         self._scm = default_scm(patch_directories)
         self._checkout = Checkout(self.scm())
 

Modified: trunk/Tools/Scripts/webkitpy/layout_tests/port/chromium_win.py (100420 => 100421)


--- trunk/Tools/Scripts/webkitpy/layout_tests/port/chromium_win.py	2011-11-16 08:16:42 UTC (rev 100420)
+++ trunk/Tools/Scripts/webkitpy/layout_tests/port/chromium_win.py	2011-11-16 08:41:36 UTC (rev 100421)
@@ -95,31 +95,7 @@
             self._version = port_name[port_name.index('-win-') + len('-win-'):]
             assert self._version in self.SUPPORTED_VERSIONS, "%s is not in %s" % (self._version, self.SUPPORTED_VERSIONS)
         self._operating_system = 'win'
-        self._engage_awesome_windows_hacks()
 
-    def _engage_awesome_windows_hacks(self):
-        if sys.platform != "win32":
-            return
-        try:
-            self._executive.run_command(['svn', 'help'])
-        except OSError, e:
-            try:
-                self._executive.run_command(['svn.bat', 'help'])
-                # Chromium Win uses the depot_tools package, which contains a number
-                # of development tools, including Python and svn. Instead of using a
-                # real svn executable, depot_tools indirects via a batch file, called
-                # svn.bat. This batch file allows depot_tools to auto-update the real
-                # svn executable, which is contained in a subdirectory.
-                #
-                # That's all fine and good, except that subprocess.popen can detect
-                # the difference between a real svn executable and batch file when we
-                # don't provide use shell=True. Rather than use shell=True on Windows,
-                # We hack the svn.bat name into the SVN class.
-                _log.debug('Engaging svn.bat Windows hack.')
-                from webkitpy.common.checkout.scm.svn import SVN
-                SVN.executable_name = 'svn.bat'
-            except OSError, e:
-                _log.debug('Failed to engage svn.bat Windows hack.')
 
     def setup_environ_for_server(self, server_name=None):
         env = chromium.ChromiumPort.setup_environ_for_server(self)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to