aboutsummaryrefslogtreecommitdiffstats
path: root/library/kzykhys/git/src/PHPGit/Command/ResetCommand.php
diff options
context:
space:
mode:
Diffstat (limited to 'library/kzykhys/git/src/PHPGit/Command/ResetCommand.php')
-rw-r--r--library/kzykhys/git/src/PHPGit/Command/ResetCommand.php199
1 files changed, 0 insertions, 199 deletions
diff --git a/library/kzykhys/git/src/PHPGit/Command/ResetCommand.php b/library/kzykhys/git/src/PHPGit/Command/ResetCommand.php
deleted file mode 100644
index f70f53e2e..000000000
--- a/library/kzykhys/git/src/PHPGit/Command/ResetCommand.php
+++ /dev/null
@@ -1,199 +0,0 @@
-<?php
-
-namespace PHPGit\Command;
-
-use PHPGit\Command;
-use PHPGit\Exception\GitException;
-
-/**
- * Reset current HEAD to the specified state - `git reset`
- *
- * @author Kazuyuki Hayashi <hayashi@valnur.net>
- */
-class ResetCommand extends Command
-{
-
- /**
- * Resets the index entries for all **$paths** to their state at **$commit**
- *
- * ``` php
- * $git = new PHPGit\Git();
- * $git->setRepository('/path/to/repo');
- * $git->reset();
- * ```
- *
- * @param string|array|\Traversable $paths The paths to reset
- * @param string $commit The commit
- *
- * @return bool
- */
- public function __invoke($paths, $commit = null)
- {
- $builder = $this->git->getProcessBuilder()
- ->add('reset');
-
- if ($commit) {
- $builder->add($commit)->add('--');
- }
-
- if (!is_array($paths) && !($paths instanceof \Traversable)) {
- $paths = array($paths);
- }
-
- foreach ($paths as $path) {
- $builder->add($path);
- }
-
- try {
- $this->git->run($builder->getProcess());
- } catch (GitException $e) {
- // Confirm exit code
- }
-
- return true;
- }
-
- /**
- * Resets the current branch head to **$commit**
- *
- * Does not touch the index file nor the working tree at all (but resets the head to **$commit**,
- * just like all modes do).
- * This leaves all your changed files "Changes to be committed", as git status would put it.
- *
- * ``` php
- * $git = new PHPGit\Git();
- * $git->setRepository('/path/to/repo');
- * $git->reset->soft();
- * ```
- *
- * @param string $commit The commit
- *
- * @return bool
- */
- public function soft($commit = null)
- {
- return $this->mode('soft', $commit);
- }
-
- /**
- * Resets the current branch head to **$commit**
- *
- * Resets the index but not the working tree (i.e., the changed files are preserved but not marked for commit)
- * and reports what has not been updated. This is the default action.
- *
- * ``` php
- * $git = new PHPGit\Git();
- * $git->setRepository('/path/to/repo');
- * $git->reset->mixed();
- * ```
- *
- * @param string $commit The commit
- *
- * @return bool
- */
- public function mixed($commit = null)
- {
- return $this->mode('mixed', $commit);
- }
-
- /**
- * Resets the current branch head to **$commit**
- *
- * Resets the index and working tree. Any changes to tracked files in the working tree since **$commit** are discarded
- *
- * ``` php
- * $git = new PHPGit\Git();
- * $git->setRepository('/path/to/repo');
- * $git->reset->hard();
- * ```
- *
- * @param string $commit The commit
- *
- * @return bool
- */
- public function hard($commit = null)
- {
- return $this->mode('hard', $commit);
- }
-
- /**
- * Resets the current branch head to **$commit**
- *
- * Resets the index and updates the files in the working tree that are different between **$commit** and HEAD,
- * but keeps those which are different between the index and working tree
- * (i.e. which have changes which have not been added). If a file that is different between **$commit** and
- * the index has unstaged changes, reset is aborted
- *
- * ``` php
- * $git = new PHPGit\Git();
- * $git->setRepository('/path/to/repo');
- * $git->reset->merge();
- * ```
- *
- * @param string $commit The commit
- *
- * @return bool
- */
- public function merge($commit = null)
- {
- return $this->mode('merge', $commit);
- }
-
- /**
- * Resets the current branch head to **$commit**
- *
- * Resets index entries and updates files in the working tree that are different between **$commit** and HEAD.
- * If a file that is different between **$commit** and HEAD has local changes, reset is aborted.
- *
- * ``` php
- * $git = new PHPGit\Git();
- * $git->setRepository('/path/to/repo');
- * $git->reset->keep();
- * ```
- *
- * @param string $commit The commit
- *
- * @return bool
- */
- public function keep($commit = null)
- {
- return $this->mode('keep', $commit);
- }
-
- /**
- * Resets the current branch head to **$commit**
- *
- * Possibly updates the index (resetting it to the tree of **$commit**) and the working tree depending on **$mode**
- *
- * ``` php
- * $git = new PHPGit\Git();
- * $git->setRepository('/path/to/repo');
- * $git->reset->mode('hard');
- * ```
- *
- * @param string $mode --<mode>
- * @param string $commit The commit
- *
- * @throws \InvalidArgumentException
- * @return bool
- */
- public function mode($mode, $commit = null)
- {
- if (!in_array($mode, array('soft', 'mixed', 'hard', 'merge', 'keep'))) {
- throw new \InvalidArgumentException('$mode must be one of the following: soft, mixed, hard, merge, keep');
- }
-
- $builder = $this->git->getProcessBuilder()
- ->add('reset')
- ->add('--' . $mode);
-
- if ($commit) {
- $builder->add($commit);
- }
-
- $this->git->run($builder->getProcess());
-
- return true;
- }
-
-} \ No newline at end of file