[ Index ] |
PHP Cross Reference of Phabricator |
[Summary view] [Print] [Text view]
1 <?php 2 3 final class PhabricatorHunksManagementMigrateWorkflow 4 extends PhabricatorHunksManagementWorkflow { 5 6 protected function didConstruct() { 7 $this 8 ->setName('migrate') 9 ->setExamples('**migrate**') 10 ->setSynopsis(pht('Migrate hunks to modern storage.')) 11 ->setArguments(array()); 12 } 13 14 public function execute(PhutilArgumentParser $args) { 15 $saw_any_rows = false; 16 $console = PhutilConsole::getConsole(); 17 18 $table = new DifferentialHunkLegacy(); 19 foreach (new LiskMigrationIterator($table) as $hunk) { 20 $saw_any_rows = true; 21 22 $id = $hunk->getID(); 23 $console->writeOut("%s\n", pht('Migrating hunk %d...', $id)); 24 25 $new_hunk = id(new DifferentialHunkModern()) 26 ->setChangesetID($hunk->getChangesetID()) 27 ->setOldOffset($hunk->getOldOffset()) 28 ->setOldLen($hunk->getOldLen()) 29 ->setNewOffset($hunk->getNewOffset()) 30 ->setNewLen($hunk->getNewLen()) 31 ->setChanges($hunk->getChanges()) 32 ->setDateCreated($hunk->getDateCreated()) 33 ->setDateModified($hunk->getDateModified()); 34 35 $hunk->openTransaction(); 36 $new_hunk->save(); 37 $hunk->delete(); 38 $hunk->saveTransaction(); 39 40 $old_len = strlen($hunk->getChanges()); 41 $new_len = strlen($new_hunk->getData()); 42 if ($old_len) { 43 $diff_len = ($old_len - $new_len); 44 $console->writeOut( 45 "%s\n", 46 pht( 47 'Saved %s bytes (%s).', 48 new PhutilNumber($diff_len), 49 sprintf('%.1f%%', 100 * ($diff_len / $old_len)))); 50 } 51 52 break; 53 } 54 55 if ($saw_any_rows) { 56 $console->writeOut("%s\n", pht('Done.')); 57 } else { 58 $console->writeOut("%s\n", pht('No rows to migrate.')); 59 } 60 } 61 62 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Sun Nov 30 09:20:46 2014 | Cross-referenced by PHPXref 0.7.1 |