diff --git a/src/extensions/DiffusionPreCommitContentSizeHeraldField.php b/src/extensions/DiffusionPreCommitContentSizeHeraldField.php index dce6ccb80..17be2b1cd 100644 --- a/src/extensions/DiffusionPreCommitContentSizeHeraldField.php +++ b/src/extensions/DiffusionPreCommitContentSizeHeraldField.php @@ -1,53 +1,60 @@ <?php final class DiffusionPreCommitContentSizeHeraldField extends DiffusionPreCommitContentHeraldField { const FIELDCONST = 'diffusion.pre.content.diff.size'; public function getHeraldFieldName() { return pht('Total files size (bytes)'); } public function getFieldGroupKey() { return DiffusionChangeHeraldFieldGroup::FIELDGROUPKEY; } public function getHeraldFieldValue($object) { $adapter = $this->getAdapter(); $hook = $adapter->getHookEngine(); $repository = $hook->getRepository(); $vcs = $repository->getVersionControlSystem(); $total_size = 0; $ref = $adapter->getObject()->getRefNew(); $changesets = $hook->loadChangesetsForCommit($ref); foreach($changesets as $change){ $size = 0; $err = null; if($vcs == PhabricatorRepositoryType::REPOSITORY_TYPE_GIT) { list($size, $err) = execx("git cat-file -s %s:%s", $ref, $change->getFileName()); } elseif($vcs == PhabricatorRepositoryType::REPOSITORY_TYPE_SVN) { $txid = $hook->getSubversionTransaction(); list($size, $err) = execx("svnlook filesize -t %s %s %s", $txid, $repository->getLocalPath(), $change->getFileName()); } $total_size += (int) $size; } return $total_size; } protected function getHeraldFieldStandardType() { return HeraldField::STANDARD_INT; } + function supportsObject($object) { + if($object->getRepository()->isHg()) { + return false; + } + return parent::supportsObject($object); + } + }