logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Git::Raw::Walker - Git revwalker class

Author

       Alessandro Ghedini <alexbio@cpan.org>

Description

       A Git::Raw::Walker represents a graph walker used to walk through the repository's revisions (sort of
       like "git log").

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

Methods

create($repo)
       Create a new revision walker.

   sorting(\@order)
       Change the sorting mode when iterating through the repository's contents.  Values for @order may be one
       or more of the following:

       •   "none"

           Sort   the   repository   contents  in  no  particular  ordering,  that  is,  sorting  is  arbitrary,
           implementation-specific and subject to change at any time. (Default)

       •   "topological"

           Sort the repository contents in topological order (parents before children).  This sorting  mode  may
           be combined with time sorting.

       •   "time"

           Sort  the  repository  contents  by  commit  time. This sorting mode may be combined with topological
           sorting.

       •   "reverse"

           Iterate through the repository contents in reverse order. This sorting mode may be combined with  any
           of the above.

   push($commit)
       Push a Git::Raw::Commit to the list of commits to be used as roots when starting a revision walk.

   push_glob($glob)
       Push references by $glob to the list of commits to be used as roots when starting a revision walk.

   push_ref($name)
       Push a reference by $name to the list of commits to be used as roots when starting a revision walk.

   push_head()
       Push HEAD of the repository to the list of commits to be used as roots when starting a revision walk.

   push_range($start,$end)
       Push  and  hide  the respective endpoints of the given range. $start and $end should be "commitish", that
       is, it should be a Git::Raw::Commit or Git::Raw::Reference object, or alternatively a commit id or commit
       id prefix.

   push_range($range)
       Push  and  hide  the  respective  endpoints  of  the  given  range.  $range  should  be   of   the   form
       "start_commit_id..end_commit_id".

   hide($commit)
       Hide a Git::Raw::Commit and its ancestors from the walker.

   hide_glob($glob)
       Hide references by $glob and all ancestors from the walker.

   hide_ref($name)
       Hide a reference by $name and its ancestors from the walker.

   hide_head()
       Hide HEAD of the repository and its ancestors from the walker.

   next()
       Retrieve  the  next  commit from the revision walk. Returns a Git::Raw::Commit object or "undef" if there
       are no commits.

   all()
       Retrieve all commits. Returns a list of Git::Raw::Commit objects.

   reset()
       Reset the revision walker (this is done automatically at the end of a walk).

Name

       Git::Raw::Walker - Git revwalker class

Synopsis

           use Git::Raw;

           # open the Git repository at $path
           my $repo = Git::Raw::Repository -> open($path);

           # create a new walker
           my $log  = $repo -> walker;

           # push the head of the repository
           $log -> push_head;

           # print all commit messages
           while (my $commit = $log -> next) {
             say $commit -> message;
           }

Version

       version 0.90

See Also