aboutsummaryrefslogtreecommitdiffstats
path: root/library/kzykhys/git/src/PHPGit/Git.php
diff options
context:
space:
mode:
Diffstat (limited to 'library/kzykhys/git/src/PHPGit/Git.php')
-rw-r--r--library/kzykhys/git/src/PHPGit/Git.php308
1 files changed, 0 insertions, 308 deletions
diff --git a/library/kzykhys/git/src/PHPGit/Git.php b/library/kzykhys/git/src/PHPGit/Git.php
deleted file mode 100644
index f952d6f1f..000000000
--- a/library/kzykhys/git/src/PHPGit/Git.php
+++ /dev/null
@@ -1,308 +0,0 @@
-<?php
-
-namespace PHPGit;
-
-use PHPGit\Command;
-use PHPGit\Exception\GitException;
-use Symfony\Component\Process\Process;
-use Symfony\Component\Process\ProcessBuilder;
-
-/**
- * PHPGit - A Git wrapper for PHP5.3+
- * ==================================
- *
- * [![Latest Unstable Version](https://poser.pugx.org/kzykhys/git/v/unstable.png)](https://packagist.org/packages/kzykhys/git)
- * [![Build Status](https://travis-ci.org/kzykhys/PHPGit.png?branch=master)](https://travis-ci.org/kzykhys/PHPGit)
- * [![Coverage Status](https://coveralls.io/repos/kzykhys/PHPGit/badge.png)](https://coveralls.io/r/kzykhys/PHPGit)
- * [![SensioLabsInsight](https://insight.sensiolabs.com/projects/04f10b57-a113-47ad-8dda-9a6dacbb079f/mini.png)](https://insight.sensiolabs.com/projects/04f10b57-a113-47ad-8dda-9a6dacbb079f)
- *
- * Requirements
- * ------------
- *
- * * PHP5.3
- * * Git
- *
- * Installation
- * ------------
- *
- * Update your composer.json and run `composer update`
- *
- * ``` json
- * {
- * "require": {
- * "kzykhys/git": "dev-master"
- * }
- * }
- * ```
- *
- * Basic Usage
- * -----------
- *
- * ``` php
- * <?php
- *
- * require __DIR__ . '/vendor/autoload.php';
- *
- * $git = new PHPGit\Git();
- * $git->clone('https://github.com/kzykhys/PHPGit.git', '/path/to/repo');
- * $git->setRepository('/path/to/repo');
- * $git->remote->add('production', 'git://example.com/your/repo.git');
- * $git->add('README.md');
- * $git->commit('Adds README.md');
- * $git->checkout('release');
- * $git->merge('master');
- * $git->push();
- * $git->push('production', 'release');
- * $git->tag->create('v1.0.1', 'release');
- *
- * foreach ($git->tree('release') as $object) {
- * if ($object['type'] == 'blob') {
- * echo $git->show($object['file']);
- * }
- * }
- * ```
- *
- * @author Kazuyuki Hayashi <hayashi@valnur.net>
- * @license MIT
- *
- * @method add($file, $options = array()) Add file contents to the index
- * @method archive($file, $tree = null, $path = null, $options = array()) Create an archive of files from a named tree
- * @method branch($options = array()) List both remote-tracking branches and local branches
- * @method checkout($branch, $options = array()) Checkout a branch or paths to the working tree
- * @method clone($repository, $path = null, $options = array()) Clone a repository into a new directory
- * @method commit($message = '', $options = array()) Record changes to the repository
- * @method config($options = array()) List all variables set in config file
- * @method describe($committish = null, $options = array()) Returns the most recent tag that is reachable from a commit
- * @method fetch($repository, $refspec = null, $options = array()) Fetches named heads or tags from one or more other repositories
- * @method init($path, $options = array()) Create an empty git repository or reinitialize an existing one
- * @method log($path = null, $options = array()) Returns the commit logs
- * @method merge($commit, $message = null, $options = array()) Incorporates changes from the named commits into the current branch
- * @method mv($source, $destination, $options = array()) Move or rename a file, a directory, or a symlink
- * @method pull($repository = null, $refspec = null, $options = array()) Fetch from and merge with another repository or a local branch
- * @method push($repository = null, $refspec = null, $options = array()) Update remote refs along with associated objects
- * @method rebase($upstream = null, $branch = null, $options = array()) Forward-port local commits to the updated upstream head
- * @method remote() Returns an array of existing remotes
- * @method reset($commit = null, $paths = array()) Resets the index entries for all <paths> to their state at <commit>
- * @method rm($file, $options = array()) Remove files from the working tree and from the index
- * @method shortlog($commits = array()) Summarize 'git log' output
- * @method show($object, $options = array()) Shows one or more objects (blobs, trees, tags and commits)
- * @method stash() Save your local modifications to a new stash, and run git reset --hard to revert them
- * @method status($options = array()) Show the working tree status
- * @method tag() Returns an array of tags
- * @method tree($branch = 'master', $path = '') List the contents of a tree object
- */
-class Git
-{
-
- /** @var Command\AddCommand */
- public $add;
-
- /** @var Command\ArchiveCommand */
- public $archive;
-
- /** @var Command\BranchCommand */
- public $branch;
-
- /** @var Command\CatCommand */
- public $cat;
-
- /** @var Command\CheckoutCommand */
- public $checkout;
-
- /** @var Command\CloneCommand */
- public $clone;
-
- /** @var Command\CommitCommand */
- public $commit;
-
- /** @var Command\ConfigCommand */
- public $config;
-
- /** @var Command\DescribeCommand */
- public $describe;
-
- // Not implemented yet
- public $diff;
-
- /** @var Command\FetchCommand */
- public $fetch;
-
- /** @var Command\InitCommand */
- public $init;
-
- /** @var Command\LogCommand */
- public $log;
-
- /** @var Command\MergeCommand */
- public $merge;
-
- /** @var Command\MvCommand */
- public $mv;
-
- /** @var Command\PullCommand */
- public $pull;
-
- /** @var Command\PushCommand */
- public $push;
-
- /** @var Command\RebaseCommand */
- public $rebase;
-
- /** @var Command\RemoteCommand */
- public $remote;
-
- /** @var Command\ResetCommand */
- public $reset;
-
- /** @var Command\RmCommand */
- public $rm;
-
- /** @var Command\ShortlogCommand */
- public $shortlog;
-
- /** @var Command\ShowCommand */
- public $show;
-
- /** @var Command\StashCommand */
- public $stash;
-
- /** @var Command\StatusCommand */
- public $status;
-
- /** @var Command\TagCommand */
- public $tag;
-
- /** @var Command\TreeCommand */
- public $tree;
-
- /** @var string */
- private $bin = 'git';
-
- /** @var string */
- private $directory = '.';
-
- /**
- * Initializes sub-commands
- */
- public function __construct()
- {
- $this->add = new Command\AddCommand($this);
- $this->archive = new Command\ArchiveCommand($this);
- $this->branch = new Command\BranchCommand($this);
- $this->cat = new Command\CatCommand($this);
- $this->checkout = new Command\CheckoutCommand($this);
- $this->clone = new Command\CloneCommand($this);
- $this->commit = new Command\CommitCommand($this);
- $this->config = new Command\ConfigCommand($this);
- $this->describe = new Command\DescribeCommand($this);
- $this->fetch = new Command\FetchCommand($this);
- $this->init = new Command\InitCommand($this);
- $this->log = new Command\LogCommand($this);
- $this->merge = new Command\MergeCommand($this);
- $this->mv = new Command\MvCommand($this);
- $this->pull = new Command\PullCommand($this);
- $this->push = new Command\PushCommand($this);
- $this->rebase = new Command\RebaseCommand($this);
- $this->remote = new Command\RemoteCommand($this);
- $this->reset = new Command\ResetCommand($this);
- $this->rm = new Command\RmCommand($this);
- $this->shortlog = new Command\ShortlogCommand($this);
- $this->show = new Command\ShowCommand($this);
- $this->stash = new Command\StashCommand($this);
- $this->status = new Command\StatusCommand($this);
- $this->tag = new Command\TagCommand($this);
- $this->tree = new Command\TreeCommand($this);
- }
-
- /**
- * Calls sub-commands
- *
- * @param string $name The name of a property
- * @param array $arguments An array of arguments
- *
- * @throws \BadMethodCallException
- * @return mixed
- */
- public function __call($name, $arguments)
- {
- if (isset($this->{$name}) && is_callable($this->{$name})) {
- return call_user_func_array($this->{$name}, $arguments);
- }
-
- throw new \BadMethodCallException(sprintf('Call to undefined method PHPGit\Git::%s()', $name));
- }
-
- /**
- * Sets the Git binary path
- *
- * @param string $bin
- *
- * @return Git
- */
- public function setBin($bin)
- {
- $this->bin = $bin;
-
- return $this;
- }
-
- /**
- * Sets the Git repository path
- *
- * @var string $directory
- *
- * @return Git
- */
- public function setRepository($directory)
- {
- $this->directory = $directory;
-
- return $this;
- }
-
- /**
- * Returns version number
- *
- * @return mixed
- */
- public function getVersion()
- {
- $process = $this->getProcessBuilder()
- ->add('--version')
- ->getProcess();
-
- return $this->run($process);
- }
-
- /**
- * Returns an instance of ProcessBuilder
- *
- * @return ProcessBuilder
- */
- public function getProcessBuilder()
- {
- return ProcessBuilder::create()
- ->setPrefix($this->bin)
- ->setWorkingDirectory($this->directory);
- }
-
- /**
- * Executes a process
- *
- * @param Process $process The process to run
- *
- * @throws Exception\GitException
- * @return mixed
- */
- public function run(Process $process)
- {
- $process->run();
-
- if (!$process->isSuccessful()) {
- throw new GitException($process->getErrorOutput(), $process->getExitCode(), $process->getCommandLine());
- }
-
- return $process->getOutput();
- }
-
-} \ No newline at end of file