/** * @return FilesCollection */ public function locate() { $diff = $this->repository->getDiff('HEAD'); $files = array(); /** @var File $file */ foreach ($diff->getFiles() as $file) { if ($file->isDeletion()) { continue; } $fileName = $file->isRename() ? $file->getNewName() : $file->getName(); $files[] = new SplFileInfo($fileName); } return new FilesCollection($files); }
function it_will_list_all_diffed_files(Repository $repository, Diff $diff) { $changedFile = $this->mockFile('file1.txt'); $movedFile = $this->mockFile('file2.txt', true); $deletedFile = $this->mockFile('file3.txt', false, true); $repository->getDiff('HEAD')->willReturn($diff); $diff->getFiles()->willReturn(array($changedFile, $movedFile, $deletedFile)); $result = $this->locate(); $result->shouldBeAnInstanceOf('GrumPHP\\Collection\\FilesCollection'); $result[0]->getPathname()->shouldBe('file1.txt'); $result[1]->getPathname()->shouldBe('file2.txt'); $result->getIterator()->count()->shouldBe(2); }
/** * getChangedFiles * * @param Gitonomy\Git\Repository $repo * @param string $revFrom * @param string $revTo * @return array */ public static function getChangedFiles(Repository $repo, $revFrom, $revTo) { return $repo->getDiff("{$revFrom}..{$revTo}")->getFiles(); }
/** * @return Diff */ public function getDiff() { return $this->repository->getDiff($this->revisions); }