Returns list of files that were modified in given {@link http://git-scm.com/docs/gitrevisions gitrevisions}
public getModifiedFiles ( string $gitrevisions ) : string[] | ||
$gitrevisions | string | |
return | string[] |
private function _revert($commitHash, $method) { if (!$this->canRevert()) { return RevertStatus::NOT_CLEAN_WORKING_DIRECTORY; } $commitHashForDiff = $method === "undo" ? sprintf("%s~1..%s", $commitHash, $commitHash) : $commitHash; $modifiedFiles = $this->repository->getModifiedFiles($commitHashForDiff); $vpIdsInModifiedFiles = $this->getAllVpIdsFromModifiedFiles($modifiedFiles); if ($method === "undo") { $status = $this->revertOneCommit($commitHash); $changeInfo = new RevertChangeInfo(RevertChangeInfo::ACTION_UNDO, $commitHash); } else { $status = $this->revertToCommit($commitHash); $changeInfo = new RevertChangeInfo(RevertChangeInfo::ACTION_ROLLBACK, $commitHash); } if ($status !== RevertStatus::OK) { return $status; } $this->committer->forceChangeInfo($changeInfo); $this->committer->commit(); $vpIdsInModifiedFiles = array_merge($vpIdsInModifiedFiles, $this->getAllVpIdsFromModifiedFiles($modifiedFiles)); $vpIdsInModifiedFiles = array_unique($vpIdsInModifiedFiles, SORT_REGULAR); $this->synchronizationProcess->synchronize($vpIdsInModifiedFiles); $affectedPosts = $this->getAffectedPosts($modifiedFiles); $this->updateChangeDateForPosts($affectedPosts); do_action('vp_revert'); return RevertStatus::OK; }
private function revert($commits, $method) { if (!$this->canRevert()) { return RevertStatus::NOT_CLEAN_WORKING_DIRECTORY; } vp_commit_all_frequently_written_entities(); uasort($commits, function ($a, $b) { return $this->repository->wasCreatedAfter($b, $a); }); $modifiedFiles = []; $vpIdsInModifiedFiles = []; foreach ($commits as $commitHash) { $commitHashForDiff = $method === "undo" ? sprintf("%s~1..%s", $commitHash, $commitHash) : $commitHash; $modifiedFiles = array_merge($modifiedFiles, $this->repository->getModifiedFiles($commitHashForDiff)); $modifiedFiles = array_unique($modifiedFiles, SORT_REGULAR); $vpIdsInModifiedFiles = array_merge($vpIdsInModifiedFiles, $this->getAllVpIdsFromModifiedFiles($modifiedFiles)); $vpIdsInModifiedFiles = array_unique($vpIdsInModifiedFiles, SORT_REGULAR); if ($method === "undo") { $status = $this->revertOneCommit($commitHash); } else { $status = $this->revertToCommit($commitHash); } if ($status !== RevertStatus::OK) { return $status; } vp_force_action('versionpress', $method, $commitHash, [], [["type" => "path", "path" => "*"]]); } if (!$this->repository->willCommit()) { return RevertStatus::NOTHING_TO_COMMIT; } $affectedPosts = $this->getAffectedPosts($modifiedFiles); $this->updateChangeDateForPosts($affectedPosts); $this->committer->commit(); $vpIdsInModifiedFiles = array_merge($vpIdsInModifiedFiles, $this->getAllVpIdsFromModifiedFiles($modifiedFiles)); $vpIdsInModifiedFiles = array_unique($vpIdsInModifiedFiles, SORT_REGULAR); $this->synchronizationProcess->synchronize($vpIdsInModifiedFiles); do_action('vp_revert', $modifiedFiles); return RevertStatus::OK; }