Add file contents to the index.
public add ( string $filepattern, array $options = [] ) : |
||
$filepattern | string | Files to add content from. Fileglobs (e.g. *.c) can be given to add all matching files. Also a leading directory name (e.g. dir to add dir/file1 and dir/file2) can be given to add all files in the directory, recursively. |
$options | array | An optional array of command line options. |
return |
public function execute(GitWorkingCopy $git, LocalPackage $package) { $git->add('.'); $this->dispatchEvent(StepsEvents::GIT_ADDED, new GitEventMade($git)); $git->commit($this->getCommitMessage($git)); $this->dispatchEvent(StepsEvents::GIT_COMMITTED, new GitEventMade($git)); $git->push('origin', $package->getLocalBranch(), array('f' => true)); $this->dispatchEvent(StepsEvents::GIT_PUSHED, new GitEventMade($git)); return null === $git->getStatus() ? true : false; }
/** * Merge three strings in a specified file. * * @param string $file * The file name in the git repository to which the content is written. * @param string $base * The common base text. * @param string $remote * The first changed text. * @param string $local * The second changed text * * @return string * The merged text. */ protected function mergeFile($file, $base, $remote, $local) { file_put_contents($file, $base); $this->git->add($file); $this->git->commit('Add base.'); if (!in_array('original', $this->git->getBranches()->all())) { $this->git->checkoutNewBranch('original'); } else { $this->git->checkout('original'); $this->git->rebase('master'); } file_put_contents($file, $remote); $this->git->add($file); $this->git->commit('Add remote.'); $this->git->checkout('master'); file_put_contents($file, $local); $this->git->add($file); $this->git->commit('Add local.'); $this->git->merge('original'); return file_get_contents($file); }