src/Gitonomy/Git/Repository.php
private function getProcess($command, $args = array())
    {
        $base = array($this->command, '--git-dir', $this->gitDir);

        if ($this->workingDir) {
            $base = array_merge($base, array('--work-tree', $this->workingDir));
        }

        $base[] = $command;

        $commandlineArguments = array_merge($base, $args);
        $commandline = $this->normalizeCommandlineArguments($commandlineArguments);

        $process = new Process($commandline);
        $process->setEnv($this->environmentVariables);
        $process->setTimeout($this->processTimeout);
        $process->setIdleTimeout($this->processTimeout);

        return $process;
    }
private function getProcess($command, $args = array())
    {
        $base = array($this->command, '--git-dir', $this->gitDir);

        if ($this->workingDir) {
            $base = array_merge($base, array('--work-tree', $this->workingDir));
        }

        $base[] = $command;

        $commandlineArguments = array_merge($base, $args);
        $commandline = $this->normalizeCommandlineArguments($commandlineArguments);

        $process = new Process($commandline);
        $process->setEnv($this->environmentVariables);
        $process->setTimeout($this->processTimeout);
        $process->setIdleTimeout($this->processTimeout);

        return $process;
    }
This internal method is used to create a process object.

Made private to be sure that process creation is handled through the run method.
run method ensures logging and debug.

@see self::run