diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php --- a/src/__phutil_library_map__.php +++ b/src/__phutil_library_map__.php @@ -459,6 +459,7 @@ 'DifferentialHostField' => 'applications/differential/customfield/DifferentialHostField.php', 'DifferentialHovercardEngineExtension' => 'applications/differential/engineextension/DifferentialHovercardEngineExtension.php', 'DifferentialHunk' => 'applications/differential/storage/DifferentialHunk.php', + 'DifferentialHunkArchiveGarbageCollector' => 'applications/differential/garbagecollector/DifferentialHunkArchiveGarbageCollector.php', 'DifferentialHunkParser' => 'applications/differential/parser/DifferentialHunkParser.php', 'DifferentialHunkParserTestCase' => 'applications/differential/parser/__tests__/DifferentialHunkParserTestCase.php', 'DifferentialHunkQuery' => 'applications/differential/query/DifferentialHunkQuery.php', @@ -5465,6 +5466,7 @@ 'PhabricatorPolicyInterface', 'PhabricatorDestructibleInterface', ), + 'DifferentialHunkArchiveGarbageCollector' => 'PhabricatorGarbageCollector', 'DifferentialHunkParser' => 'Phobject', 'DifferentialHunkParserTestCase' => 'PhabricatorTestCase', 'DifferentialHunkQuery' => 'PhabricatorCursorPagedPolicyAwareQuery', diff --git a/src/applications/differential/garbagecollector/DifferentialHunkArchiveGarbageCollector.php b/src/applications/differential/garbagecollector/DifferentialHunkArchiveGarbageCollector.php new file mode 100644 --- /dev/null +++ b/src/applications/differential/garbagecollector/DifferentialHunkArchiveGarbageCollector.php @@ -0,0 +1,31 @@ +loadAllWhere( + 'dataType = %s AND dateCreated < %d LIMIT 10', + DifferentialModernHunk::DATATYPE_TEXT, + $this->getGarbageEpoch()); + + foreach ($hunks as $hunk) { + $hunk->saveAsFile(); + } + + return (count($hunks) == 10); + } + +} diff --git a/src/applications/differential/storage/DifferentialModernHunk.php b/src/applications/differential/storage/DifferentialModernHunk.php --- a/src/applications/differential/storage/DifferentialModernHunk.php +++ b/src/applications/differential/storage/DifferentialModernHunk.php @@ -42,6 +42,9 @@ 'key_created' => array( 'columns' => array('dateCreated'), ), + 'key_archive' => array( + 'columns' => array('dataType', 'dateCreated'), + ), ), ) + parent::getConfiguration(); }