private function prepareChangeCollection(
        array $commit,
        array $changeCollection,
        array &$commitCollection,
        array &$filePathMapping,
        array &$filePathCollection
    ) {
        foreach ($changeCollection as $change) {
            if (!isset($commit['containedPath'])) {
                $commit['containedPath'] = [];
            }

            if (!isset($commit['information'])) {
                $commit['information'] = [];
            }

            if (isset($change['criteria'])) {
                $changeToHash   = \md5($change['to']);
                $changeFromHash = \md5($change['from']);

                $commit['containedPath'][$changeToHash] = $change['to'];
                $commit['information'][$changeToHash]   = $change;

                $filePathMapping[$changeToHash]   = $change['to'];
                $filePathMapping[$changeFromHash] = $change['from'];

                $filePathCollection[$changeToHash]['commits'][$commit['commit']]   = $commit;
                $filePathCollection[$changeFromHash]['commits'][$commit['commit']] = $commit;

                $commitCollection[$commit['commit']] = $commit;

                continue;
            }

            $fileHash = \md5($change['file']);

            $commit['containedPath'][$fileHash] = $change['file'];
            $commit['information'][$fileHash]   = $change;

            $filePathMapping[$fileHash] = $change['file'];

            $filePathCollection[$fileHash]['commits'][$commit['commit']] = $commit;

            $commitCollection[$commit['commit']] = $commit;
        }
    }