Page MenuHomePhabricator

D15493.id37352.diff
No OneTemporary

D15493.id37352.diff

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
@@ -7672,6 +7672,7 @@
'PhabricatorRepositoryGitLFSRef' => array(
'PhabricatorRepositoryDAO',
'PhabricatorPolicyInterface',
+ 'PhabricatorDestructibleInterface',
),
'PhabricatorRepositoryGitLFSRefQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
'PhabricatorRepositoryGraphCache' => 'Phobject',
diff --git a/src/applications/repository/storage/PhabricatorRepository.php b/src/applications/repository/storage/PhabricatorRepository.php
--- a/src/applications/repository/storage/PhabricatorRepository.php
+++ b/src/applications/repository/storage/PhabricatorRepository.php
@@ -2435,6 +2435,14 @@
$engine->destroyObject($atom);
}
+ $lfs_refs = id(new PhabricatorRepositoryGitLFSRefQuery())
+ ->setViewer($engine->getViewer())
+ ->withRepositoryPHIDs(array($phid))
+ ->execute();
+ foreach ($lfs_refs as $ref) {
+ $engine->destroyObject($ref);
+ }
+
$this->saveTransaction();
}
diff --git a/src/applications/repository/storage/PhabricatorRepositoryGitLFSRef.php b/src/applications/repository/storage/PhabricatorRepositoryGitLFSRef.php
--- a/src/applications/repository/storage/PhabricatorRepositoryGitLFSRef.php
+++ b/src/applications/repository/storage/PhabricatorRepositoryGitLFSRef.php
@@ -2,7 +2,9 @@
final class PhabricatorRepositoryGitLFSRef
extends PhabricatorRepositoryDAO
- implements PhabricatorPolicyInterface {
+ implements
+ PhabricatorPolicyInterface,
+ PhabricatorDestructibleInterface {
protected $repositoryPHID;
protected $objectHash;
@@ -48,4 +50,23 @@
}
+/* -( PhabricatorDestructibleInterface )----------------------------------- */
+
+
+ public function destroyObjectPermanently(
+ PhabricatorDestructionEngine $engine) {
+
+ $file_phid = $this->getFilePHID();
+
+ $file = id(new PhabricatorFileQuery())
+ ->setViewer($engine->getViewer())
+ ->withPHIDs(array($file_phid))
+ ->executeOne();
+ if ($file) {
+ $engine->destroyObject($file);
+ }
+
+ $this->delete();
+ }
+
}

File Metadata

Mime Type
text/plain
Expires
Sat, Mar 22, 4:35 AM (1 w, 4 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7386706
Default Alt Text
D15493.id37352.diff (2 KB)

Event Timeline