public function desiccateGitObject($object)
{
if (!$object->getSha()) {
if ($object instanceof Entity\GitObject\Blob) {
$this->doDesiccation($object);
} else {
if ($object instanceof Entity\GitObject\Tree) {
foreach ($object->getNodes() as $node) {
$this->desiccateGitObject($node->getRelatedObject());
}
$this->doDesiccation($object);
} else {
if ($object instanceof Entity\GitObject\Commit) {
$this->desiccateGitObject($object->getTree());
foreach ($object->getParents() as $parent) {
$this->desiccateGitObject($parent);
}
$this->doDesiccation($object);
}
}
}
}
}