Changeset 139771 in webkit


Ignore:
Timestamp:
Jan 15, 2013 12:03:10 PM (11 years ago)
Author:
commit-queue@webkit.org
Message:

Renaming CleanWorkingDirectory step to DiscardLocalChanges to make
functionality match the name.
https://bugs.webkit.org/show_bug.cgi?id=106870

Patch by Tim 'mithro' Ansell <mithro@mithis.com> on 2013-01-15
Reviewed by Adam Barth.

  • Scripts/webkitpy/tool/commands/download.py:

(Clean):
(Update):
(Build):
(BuildAndTest):
(CheckStyle):
(BuildAttachment):
(BuildAndTestAttachment):
(AbstractPatchApplyingCommand):
(ApplyWatchList):
(AbstractPatchLandingCommand):
(CreateRollout):

  • Scripts/webkitpy/tool/steps/init.py:
  • Scripts/webkitpy/tool/steps/cleanworkingdirectory.py:

(CleanWorkingDirectory.options):
(CleanWorkingDirectory.run):

  • Scripts/webkitpy/tool/steps/cleanworkingdirectory_unittest.py:
  • Scripts/webkitpy/tool/steps/discardlocalchanges.py: Copied from Tools/Scripts/webkitpy/tool/steps/cleanworkingdirectory.py.
  • Scripts/webkitpy/tool/steps/discardlocalchanges_unittest.py: Copied from Tools/Scripts/webkitpy/tool/steps/cleanworkingdirectory_unittest.py.
