@@ 238-248 (lines=11) @@ | ||
235 | * @throws \GitWrapper\GitException |
|
236 | * Thrown when HEAD does not have a remote tracking branch. |
|
237 | */ |
|
238 | public function isAhead() |
|
239 | { |
|
240 | if (!$this->isTracking()) { |
|
241 | throw new GitException('Error: HEAD does not have a remote tracking branch. Cannot check if it is ahead.'); |
|
242 | } |
|
243 | $this->clearOutput(); |
|
244 | $merge_base = (string) $this->run(array('merge-base @ @{u}')); |
|
245 | $local_sha = (string) $this->run(array('rev-parse @')); |
|
246 | $remote_sha = (string) $this->run(array('rev-parse @{u}')); |
|
247 | return $merge_base === $remote_sha && $local_sha !== $remote_sha; |
|
248 | } |
|
249 | ||
250 | /** |
|
251 | * Returns whether HEAD is behind its remote tracking branch. |
|
@@ 261-271 (lines=11) @@ | ||
258 | * @throws \GitWrapper\GitException |
|
259 | * Thrown when HEAD does not have a remote tracking branch. |
|
260 | */ |
|
261 | public function isBehind() |
|
262 | { |
|
263 | if (!$this->isTracking()) { |
|
264 | throw new GitException('Error: HEAD does not have a remote tracking branch. Cannot check if it is behind.'); |
|
265 | } |
|
266 | $this->clearOutput(); |
|
267 | $merge_base = (string) $this->run(array('merge-base @ @{u}')); |
|
268 | $local_sha = (string) $this->run(array('rev-parse @')); |
|
269 | $remote_sha = (string) $this->run(array('rev-parse @{u}')); |
|
270 | return $merge_base === $local_sha && $local_sha !== $remote_sha; |
|
271 | } |
|
272 | ||
273 | /** |
|
274 | * Returns whether HEAD needs to be merged with its remote tracking branch. |
|
@@ 286-296 (lines=11) @@ | ||
283 | * @throws \GitWrapper\GitException |
|
284 | * Thrown when HEAD does not have a remote tracking branch. |
|
285 | */ |
|
286 | public function needsMerge() |
|
287 | { |
|
288 | if (!$this->isTracking()) { |
|
289 | throw new GitException('Error: HEAD does not have a remote tracking branch. Cannot check if it is behind.'); |
|
290 | } |
|
291 | $this->clearOutput(); |
|
292 | $merge_base = (string) $this->run(array('merge-base @ @{u}')); |
|
293 | $local_sha = (string) $this->run(array('rev-parse @')); |
|
294 | $remote_sha = (string) $this->run(array('rev-parse @{u}')); |
|
295 | return $merge_base !== $local_sha && $merge_base !== $remote_sha; |
|
296 | } |
|
297 | ||
298 | /** |
|
299 | * Returns a GitBranches object containing information on the repository's |