diff --git a/scripts/differential/remove_empty_revisions.php b/scripts/differential/remove_empty_revisions.php new file mode 100755 index 0000000000..ef1148ba91 --- /dev/null +++ b/scripts/differential/remove_empty_revisions.php @@ -0,0 +1,53 @@ +#!/usr/bin/env php +establishConnection('r'), + 'select distinct r.id from differential_revision r left join '. + 'differential_diff d on r.id=d.revisionID where d.revisionID is NULL'); + +$empty_revisions = ipull($empty_revisions, 'id'); + +if (!$empty_revisions) { + echo "No empty revisions found.\n"; + exit(0); +} + +echo phutil_console_wrap( + "The following revision don't contain any diff:\n". + implode(', ', $empty_revisions)); + +if (!phutil_console_confirm('Do you want to delete them?')) { + echo "Cancelled.\n"; + exit(1); +} + +foreach ($empty_revisions as $revision_id) { + $revision = id(new DifferentialRevision())->load($revision_id); + $revision->delete(); +} + +echo "Done.\n";