---
name: "Git::Raw::Graph"
section: "3pm"
platform: "linux"
package: "libgit-raw-perl"
version: "0.90+ds-3+b1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Git::Raw::Graph"
---

# Git::Raw::Graph(3pm)

Git graph class

## NAME

Git::Raw::Graph - Git graph class

## VERSION

version 0.90

## SYNOPSIS

```
    use Git::Raw;
    # open the Git repository at $path
    my $repo = Git::Raw::Repository -> open($path);
    my $commit1 = Git::Raw::Commit -> lookup($repo,
      '4a202b346bb0fb0db7eff3cffeb3c70babbd2045');
    my $commit2 = Git::Raw::Commit -> lookup($repo,
      '5b5b025afb0b4c913b4c338a42934a3863bf3644');
    if (Git::Raw::Graph -> is_descendant_of($repo, $commit1, $commit2)) {
      print $commit1 -> id, ' is a descendant of ', $commit2 -> id, "\n";
    } else {
      print $commit1 -> id, ' is a not descendant of ', $commit2 -> id, "\n";
    }
```

## DESCRIPTION

**WARNING**: The API of this module is unstable and may change without warning (any change will be appropriately documented in the changelog).

### ahead( $repo, $local, $upstream )

Get the commits `$local` is ahead of `$upstream`. `$local` and `$upstream` should be peelable to a Git::Raw::Commit object, that is, it should be a Git::Raw::Commit or Git::Raw::Reference object, or alternatively a commit id or commit id prefix. This method returns a list of Git::Raw::Commit objects, sorted in topological order.

### behind( $repo, $local, $upstream )

Get the commits `$local` is behind `$upstream`. `$local` and `$upstream` should be peelable to a Git::Raw::Commit object, that is, it should be a Git::Raw::Commit or Git::Raw::Reference object, or alternatively a commit id or commit id prefix. This method returns a list of Git::Raw::Commit objects, sorted in topological order.

### ahead\_behind( $repo, $local, $upstream )

Get the unique commits between `$local` and `$upstream`. `$local` and `$upstream` should be peelable to a Git::Raw::Commit object, that is, it should be a Git::Raw::Commit or Git::Raw::Reference object, or alternatively a commit id or commit id prefix. This method returns a hash reference with optional members `"ahead"` and `"behind"`, each an array of Git::Raw::Commit objects, sorted in topological order.

### is\_descendant\_of( $repo, $commitish, $ancestor )

Determine if `$commitish` is the descendant of `$ancestor`. `$commitish` and `$ancestor` should be peelable to a Git::Raw::Commit object, that is, it should be a Git::Raw::Commit or Git::Raw::Reference object, or alternatively a commit id or commit id prefix.

## AUTHOR

Jacques Germishuys \<jacquesg@cpan.org\>

## LICENSE AND COPYRIGHT

Copyright 2014 Jacques Germishuys.

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.