Location:
trunk/Tools
Files:
5 edited
1 copied
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/Tools/ChangeLog

    r139769 r139771  
     12013-01-15  Tim 'mithro' Ansell  <mithro@mithis.com>
     2
     3        Renaming CleanWorkingDirectory step to DiscardLocalChanges to make
     4        functionality match the name.
     5        https://bugs.webkit.org/show_bug.cgi?id=106870
     6
     7        Reviewed by Adam Barth.
     8
     9        * Scripts/webkitpy/tool/commands/download.py:
     10        (Clean):
     11        (Update):
     12        (Build):
     13        (BuildAndTest):
     14        (CheckStyle):
     15        (BuildAttachment):
     16        (BuildAndTestAttachment):
     17        (AbstractPatchApplyingCommand):
     18        (ApplyWatchList):
     19        (AbstractPatchLandingCommand):
     20        (CreateRollout):
     21        * Scripts/webkitpy/tool/steps/__init__.py:
     22        * Scripts/webkitpy/tool/steps/cleanworkingdirectory.py:
     23        (CleanWorkingDirectory.options):
     24        (CleanWorkingDirectory.run):
     25        * Scripts/webkitpy/tool/steps/cleanworkingdirectory_unittest.py:
     26        * Scripts/webkitpy/tool/steps/discardlocalchanges.py: Copied from Tools/Scripts/webkitpy/tool/steps/cleanworkingdirectory.py.
     27        * Scripts/webkitpy/tool/steps/discardlocalchanges_unittest.py: Copied from Tools/Scripts/webkitpy/tool/steps/cleanworkingdirectory_unittest.py.
     28
    1292013-01-15  Zan Dobersek  <zandobersek@gmail.com>
    230
  • trunk/Tools/Scripts/webkitpy/tool/commands/download.py

    r135744 r139771  
    4848    help_text = "Clean the working copy"
    4949    steps = [
    50         steps.CleanWorkingDirectory,
     50        steps.DiscardLocalChanges,
    5151    ]
    5252
     
    5959    help_text = "Update working copy (used internally)"
    6060    steps = [
    61         steps.CleanWorkingDirectory,
     61        steps.DiscardLocalChanges,
    6262        steps.Update,
    6363    ]
     
    6868    help_text = "Update working copy and build"
    6969    steps = [
    70         steps.CleanWorkingDirectory,
     70        steps.DiscardLocalChanges,
    7171        steps.Update,
    7272        steps.Build,
     
    8181    help_text = "Update working copy, build, and run the tests"
    8282    steps = [
    83         steps.CleanWorkingDirectory,
     83        steps.DiscardLocalChanges,
    8484        steps.Update,
    8585        steps.Build,
     
    236236    argument_names = "ATTACHMENT_ID [ATTACHMENT_IDS]"
    237237    main_steps = [
    238         steps.CleanWorkingDirectory,
     238        steps.DiscardLocalChanges,
    239239        steps.Update,
    240240        steps.ApplyPatch,
     
    248248    argument_names = "ATTACHMENT_ID [ATTACHMENT_IDS]"
    249249    main_steps = [
    250         steps.CleanWorkingDirectory,
     250        steps.DiscardLocalChanges,
    251251        steps.Update,
    252252        steps.ApplyPatch,
     
    260260    argument_names = "ATTACHMENT_ID [ATTACHMENT_IDS]"
    261261    main_steps = [
    262         steps.CleanWorkingDirectory,
     262        steps.DiscardLocalChanges,
    263263        steps.Update,
    264264        steps.ApplyPatch,
     
    271271    prepare_steps = [
    272272        steps.EnsureLocalCommitIfNeeded,
    273         steps.CleanWorkingDirectoryWithLocalCommits,
     273        steps.CleanWorkingDirectory,
    274274        steps.Update,
    275275    ]
     
    300300    argument_names = "ATTACHMENT_ID [ATTACHMENT_IDS]"
    301301    main_steps = [
    302         steps.CleanWorkingDirectory,
     302        steps.DiscardLocalChanges,
    303303        steps.Update,
    304304        steps.ApplyPatch,
     
    311311class AbstractPatchLandingCommand(AbstractPatchSequencingCommand):
    312312    main_steps = [
    313         steps.CleanWorkingDirectory,
     313        steps.DiscardLocalChanges,
    314314        steps.Update,
    315315        steps.ApplyPatch,
     
    414414"""
    415415    steps = [
    416         steps.CleanWorkingDirectory,
     416        steps.DiscardLocalChanges,
    417417        steps.Update,
    418418        steps.RevertRevision,
     
    425425    help_text = "Creates a bug to track the broken SVN revision(s) and uploads a rollout patch."
    426426    steps = [
    427         steps.CleanWorkingDirectory,
     427        steps.DiscardLocalChanges,
    428428        steps.Update,
    429429        steps.RevertRevision,
     
    471471Commits the revert and updates the bug (including re-opening the bug if necessary)."""
    472472    steps = [
    473         steps.CleanWorkingDirectory,
     473        steps.DiscardLocalChanges,
    474474        steps.Update,
    475475        steps.RevertRevision,
  • trunk/Tools/Scripts/webkitpy/tool/steps/__init__.py

    r122311 r139771  
    3636from webkitpy.tool.steps.checkstyle import CheckStyle
    3737from webkitpy.tool.steps.cleanworkingdirectory import CleanWorkingDirectory
    38 from webkitpy.tool.steps.cleanworkingdirectorywithlocalcommits import CleanWorkingDirectoryWithLocalCommits
    3938from webkitpy.tool.steps.closebug import CloseBug
    4039from webkitpy.tool.steps.closebugforlanddiff import CloseBugForLandDiff
     
    4342from webkitpy.tool.steps.confirmdiff import ConfirmDiff
    4443from webkitpy.tool.steps.createbug import CreateBug
     44from webkitpy.tool.steps.discardlocalchanges import DiscardLocalChanges
    4545from webkitpy.tool.steps.editchangelog import EditChangeLog
    4646from webkitpy.tool.steps.ensurebugisopenandassigned import EnsureBugIsOpenAndAssigned
  • trunk/Tools/Scripts/webkitpy/tool/steps/cleanworkingdirectory.py

    r139712 r139771  
    3333
    3434class CleanWorkingDirectory(AbstractStep):
    35     def __init__(self, tool, options, allow_local_commits=False):
    36         AbstractStep.__init__(self, tool, options)
    37         self._allow_local_commits = allow_local_commits
    3835
    3936    @classmethod
     
    4744        if not self._options.clean:
    4845            return
    49         if not self._allow_local_commits:
    50             if self._tool.scm().has_local_commits() and not self._options.force_clean:
    51                 raise ScriptError("Repository has local commits, pass --force-clean to continue.")
    52             self._tool.scm().discard_local_commits()
     46
    5347        if self._tool.scm().has_working_directory_changes() and not self._options.force_clean:
    5448            raise ScriptError("Working directory has changes, pass --force-clean to continue.")
     49
    5550        self._tool.scm().discard_working_directory_changes()
  • trunk/Tools/Scripts/webkitpy/tool/steps/cleanworkingdirectory_unittest.py

    r139712 r139771  
    4242        tool._scm.has_working_directory_changes = lambda: True
    4343        self.assertRaises(ScriptError, step.run, {})
    44         self.assertEqual(tool._scm.discard_local_commits.call_count, 0)
    45         self.assertEqual(tool._scm.discard_working_directory_changes.call_count, 0)
    46 
    47     def test_run_local_commits_no_force(self):
    48         tool = MockTool()
    49         tool._scm = Mock()
    50         step = CleanWorkingDirectory(tool, MockOptions(clean=True, force_clean=False))
    51         tool._scm.has_local_commits = lambda: True
    52         self.assertRaises(ScriptError, step.run, {})
    53         self.assertEqual(tool._scm.discard_local_commits.call_count, 0)
    5444        self.assertEqual(tool._scm.discard_working_directory_changes.call_count, 0)
    5545
     
    6050        tool._scm.has_working_directory_changes = lambda: True
    6151        step.run({})
    62         self.assertEqual(tool._scm.discard_local_commits.call_count, 1)
    63         self.assertEqual(tool._scm.discard_working_directory_changes.call_count, 1)
    64 
    65     def test_run_local_commits_force(self):
    66         tool = MockTool()
    67         tool._scm = Mock()
    68         step = CleanWorkingDirectory(tool, MockOptions(clean=True, force_clean=True))
    69         tool._scm.has_local_commits = lambda: True
    70         step.run({})
    71         self.assertEqual(tool._scm.discard_local_commits.call_count, 1)
    7252        self.assertEqual(tool._scm.discard_working_directory_changes.call_count, 1)
    7353
     
    7959        tool._scm.has_local_commits = lambda: False
    8060        step.run({})
    81         self.assertEqual(tool._scm.discard_local_commits.call_count, 1)
    8261        self.assertEqual(tool._scm.discard_working_directory_changes.call_count, 1)
    8362
     
    8766        step = CleanWorkingDirectory(tool, MockOptions(clean=False))
    8867        step.run({})
    89         self.assertEqual(tool._scm.discard_local_commits.call_count, 0)
    9068        self.assertEqual(tool._scm.discard_working_directory_changes.call_count, 0)
  • trunk/Tools/Scripts/webkitpy/tool/steps/discardlocalchanges.py

    r139769 r139771  
    11# Copyright (C) 2010 Google Inc. All rights reserved.
    2 # 
     2#
    33# Redistribution and use in source and binary forms, with or without
    44# modification, are permitted provided that the following conditions are
    55# met:
    6 # 
     6#
    77#     * Redistributions of source code must retain the above copyright
    88# notice, this list of conditions and the following disclaimer.
     
    1414# contributors may be used to endorse or promote products derived from
    1515# this software without specific prior written permission.
    16 # 
     16#
    1717# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
    1818# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     
    2727# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    2828
    29 from webkitpy.tool.steps.cleanworkingdirectory import CleanWorkingDirectory
     29from webkitpy.tool.steps.abstractstep import AbstractStep
     30from webkitpy.tool.steps.options import Options
     31from webkitpy.common.system.executive import ScriptError
    3032
    31 class CleanWorkingDirectoryWithLocalCommits(CleanWorkingDirectory):
    32     def __init__(self, tool, options):
    33         # FIXME: This a bit of a hack.  Consider doing this more cleanly.
    34         CleanWorkingDirectory.__init__(self, tool, options, allow_local_commits=True)
     33
     34class DiscardLocalChanges(AbstractStep):
     35
     36    @classmethod
     37    def options(cls):
     38        return AbstractStep.options() + [
     39            Options.clean,
     40            Options.force_clean,
     41        ]
     42
     43    def run(self, state):
     44        if not self._options.clean:
     45            return
     46
     47        if not self._options.force_clean:
     48            if self._tool.scm().has_working_directory_changes():
     49                raise ScriptError("Working directory has changes, pass --force-clean to continue.")
     50            if self._tool.scm().has_local_commits():
     51                raise ScriptError("Repository has local commits, pass --force-clean to continue.")
     52        self._tool.scm().discard_local_changes()
  • trunk/Tools/Scripts/webkitpy/tool/steps/discardlocalchanges_unittest.py

    r139769 r139771  
    3131from webkitpy.thirdparty.mock import Mock
    3232from webkitpy.tool.mocktool import MockOptions, MockTool
    33 from webkitpy.tool.steps.cleanworkingdirectory import CleanWorkingDirectory
     33from webkitpy.tool.steps.discardlocalchanges import DiscardLocalChanges
    3434from webkitpy.common.system.executive import ScriptError
    3535
    3636
    37 class CleanWorkingDirectoryTest(unittest.TestCase):
    38     def test_run_working_directory_changes_no_force(self):
     37class DiscardLocalChangesTest(unittest.TestCase):
     38    def test_skip_on_clean(self):
    3939        tool = MockTool()
    4040        tool._scm = Mock()
    41         step = CleanWorkingDirectory(tool, MockOptions(clean=True, force_clean=False))
    42         tool._scm.has_working_directory_changes = lambda: True
    43         self.assertRaises(ScriptError, step.run, {})
    44         self.assertEqual(tool._scm.discard_local_commits.call_count, 0)
    45         self.assertEqual(tool._scm.discard_working_directory_changes.call_count, 0)
     41        step = DiscardLocalChanges(tool, MockOptions(clean=False))
     42        step.run({})
     43        self.assertEqual(tool._scm.discard_local_changes.call_count, 0)
    4644
    47     def test_run_local_commits_no_force(self):
     45    def test_working_changes_exist_with_force(self):
    4846        tool = MockTool()
    4947        tool._scm = Mock()
    50         step = CleanWorkingDirectory(tool, MockOptions(clean=True, force_clean=False))
    51         tool._scm.has_local_commits = lambda: True
    52         self.assertRaises(ScriptError, step.run, {})
    53         self.assertEqual(tool._scm.discard_local_commits.call_count, 0)
    54         self.assertEqual(tool._scm.discard_working_directory_changes.call_count, 0)
     48        tool._scm.has_working_directory_changes = lambda: True
     49        tool._scm.has_local_commits = lambda: False
     50        step = DiscardLocalChanges(tool, MockOptions(clean=True, force_clean=True))
     51        step.run({})
     52        self.assertEqual(tool._scm.discard_local_changes.call_count, 1)
    5553
    56     def test_run_working_directory_changes_force(self):
     54    def test_local_commits_exist_with_force(self):
    5755        tool = MockTool()
    5856        tool._scm = Mock()
    59         step = CleanWorkingDirectory(tool, MockOptions(clean=True, force_clean=True))
    60         tool._scm.has_working_directory_changes = lambda: True
     57        tool._scm.has_working_directory_changes = lambda: False
     58        tool._scm.has_local_commits = lambda: True
     59        step = DiscardLocalChanges(tool, MockOptions(clean=True, force_clean=True))
    6160        step.run({})
    62         self.assertEqual(tool._scm.discard_local_commits.call_count, 1)
    63         self.assertEqual(tool._scm.discard_working_directory_changes.call_count, 1)
     61        self.assertEqual(tool._scm.discard_local_changes.call_count, 1)
    6462
    65     def test_run_local_commits_force(self):
     63    def test_local_commits_and_working_changes_exist_with_force(self):
    6664        tool = MockTool()
    6765        tool._scm = Mock()
    68         step = CleanWorkingDirectory(tool, MockOptions(clean=True, force_clean=True))
     66        tool._scm.has_working_directory_changes = lambda: True
    6967        tool._scm.has_local_commits = lambda: True
     68        step = DiscardLocalChanges(tool, MockOptions(clean=True, force_clean=True))
    7069        step.run({})
    71         self.assertEqual(tool._scm.discard_local_commits.call_count, 1)
    72         self.assertEqual(tool._scm.discard_working_directory_changes.call_count, 1)
     70        self.assertEqual(tool._scm.discard_local_changes.call_count, 1)
    7371
    74     def test_run_no_local_changes(self):
     72    def test_no_changes_exist_with_force(self):
    7573        tool = MockTool()
    7674        tool._scm = Mock()
    77         step = CleanWorkingDirectory(tool, MockOptions(clean=True, force_clean=False))
    7875        tool._scm.has_working_directory_changes = lambda: False
    7976        tool._scm.has_local_commits = lambda: False
     77        step = DiscardLocalChanges(tool, MockOptions(clean=True, force_clean=True))
    8078        step.run({})
    81         self.assertEqual(tool._scm.discard_local_commits.call_count, 1)
    82         self.assertEqual(tool._scm.discard_working_directory_changes.call_count, 1)
     79        self.assertEqual(tool._scm.discard_local_changes.call_count, 1)
    8380
    84     def test_no_clean(self):
     81    def test_error_working_changes_exist_without_force(self):
    8582        tool = MockTool()
    8683        tool._scm = Mock()
    87         step = CleanWorkingDirectory(tool, MockOptions(clean=False))
    88         step.run({})
    89         self.assertEqual(tool._scm.discard_local_commits.call_count, 0)
    90         self.assertEqual(tool._scm.discard_working_directory_changes.call_count, 0)
     84        tool._scm.has_working_directory_changes = lambda: True
     85        tool._scm.has_local_commits = lambda: False
     86        step = DiscardLocalChanges(tool, MockOptions(clean=True, force_clean=False))
     87        self.assertRaises(ScriptError, step.run, {})
     88        self.assertEqual(tool._scm.discard_local_changes.call_count, 0)
     89
     90    def test_error_local_commits_exist_without_force(self):
     91        tool = MockTool()
     92        tool._scm = Mock()
     93        tool._scm.has_working_directory_changes = lambda: False
     94        tool._scm.has_local_commits = lambda: True
     95        step = DiscardLocalChanges(tool, MockOptions(clean=True, force_clean=False))
     96        self.assertRaises(ScriptError, step.run, {})
     97        self.assertEqual(tool._scm.discard_local_changes.call_count, 0)
Note: See TracChangeset for help on using the changeset viewer.