How to change block visibility/pages in hook_block in my module? I implement mymodule_block and for case 'list' I have blocks like:

  $blocks[CN_BLOCK_RHM_BUTTONS] = array(
        'info' =&gt; t("Block name"),
        'status' =&gt; 1, // on by default
        'weight' =&gt; -99, // should be at the top
        'region' =&gt; 'right', // RHM
        'visibility' =&gt; 1, // Only on these pages
        'pages' =&gt; 'page1' . PHP_EOL . 
          'page2' . PHP_EOL . 
          'page3' . PHP_EOL


This works great for new blocks created on our dev site. But I want to change the pages settings in source control, and for these changes to propagate when we updated this module on our production site. It seems that for existing module deltas, Drupal looks at the block table fields and ignores any changes in hook_block. If these any feature of Drupal or cool snippet that will help me 'reset' blocks to the module's settings?
You can achieve this by writing a hook_update in your module's .install file. You will need to update the 'block' table directly in that hook to change the block settings as needed. After moving your updates to production, run update.php, which will apply the changes in hook_update.