<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations.  -->
<repository version="1.2"
            xmlns="http://www.gtk.org/introspection/core/1.0"
            xmlns:c="http://www.gtk.org/introspection/c/1.0"
            xmlns:doc="http://www.gtk.org/introspection/doc/1.0"
            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="GLib" version="2.0"/>
  <include name="GObject" version="2.0"/>
  <include name="Gio" version="2.0"/>
  <package name="libgit2-glib-1.0"/>
  <c:include name="libgit2-glib/ggit.h"/>
  <doc:format name="unknown"/>
  <namespace name="Ggit"
             version="1.0"
             shared-library="libgit2-glib-1.0.so.6.1"
             c:identifier-prefixes="Ggit"
             c:symbol-prefixes="ggit">
    <function-macro name="ANNOTATED_COMMIT"
                    c:identifier="GGIT_ANNOTATED_COMMIT"
                    introspectable="0">
      <source-position filename="libgit2-glib/ggit-annotated-commit.h"
                       line="35"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <record name="AnnotatedCommit"
            c:type="GgitAnnotatedCommit"
            opaque="1"
            glib:type-name="GgitAnnotatedCommit"
            glib:get-type="ggit_annotated_commit_get_type"
            c:symbol-prefix="annotated_commit">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="35">Represents an annotated commit object.</doc>
      <source-position filename="libgit2-glib/ggit-types.h" line="40"/>
      <constructor name="new_from_ref"
                   c:identifier="ggit_annotated_commit_new_from_ref"
                   throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-annotated-commit.c"
             line="113">Create a GgitAnnotatedCommit from the given reference</doc>
        <source-position filename="libgit2-glib/ggit-annotated-commit.h"
                         line="48"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-annotated-commit.c"
               line="121">a #GgitAnnotatedCommit.</doc>
          <type name="AnnotatedCommit" c:type="GgitAnnotatedCommit*"/>
        </return-value>
        <parameters>
          <parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-annotated-commit.c"
                 line="115">the repository</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </parameter>
          <parameter name="ref" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-annotated-commit.c"
                 line="116">the reference to use to lookup the git_annotated_commit</doc>
            <type name="Ref" c:type="GgitRef*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_id" c:identifier="ggit_annotated_commit_get_id">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-annotated-commit.c"
             line="92">Gets the commit ID that the given @annotated_commit refs to.</doc>
        <source-position filename="libgit2-glib/ggit-annotated-commit.h"
                         line="46"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-annotated-commit.c"
               line="98">the commit ID that the given @annotated_commit refs to or %NULL.</doc>
          <type name="OId" c:type="GgitOId*"/>
        </return-value>
        <parameters>
          <instance-parameter name="annotated_commit"
                              transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-annotated-commit.c"
                 line="94">a #GgitAnnotatedCommit.</doc>
            <type name="AnnotatedCommit" c:type="GgitAnnotatedCommit*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="ggit_annotated_commit_ref">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-annotated-commit.c"
             line="54">Atomically increments the reference count of @annotated_commit by one.
This function is MT-safe and may be called from any thread.</doc>
        <source-position filename="libgit2-glib/ggit-annotated-commit.h"
                         line="43"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-annotated-commit.c"
               line="61">a newly allocated #GgitAnnotatedCommit or %NULL.</doc>
          <type name="AnnotatedCommit" c:type="GgitAnnotatedCommit*"/>
        </return-value>
        <parameters>
          <instance-parameter name="annotated_commit"
                              transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-annotated-commit.c"
                 line="56">a #GgitAnnotatedCommit.</doc>
            <type name="AnnotatedCommit" c:type="GgitAnnotatedCommit*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="ggit_annotated_commit_unref">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-annotated-commit.c"
             line="73">Atomically decrements the reference count of @annotated_commit by one.
If the reference count drops to 0, @annotated_commit is freed.</doc>
        <source-position filename="libgit2-glib/ggit-annotated-commit.h"
                         line="44"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="annotated_commit"
                              transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-annotated-commit.c"
                 line="75">a #GgitAnnotatedCommit.</doc>
            <type name="AnnotatedCommit" c:type="GgitAnnotatedCommit*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <bitfield name="AttributeCheckFlags"
              glib:type-name="GgitAttributeCheckFlags"
              glib:get-type="ggit_attribute_check_flags_get_type"
              c:type="GgitAttributeCheckFlags">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="939">Attribute check flags indicate the order in which to check for gitattributes.
git core uses @GGIT_ATTRIBUTE_CHECK_FILE_THEN_INDEX for all operations,
except on checkout, where it uses @GGIT_ATTRIBUTE_CHECK_INDEX_THEN_FILE.</doc>
      <member name="file_then_index"
              value="0"
              c:identifier="GGIT_ATTRIBUTE_CHECK_FILE_THEN_INDEX"
              glib:nick="file-then-index"
              glib:name="GGIT_ATTRIBUTE_CHECK_FILE_THEN_INDEX">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="941">check working directory, then index.</doc>
      </member>
      <member name="index_then_file"
              value="1"
              c:identifier="GGIT_ATTRIBUTE_CHECK_INDEX_THEN_FILE"
              glib:nick="index-then-file"
              glib:name="GGIT_ATTRIBUTE_CHECK_INDEX_THEN_FILE">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="942">check index, then working directory.</doc>
      </member>
      <member name="index_only"
              value="2"
              c:identifier="GGIT_ATTRIBUTE_CHECK_INDEX_ONLY"
              glib:nick="index-only"
              glib:name="GGIT_ATTRIBUTE_CHECK_INDEX_ONLY">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="943">check only index.</doc>
      </member>
      <member name="no_system"
              value="4"
              c:identifier="GGIT_ATTRIBUTE_CHECK_NO_SYSTEM"
              glib:nick="no-system"
              glib:name="GGIT_ATTRIBUTE_CHECK_NO_SYSTEM">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="944">ignore system wide attributes.</doc>
      </member>
    </bitfield>
    <function-macro name="BLAME_OPTIONS"
                    c:identifier="GGIT_BLAME_OPTIONS"
                    introspectable="0">
      <source-position filename="libgit2-glib/ggit-blame-options.h" line="32"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="BRANCH_ENUMERATOR"
                    c:identifier="GGIT_BRANCH_ENUMERATOR"
                    introspectable="0">
      <source-position filename="libgit2-glib/ggit-branch-enumerator.h"
                       line="33"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <constant name="BUILD_TYPE" value="plain" c:type="GGIT_BUILD_TYPE">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-version.h"
           line="52">The build type of the installed build.</doc>
      <source-position filename="libgit2-glib/ggit-version.h" line="56"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <class name="Blame"
           c:symbol-prefix="blame"
           c:type="GgitBlame"
           parent="Native"
           glib:type-name="GgitBlame"
           glib:get-type="ggit_blame_get_type"
           glib:type-struct="BlameClass">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-blame.c"
           line="26">Represents a blame.</doc>
      <source-position filename="libgit2-glib/ggit-blame.h" line="33"/>
      <function name="get_flags" c:identifier="ggit_blame_get_flags">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-blame-options.c"
             line="100">Get the blame options flags.</doc>
        <source-position filename="libgit2-glib/ggit-blame-options.h"
                         line="44"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-blame-options.c"
               line="106">a #GgitBlameFlags.</doc>
          <type name="BlameFlags" c:type="GgitBlameFlags"/>
        </return-value>
        <parameters>
          <parameter name="blame_options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-blame-options.c"
                 line="102">a #GgitBlameOptions.</doc>
            <type name="BlameOptions" c:type="GgitBlameOptions*"/>
          </parameter>
        </parameters>
      </function>
      <function name="set_flags" c:identifier="ggit_blame_set_flags">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-blame-options.c"
             line="117">Set the blame options flags.</doc>
        <source-position filename="libgit2-glib/ggit-blame-options.h"
                         line="45"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="blame_options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-blame-options.c"
                 line="119">a #GgitBlameOptions.</doc>
            <type name="BlameOptions" c:type="GgitBlameOptions*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-blame-options.c"
                 line="120">a #GgitBlameFlags.</doc>
            <type name="BlameFlags" c:type="GgitBlameFlags"/>
          </parameter>
        </parameters>
      </function>
      <method name="from_buffer"
              c:identifier="ggit_blame_from_buffer"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-blame.c"
             line="354">Get blame data for a file that has been modified in memory. @blame is a
pre-calculated blame for the in-odb history of the file. This means that once
a file blame is completed (which can be expensitve), updating the buffer
blame is very fast.

Lines that differ between the buffer and the committed version are marked as
having a zero id for their #ggit_blame_hunk_get_final_commit_id.</doc>
        <source-position filename="libgit2-glib/ggit-blame.h" line="64"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-blame.c"
               line="369">a #GgitBlame or %NULL.</doc>
          <type name="Blame" c:type="GgitBlame*"/>
        </return-value>
        <parameters>
          <instance-parameter name="blame" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-blame.c"
                 line="356">a #GgitBlame.</doc>
            <type name="Blame" c:type="GgitBlame*"/>
          </instance-parameter>
          <parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-blame.c"
                 line="357">the contents of the file.</doc>
            <array length="1" zero-terminated="0" c:type="const guint8*">
              <type name="guint8" c:type="guint8"/>
            </array>
          </parameter>
          <parameter name="buffer_length" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-blame.c"
                 line="358">the length of the buffer.</doc>
            <type name="gsize" c:type="gsize"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_hunk_by_index"
              c:identifier="ggit_blame_get_hunk_by_index">
        <source-position filename="libgit2-glib/ggit-blame.h" line="61"/>
        <return-value transfer-ownership="full">
          <type name="BlameHunk" c:type="GgitBlameHunk*"/>
        </return-value>
        <parameters>
          <instance-parameter name="blame" transfer-ownership="none">
            <type name="Blame" c:type="GgitBlame*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_hunk_by_line"
              c:identifier="ggit_blame_get_hunk_by_line">
        <source-position filename="libgit2-glib/ggit-blame.h" line="58"/>
        <return-value transfer-ownership="full">
          <type name="BlameHunk" c:type="GgitBlameHunk*"/>
        </return-value>
        <parameters>
          <instance-parameter name="blame" transfer-ownership="none">
            <type name="Blame" c:type="GgitBlame*"/>
          </instance-parameter>
          <parameter name="line" transfer-ownership="none">
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_hunk_count" c:identifier="ggit_blame_get_hunk_count">
        <source-position filename="libgit2-glib/ggit-blame.h" line="56"/>
        <return-value transfer-ownership="none">
          <type name="guint32" c:type="guint32"/>
        </return-value>
        <parameters>
          <instance-parameter name="blame" transfer-ownership="none">
            <type name="Blame" c:type="GgitBlame*"/>
          </instance-parameter>
        </parameters>
      </method>
    </class>
    <record name="BlameClass"
            c:type="GgitBlameClass"
            glib:is-gtype-struct-for="Blame">
      <source-position filename="libgit2-glib/ggit-blame.h" line="33"/>
      <field name="parent_class">
        <type name="NativeClass" c:type="GgitNativeClass"/>
      </field>
    </record>
    <bitfield name="BlameFlags"
              glib:type-name="GgitBlameFlags"
              glib:get-type="ggit_blame_flags_get_type"
              c:type="GgitBlameFlags">
      <member name="normal"
              value="0"
              c:identifier="GGIT_BLAME_NORMAL"
              glib:nick="normal"
              glib:name="GGIT_BLAME_NORMAL">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="334">Normal blame, the default.</doc>
      </member>
      <member name="track_copies_same_file"
              value="1"
              c:identifier="GGIT_BLAME_TRACK_COPIES_SAME_FILE"
              glib:nick="track-copies-same-file"
              glib:name="GGIT_BLAME_TRACK_COPIES_SAME_FILE">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="335">Track lines that have moved within a file
                                    (like git blame -M)</doc>
      </member>
    </bitfield>
    <record name="BlameHunk"
            c:type="GgitBlameHunk"
            opaque="1"
            glib:type-name="GgitBlameHunk"
            glib:get-type="ggit_blame_hunk_get_type"
            c:symbol-prefix="blame_hunk">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="119">Represents a blame hunk.</doc>
      <source-position filename="libgit2-glib/ggit-types.h" line="124"/>
      <method name="get_final_commit_id"
              c:identifier="ggit_blame_hunk_get_final_commit_id">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-blame.c"
             line="165">Get the id of the commit where this hunk was last changed.</doc>
        <source-position filename="libgit2-glib/ggit-blame.h" line="41"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-blame.c"
               line="171">a #GgitOId or %NULL.</doc>
          <type name="OId" c:type="GgitOId*"/>
        </return-value>
        <parameters>
          <instance-parameter name="blame_hunk" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-blame.c"
                 line="167">a #GgitBlameHunk.</doc>
            <type name="BlameHunk" c:type="GgitBlameHunk*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_final_signature"
              c:identifier="ggit_blame_hunk_get_final_signature">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-blame.c"
             line="200">Get the signature of the final version of the hunk.</doc>
        <source-position filename="libgit2-glib/ggit-blame.h" line="43"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-blame.c"
               line="206">a #GgitSignature or %NULL.</doc>
          <type name="Signature" c:type="GgitSignature*"/>
        </return-value>
        <parameters>
          <instance-parameter name="blame_hunk" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-blame.c"
                 line="202">a #GgitBlameHunk.</doc>
            <type name="BlameHunk" c:type="GgitBlameHunk*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_final_start_line_number"
              c:identifier="ggit_blame_hunk_get_final_start_line_number">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-blame.c"
             line="182">Get the line number where the hunk begins in the final version of the file.
Line numbers start at 1.</doc>
        <source-position filename="libgit2-glib/ggit-blame.h" line="42"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-blame.c"
               line="189">the final hunk line number.</doc>
          <type name="guint16" c:type="guint16"/>
        </return-value>
        <parameters>
          <instance-parameter name="blame_hunk" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-blame.c"
                 line="184">a #GgitBlameHunk.</doc>
            <type name="BlameHunk" c:type="GgitBlameHunk*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_lines_in_hunk"
              c:identifier="ggit_blame_hunk_get_lines_in_hunk">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-blame.c"
             line="148">Get the number of lines in the hunk.</doc>
        <source-position filename="libgit2-glib/ggit-blame.h" line="39"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-blame.c"
               line="154">the number of lines in the hunk.</doc>
          <type name="guint16" c:type="guint16"/>
        </return-value>
        <parameters>
          <instance-parameter name="blame_hunk" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-blame.c"
                 line="150">a #GgitBlameHunk.</doc>
            <type name="BlameHunk" c:type="GgitBlameHunk*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_orig_commit_id"
              c:identifier="ggit_blame_hunk_get_orig_commit_id">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-blame.c"
             line="217">Get the id of the commit where the hunk was found. This is usually the same
the final commit id, except when #GGIT_BLAME_TRACK_COPIES_ANY_COMMIT was used.</doc>
        <source-position filename="libgit2-glib/ggit-blame.h" line="45"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-blame.c"
               line="224">a #GgitOId or %NULL.</doc>
          <type name="OId" c:type="GgitOId*"/>
        </return-value>
        <parameters>
          <instance-parameter name="blame_hunk" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-blame.c"
                 line="219">a #GgitBlameHunk.</doc>
            <type name="BlameHunk" c:type="GgitBlameHunk*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_orig_path"
              c:identifier="ggit_blame_hunk_get_orig_path">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-blame.c"
             line="271">Get the path of the file where this hunk originated, as of the commit
specified by #ggit_blame_hunk_get_orig_commit_id.</doc>
        <source-position filename="libgit2-glib/ggit-blame.h" line="48"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-blame.c"
               line="278">the path or %NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="blame_hunk" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-blame.c"
                 line="273">a #GgitBlameHunk.</doc>
            <type name="BlameHunk" c:type="GgitBlameHunk*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_orig_signature"
              c:identifier="ggit_blame_hunk_get_orig_signature">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-blame.c"
             line="254">Get the signature of the commit specified by #ggit_blame_hunk_get_orig_commit_id.</doc>
        <source-position filename="libgit2-glib/ggit-blame.h" line="47"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-blame.c"
               line="260">a #GgitSignature or %NULL.</doc>
          <type name="Signature" c:type="GgitSignature*"/>
        </return-value>
        <parameters>
          <instance-parameter name="blame_hunk" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-blame.c"
                 line="256">a #GgitBlameHunk.</doc>
            <type name="BlameHunk" c:type="GgitBlameHunk*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_orig_start_line_number"
              c:identifier="ggit_blame_hunk_get_orig_start_line_number">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-blame.c"
             line="235">Get the line number where the hunk begins in the file specified by
#ggit_blame_hunk_get_orig_path at the commit specified by
#ggit_blame_hunk_get_orig_commit_id. Line numbers start at 1.</doc>
        <source-position filename="libgit2-glib/ggit-blame.h" line="46"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-blame.c"
               line="243">the orig hunk line number.</doc>
          <type name="guint16" c:type="guint16"/>
        </return-value>
        <parameters>
          <instance-parameter name="blame_hunk" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-blame.c"
                 line="237">a #GgitBlameHunk.</doc>
            <type name="BlameHunk" c:type="GgitBlameHunk*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_boundary" c:identifier="ggit_blame_hunk_is_boundary">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-blame.c"
             line="288">Get whether the hunk has been tracked to a boundary commit (the root,
or the commit specified in #ggit_blame_options_set_oldest_commit).</doc>
        <source-position filename="libgit2-glib/ggit-blame.h" line="50"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-blame.c"
               line="295">whether the hunk is at a boundary commit.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="blame_hunk" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-blame.c"
                 line="290">a #GgitBlameHunk.</doc>
            <type name="BlameHunk" c:type="GgitBlameHunk*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="ggit_blame_hunk_ref">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-blame.c"
             line="59">Atomically increments the reference count of @blame_hunk by one.
This function is MT-safe and may be called from any thread.</doc>
        <source-position filename="libgit2-glib/ggit-blame.h" line="36"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-blame.c"
               line="66">a #GgitBlameHunk or %NULL.</doc>
          <type name="BlameHunk" c:type="GgitBlameHunk*"/>
        </return-value>
        <parameters>
          <instance-parameter name="blame_hunk" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-blame.c"
                 line="61">a #GgitBlameHunk.</doc>
            <type name="BlameHunk" c:type="GgitBlameHunk*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="ggit_blame_hunk_unref">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-blame.c"
             line="78">Atomically decrements the reference count of @blame_hunk by one.
If the reference count drops to 0, @blame_hunk is freed.</doc>
        <source-position filename="libgit2-glib/ggit-blame.h" line="37"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="blame_hunk" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-blame.c"
                 line="80">a #GgitBlameHunk.</doc>
            <type name="BlameHunk" c:type="GgitBlameHunk*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <record name="BlameOptions"
            c:type="GgitBlameOptions"
            opaque="1"
            glib:type-name="GgitBlameOptions"
            glib:get-type="ggit_blame_options_get_type"
            c:symbol-prefix="blame_options">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="281">Represents blame options.</doc>
      <source-position filename="libgit2-glib/ggit-types.h" line="286"/>
      <constructor name="new" c:identifier="ggit_blame_options_new">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-blame-options.c"
             line="81">Create a new, empty #GgitBlameOptions.</doc>
        <source-position filename="libgit2-glib/ggit-blame-options.h"
                         line="42"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-blame-options.c"
               line="86">a newly allocated #GgitBlameOptions.</doc>
          <type name="BlameOptions" c:type="GgitBlameOptions*"/>
        </return-value>
      </constructor>
      <method name="copy" c:identifier="ggit_blame_options_copy">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-blame-options.c"
             line="46">Copies @blame_options into a newly allocated #GgitBlameOptions.</doc>
        <source-position filename="libgit2-glib/ggit-blame-options.h"
                         line="39"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-blame-options.c"
               line="52">a newly allocated #GgitBlameOptions or %NULL.</doc>
          <type name="BlameOptions" c:type="GgitBlameOptions*"/>
        </return-value>
        <parameters>
          <instance-parameter name="blame_options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-blame-options.c"
                 line="48">a #GgitBlameOptions.</doc>
            <type name="BlameOptions" c:type="GgitBlameOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="ggit_blame_options_free">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-blame-options.c"
             line="67">Frees @blame_options.</doc>
        <source-position filename="libgit2-glib/ggit-blame-options.h"
                         line="40"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="blame_options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-blame-options.c"
                 line="69">a #GgitBlameOptions.</doc>
            <type name="BlameOptions" c:type="GgitBlameOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_maximum_line"
              c:identifier="ggit_blame_options_get_maximum_line">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-blame-options.c"
             line="274">Get the last line in the file to consider. The default is 1.</doc>
        <source-position filename="libgit2-glib/ggit-blame-options.h"
                         line="60"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-blame-options.c"
               line="280">the last line to consider.</doc>
          <type name="guint32" c:type="guint32"/>
        </return-value>
        <parameters>
          <instance-parameter name="blame_options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-blame-options.c"
                 line="276">a #GgitBlameOptions.</doc>
            <type name="BlameOptions" c:type="GgitBlameOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_minimum_line"
              c:identifier="ggit_blame_options_get_minimum_line">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-blame-options.c"
             line="235">Get the first line in the file to consider. The default is 1.</doc>
        <source-position filename="libgit2-glib/ggit-blame-options.h"
                         line="56"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-blame-options.c"
               line="241">the first line to consider.</doc>
          <type name="guint32" c:type="guint32"/>
        </return-value>
        <parameters>
          <instance-parameter name="blame_options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-blame-options.c"
                 line="237">a #GgitBlameOptions.</doc>
            <type name="BlameOptions" c:type="GgitBlameOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_minimum_match_characters"
              c:identifier="ggit_blame_options_get_minimum_match_characters">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-blame-options.c"
             line="314">Get the minimum number of characters that must be detected as moving/copying
within a file for it to associate those lines with a parent commit. This is
only used when any of the #GGIT_BLAME_TRACK_COPIES_SAME_FILE flag is
specified. The default value is 20.</doc>
        <source-position filename="libgit2-glib/ggit-blame-options.h"
                         line="64"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-blame-options.c"
               line="323">the minimum number of characters.</doc>
          <type name="guint16" c:type="guint16"/>
        </return-value>
        <parameters>
          <instance-parameter name="blame_options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-blame-options.c"
                 line="316">a #GgitBlameOptions.</doc>
            <type name="BlameOptions" c:type="GgitBlameOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_newest_commit"
              c:identifier="ggit_blame_options_get_newest_commit">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-blame-options.c"
             line="134">Get the id of the newest commit to consider in the blame. The default
value of %NULL indicates to use HEAD.</doc>
        <source-position filename="libgit2-glib/ggit-blame-options.h"
                         line="48"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-blame-options.c"
               line="141">a #GgitOId or %NULL.</doc>
          <type name="OId" c:type="GgitOId*"/>
        </return-value>
        <parameters>
          <instance-parameter name="blame_options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-blame-options.c"
                 line="136">a #GgitBlameOptions.</doc>
            <type name="BlameOptions" c:type="GgitBlameOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_oldest_commit"
              c:identifier="ggit_blame_options_get_oldest_commit">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-blame-options.c"
             line="184">Get the id of the oldest commit to consider in the blame. Teh default value
of %NULL indicates to used HEAD.</doc>
        <source-position filename="libgit2-glib/ggit-blame-options.h"
                         line="52"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-blame-options.c"
               line="191">a #GgitOId or %NULL.</doc>
          <type name="OId" c:type="GgitOId*"/>
        </return-value>
        <parameters>
          <instance-parameter name="blame_options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-blame-options.c"
                 line="186">a #GgitBlameOptions.</doc>
            <type name="BlameOptions" c:type="GgitBlameOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_maximum_line"
              c:identifier="ggit_blame_options_set_maximum_line">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-blame-options.c"
             line="296">Set the last line in the file to consider. Lines start at 1.</doc>
        <source-position filename="libgit2-glib/ggit-blame-options.h"
                         line="61"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="blame_options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-blame-options.c"
                 line="298">a #GgitBlameOptions.</doc>
            <type name="BlameOptions" c:type="GgitBlameOptions*"/>
          </instance-parameter>
          <parameter name="line" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-blame-options.c"
                 line="299">the last line to consider.</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_minimum_line"
              c:identifier="ggit_blame_options_set_minimum_line">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-blame-options.c"
             line="257">Set the first line in the file to consider. Lines start at 1.</doc>
        <source-position filename="libgit2-glib/ggit-blame-options.h"
                         line="57"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="blame_options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-blame-options.c"
                 line="259">a #GgitBlameOptions.</doc>
            <type name="BlameOptions" c:type="GgitBlameOptions*"/>
          </instance-parameter>
          <parameter name="line" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-blame-options.c"
                 line="260">the first line to consider.</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_minimum_match_characters"
              c:identifier="ggit_blame_options_set_minimum_match_characters">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-blame-options.c"
             line="339">Set the minimum number of characters that must be detected as moving/copying
within a file for it to associate those lines with a parent commit. This is
only used when any of the #GGIT_BLAME_TRACK_COPIES_ flags are specified. The
default value is 20.</doc>
        <source-position filename="libgit2-glib/ggit-blame-options.h"
                         line="67"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="blame_options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-blame-options.c"
                 line="341">a #GgitBlameOptions.</doc>
            <type name="BlameOptions" c:type="GgitBlameOptions*"/>
          </instance-parameter>
          <parameter name="characters" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-blame-options.c"
                 line="342">the minimum number of characters.</doc>
            <type name="guint16" c:type="guint16"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_newest_commit"
              c:identifier="ggit_blame_options_set_newest_commit">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-blame-options.c"
             line="157">Set the id of the newest commit to consider in the blame. Specify %NULL to
set the default value which indicates to use HEAD.</doc>
        <source-position filename="libgit2-glib/ggit-blame-options.h"
                         line="49"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="blame_options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-blame-options.c"
                 line="159">a #GgitBlameOptions.</doc>
            <type name="BlameOptions" c:type="GgitBlameOptions*"/>
          </instance-parameter>
          <parameter name="oid"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-blame-options.c"
                 line="160">a #GgitOId or %NULL.</doc>
            <type name="OId" c:type="GgitOId*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_oldest_commit"
              c:identifier="ggit_blame_options_set_oldest_commit">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-blame-options.c"
             line="207">Set the id of the oldest commit to consider in the blame. Specify %NULL to
set the default value which indicates to consider the first commit without
a parent.</doc>
        <source-position filename="libgit2-glib/ggit-blame-options.h"
                         line="53"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="blame_options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-blame-options.c"
                 line="209">a #GgitBlameOptions.</doc>
            <type name="BlameOptions" c:type="GgitBlameOptions*"/>
          </instance-parameter>
          <parameter name="oid"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-blame-options.c"
                 line="210">a #GgitOId.</doc>
            <type name="OId" c:type="GgitOId*"/>
          </parameter>
        </parameters>
      </method>
    </record>
    <class name="Blob"
           c:symbol-prefix="blob"
           c:type="GgitBlob"
           parent="Object"
           glib:type-name="GgitBlob"
           glib:get-type="ggit_blob_get_type"
           glib:type-struct="BlobClass">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-blob.c"
           line="24">Represents a blob object.</doc>
      <source-position filename="libgit2-glib/ggit-blob.h" line="34"/>
      <method name="get_raw_content" c:identifier="ggit_blob_get_raw_content">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-blob.c"
             line="65">Gets a read-only buffer with the raw contents of @blob.

A pointer to the raw contents of @blob is returned.
This pointer is owned internally by @object and must
not be free'd. The pointer may be invalidated at a later
time.</doc>
        <source-position filename="libgit2-glib/ggit-blob.h" line="39"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-blob.c"
               line="77">the blob content or
         %NULL if the blob does not have any content.</doc>
          <array length="0" zero-terminated="0" c:type="const guchar*">
            <type name="guint8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="blob" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-blob.c"
                 line="67">a #GgitBlob.</doc>
            <type name="Blob" c:type="GgitBlob*"/>
          </instance-parameter>
          <parameter name="length"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-blob.c"
                 line="68">return value of the length of the data.</doc>
            <type name="gsize" c:type="gsize*"/>
          </parameter>
        </parameters>
      </method>
      <method name="is_binary" c:identifier="ggit_blob_is_binary">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-blob.c"
             line="99">Check whether the blob is binary.</doc>
        <source-position filename="libgit2-glib/ggit-blob.h" line="42"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-blob.c"
               line="105">%TRUE if the blob is binary, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="blob" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-blob.c"
                 line="101">a #GgitBlob.</doc>
            <type name="Blob" c:type="GgitBlob*"/>
          </instance-parameter>
        </parameters>
      </method>
    </class>
    <record name="BlobClass"
            c:type="GgitBlobClass"
            glib:is-gtype-struct-for="Blob">
      <source-position filename="libgit2-glib/ggit-blob.h" line="34"/>
      <field name="parent_class">
        <type name="ObjectClass" c:type="GgitObjectClass"/>
      </field>
    </record>
    <class name="BlobOutputStream"
           c:symbol-prefix="blob_output_stream"
           c:type="GgitBlobOutputStream"
           parent="Gio.OutputStream"
           glib:type-name="GgitBlobOutputStream"
           glib:get-type="ggit_blob_output_stream_get_type"
           glib:type-struct="BlobOutputStreamClass">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-blob-output-stream.c"
           line="29">Represents a blob stream object.</doc>
      <source-position filename="libgit2-glib/ggit-blob-output-stream.h"
                       line="45"/>
      <method name="get_id"
              c:identifier="ggit_blob_output_stream_get_id"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-blob-output-stream.c"
             line="280">Get the id of the written blob. The blob id is only available after the
stream has been properly closed. If an error occurred while writing the blob,
the %NULL is returned and @error is set accordingly.</doc>
        <source-position filename="libgit2-glib/ggit-blob-output-stream.h"
                         line="49"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-blob-output-stream.c"
               line="289">a #GgitOId or %NULL.</doc>
          <type name="OId" c:type="GgitOId*"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-blob-output-stream.c"
                 line="282">a #GgitBlobOutputStream.</doc>
            <type name="BlobOutputStream" c:type="GgitBlobOutputStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="repository"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Repository"/>
      </property>
      <field name="parent_instance">
        <type name="Gio.OutputStream" c:type="GOutputStream"/>
      </field>
    </class>
    <record name="BlobOutputStreamClass"
            c:type="GgitBlobOutputStreamClass"
            glib:is-gtype-struct-for="BlobOutputStream">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-blob-output-stream.h"
           line="35">The class structure for #GgitBlobOutputStreamClass.</doc>
      <source-position filename="libgit2-glib/ggit-blob-output-stream.h"
                       line="45"/>
      <field name="parent_class" readable="0" private="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-blob-output-stream.h"
             line="37">The parent class.</doc>
        <type name="Gio.OutputStreamClass" c:type="GOutputStreamClass"/>
      </field>
    </record>
    <class name="Branch"
           c:symbol-prefix="branch"
           c:type="GgitBranch"
           parent="Ref"
           glib:type-name="GgitBranch"
           glib:get-type="ggit_branch_get_type"
           glib:type-struct="BranchClass">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-branch.c"
           line="26">Represents a branch object.</doc>
      <source-position filename="libgit2-glib/ggit-branch.h" line="35"/>
      <method name="delete" c:identifier="ggit_branch_delete" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-branch.c"
             line="52">Deletes an existing branch reference.

If the branch is successfully deleted, this object is
not useful anymore and if should be freed with g_object_unref().</doc>
        <source-position filename="libgit2-glib/ggit-branch.h" line="39"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="branch" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-branch.c"
                 line="54">a #GgitBranch.</doc>
            <type name="Branch" c:type="GgitBranch*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="ggit_branch_get_name" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-branch.c"
             line="120">Gets the name of the given local or remote branch.</doc>
        <source-position filename="libgit2-glib/ggit-branch.h" line="47"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-branch.c"
               line="127">the name of the given local or remote branch or %NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="branch" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-branch.c"
                 line="122">a #GgitBranch.</doc>
            <type name="Branch" c:type="GgitBranch*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_upstream"
              c:identifier="ggit_branch_get_upstream"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-branch.c"
             line="151">Gets the reference supporting the remote tracking branch,
given a local branch reference.</doc>
        <source-position filename="libgit2-glib/ggit-branch.h" line="50"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-branch.c"
               line="159">the reference supporting the remote tracking branch or %NULL.</doc>
          <type name="Ref" c:type="GgitRef*"/>
        </return-value>
        <parameters>
          <instance-parameter name="branch" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-branch.c"
                 line="153">a #GgitBranch.</doc>
            <type name="Branch" c:type="GgitBranch*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_head" c:identifier="ggit_branch_is_head" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-branch.c"
             line="209">Determines if the current local branch is pointed at by HEAD.</doc>
        <source-position filename="libgit2-glib/ggit-branch.h" line="57"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-branch.c"
               line="216">%TRUE if the current local branch is pointed at by HEAD.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="branch" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-branch.c"
                 line="211">a #GgitBranch.</doc>
            <type name="Branch" c:type="GgitBranch*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="move" c:identifier="ggit_branch_move" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-branch.c"
             line="79">Moves/renames an existing branch reference.</doc>
        <source-position filename="libgit2-glib/ggit-branch.h" line="42"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-branch.c"
               line="88">the new branch or %NULL.</doc>
          <type name="Branch" c:type="GgitBranch*"/>
        </return-value>
        <parameters>
          <instance-parameter name="branch" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-branch.c"
                 line="81">a #GgitBranch.</doc>
            <type name="Branch" c:type="GgitBranch*"/>
          </instance-parameter>
          <parameter name="new_branch_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-branch.c"
                 line="82">target name of the branch once the move is performed; this name is validated for consistency.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-branch.c"
                 line="83">a #GgitCreateFlags.</doc>
            <type name="CreateFlags" c:type="GgitCreateFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_upstream"
              c:identifier="ggit_branch_set_upstream"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-branch.c"
             line="183">Sets the upstream branch, for a given local branch reference</doc>
        <source-position filename="libgit2-glib/ggit-branch.h" line="53"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="branch" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-branch.c"
                 line="185">a #GgitBranch.</doc>
            <type name="Branch" c:type="GgitBranch*"/>
          </instance-parameter>
          <parameter name="upstream_branch_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-branch.c"
                 line="186">name of the upstream branch; if %NULL unsets it.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="Ref" c:type="GgitRef"/>
      </field>
    </class>
    <record name="BranchClass"
            c:type="GgitBranchClass"
            glib:is-gtype-struct-for="Branch">
      <source-position filename="libgit2-glib/ggit-branch.h" line="35"/>
      <field name="parent_class" readable="0" private="1">
        <type name="RefClass" c:type="GgitRefClass"/>
      </field>
    </record>
    <record name="BranchEnumerator"
            c:type="GgitBranchEnumerator"
            opaque="1"
            glib:type-name="GgitBranchEnumerator"
            glib:get-type="ggit_branch_enumerator_get_type"
            c:symbol-prefix="branch_enumerator">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="42">Represents a branch enumerator.</doc>
      <source-position filename="libgit2-glib/ggit-types.h" line="47"/>
      <method name="get" c:identifier="ggit_branch_enumerator_get">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-branch-enumerator.c"
             line="110">Returns the currently being enumerated branch, or %NULL. Note that the
returned GgitRef will be of type GgitBranch if the ref represents a local
branch.</doc>
        <source-position filename="libgit2-glib/ggit-branch-enumerator.h"
                         line="45"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-branch-enumerator.c"
               line="118">the branch ref or %NULL.</doc>
          <type name="Ref" c:type="GgitRef*"/>
        </return-value>
        <parameters>
          <instance-parameter name="enumerator" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-branch-enumerator.c"
                 line="112">a #GgitBranchEnumerator.</doc>
            <type name="BranchEnumerator" c:type="GgitBranchEnumerator*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="iterator" c:identifier="ggit_branch_enumerator_iterator">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-branch-enumerator.c"
             line="58">Get an iterator for the enumerator.</doc>
        <source-position filename="libgit2-glib/ggit-branch-enumerator.h"
                         line="42"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-branch-enumerator.c"
               line="64">a #GgitBranchEnumerator or %NULL.</doc>
          <type name="BranchEnumerator" c:type="GgitBranchEnumerator*"/>
        </return-value>
        <parameters>
          <instance-parameter name="enumerator" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-branch-enumerator.c"
                 line="60">a #GgitBranchEnumerator.</doc>
            <type name="BranchEnumerator" c:type="GgitBranchEnumerator*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="next" c:identifier="ggit_branch_enumerator_next">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-branch-enumerator.c"
             line="75">Move the enumerator to the next branch.</doc>
        <source-position filename="libgit2-glib/ggit-branch-enumerator.h"
                         line="44"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-branch-enumerator.c"
               line="81">%TRUE if there is a next branch, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="enumerator" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-branch-enumerator.c"
                 line="77">a #GgitBranchEnumerator.</doc>
            <type name="BranchEnumerator" c:type="GgitBranchEnumerator*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="ggit_branch_enumerator_ref">
        <source-position filename="libgit2-glib/ggit-branch-enumerator.h"
                         line="39"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-branch-enumerator.c"
               line="31">@enumerator or %NULL</doc>
          <type name="BranchEnumerator" c:type="GgitBranchEnumerator*"/>
        </return-value>
        <parameters>
          <instance-parameter name="enumerator" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-branch-enumerator.c"
                 line="29">a #GgitBranchEnumerator.</doc>
            <type name="BranchEnumerator" c:type="GgitBranchEnumerator*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="ggit_branch_enumerator_unref">
        <source-position filename="libgit2-glib/ggit-branch-enumerator.h"
                         line="40"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="enumerator" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-branch-enumerator.c"
                 line="44">a #GgitBranchEnumerator.</doc>
            <type name="BranchEnumerator" c:type="GgitBranchEnumerator*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <enumeration name="BranchType"
                 glib:type-name="GgitBranchType"
                 glib:get-type="ggit_branch_type_get_type"
                 c:type="GgitBranchType">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="295">The type of a branch.</doc>
      <member name="local"
              value="1"
              c:identifier="GGIT_BRANCH_LOCAL"
              glib:nick="local"
              glib:name="GGIT_BRANCH_LOCAL">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="297">specifies a local branch.</doc>
      </member>
      <member name="remote"
              value="2"
              c:identifier="GGIT_BRANCH_REMOTE"
              glib:nick="remote"
              glib:name="GGIT_BRANCH_REMOTE">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="298">specifies a remote branch.</doc>
      </member>
    </enumeration>
    <function-macro name="CHECK_VERSION"
                    c:identifier="GGIT_CHECK_VERSION"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-version.h"
           line="59">Compile-time version checking. Evaluates to %TRUE if the version
of libgit2-glib is greater than the required one.</doc>
      <source-position filename="libgit2-glib/ggit-version.h" line="68"/>
      <parameters>
        <parameter name="major">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-version.h"
               line="61">required major version</doc>
        </parameter>
        <parameter name="minor">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-version.h"
               line="62">required minor version</doc>
        </parameter>
        <parameter name="micro">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-version.h"
               line="63">required micro version</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CONFIG_ENTRY"
                    c:identifier="GGIT_CONFIG_ENTRY"
                    introspectable="0">
      <source-position filename="libgit2-glib/ggit-config-entry.h" line="32"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CRED_SSH_INTERACTIVE_PROMPT"
                    c:identifier="GGIT_CRED_SSH_INTERACTIVE_PROMPT"
                    introspectable="0">
      <source-position filename="libgit2-glib/ggit-cred-ssh-interactive.h"
                       line="34"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <bitfield name="CheckoutNotifyFlags"
              glib:type-name="GgitCheckoutNotifyFlags"
              glib:get-type="ggit_checkout_notify_flags_get_type"
              c:type="GgitCheckoutNotifyFlags">
      <member name="none"
              value="0"
              c:identifier="GGIT_CHECKOUT_NOTIFY_NONE"
              glib:nick="none"
              glib:name="GGIT_CHECKOUT_NOTIFY_NONE">
      </member>
      <member name="conflict"
              value="1"
              c:identifier="GGIT_CHECKOUT_NOTIFY_CONFLICT"
              glib:nick="conflict"
              glib:name="GGIT_CHECKOUT_NOTIFY_CONFLICT">
      </member>
      <member name="dirty"
              value="2"
              c:identifier="GGIT_CHECKOUT_NOTIFY_DIRTY"
              glib:nick="dirty"
              glib:name="GGIT_CHECKOUT_NOTIFY_DIRTY">
      </member>
      <member name="updated"
              value="4"
              c:identifier="GGIT_CHECKOUT_NOTIFY_UPDATED"
              glib:nick="updated"
              glib:name="GGIT_CHECKOUT_NOTIFY_UPDATED">
      </member>
      <member name="untracked"
              value="8"
              c:identifier="GGIT_CHECKOUT_NOTIFY_UNTRACKED"
              glib:nick="untracked"
              glib:name="GGIT_CHECKOUT_NOTIFY_UNTRACKED">
      </member>
      <member name="ignored"
              value="16"
              c:identifier="GGIT_CHECKOUT_NOTIFY_IGNORED"
              glib:nick="ignored"
              glib:name="GGIT_CHECKOUT_NOTIFY_IGNORED">
      </member>
      <member name="all"
              value="65535"
              c:identifier="GGIT_CHECKOUT_NOTIFY_ALL"
              glib:nick="all"
              glib:name="GGIT_CHECKOUT_NOTIFY_ALL">
      </member>
    </bitfield>
    <class name="CheckoutOptions"
           c:symbol-prefix="checkout_options"
           c:type="GgitCheckoutOptions"
           parent="GObject.Object"
           glib:type-name="GgitCheckoutOptions"
           glib:get-type="ggit_checkout_options_get_type"
           glib:type-struct="CheckoutOptionsClass">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-checkout-options.c"
           line="26">Represents the options used when doign a checkout.</doc>
      <source-position filename="libgit2-glib/ggit-checkout-options.h"
                       line="50"/>
      <constructor name="new" c:identifier="ggit_checkout_options_new">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-checkout-options.c"
             line="403">Create a new checkout options object.</doc>
        <source-position filename="libgit2-glib/ggit-checkout-options.h"
                         line="56"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-checkout-options.c"
               line="408">a #GgitCheckoutOptions or %NULL.</doc>
          <type name="CheckoutOptions" c:type="GgitCheckoutOptions*"/>
        </return-value>
      </constructor>
      <virtual-method name="notify">
        <source-position filename="libgit2-glib/ggit-checkout-options.h"
                         line="39"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <type name="CheckoutOptions" c:type="GgitCheckoutOptions*"/>
          </instance-parameter>
          <parameter name="why" transfer-ownership="none">
            <type name="CheckoutNotifyFlags" c:type="GgitCheckoutNotifyFlags"/>
          </parameter>
          <parameter name="path" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="baseline" transfer-ownership="none">
            <type name="DiffFile" c:type="GgitDiffFile*"/>
          </parameter>
          <parameter name="target" transfer-ownership="none">
            <type name="DiffFile" c:type="GgitDiffFile*"/>
          </parameter>
          <parameter name="workdir" transfer-ownership="none">
            <type name="DiffFile" c:type="GgitDiffFile*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="progress">
        <source-position filename="libgit2-glib/ggit-checkout-options.h"
                         line="46"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <type name="CheckoutOptions" c:type="GgitCheckoutOptions*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="completed_steps" transfer-ownership="none">
            <type name="gsize" c:type="gsize"/>
          </parameter>
          <parameter name="total_steps" transfer-ownership="none">
            <type name="gsize" c:type="gsize"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_ancestor_label"
              c:identifier="ggit_checkout_options_get_ancestor_label"
              glib:get-property="ancestor-label">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-checkout-options.c"
             line="843">Get the checkout ancestor label.</doc>
        <source-position filename="libgit2-glib/ggit-checkout-options.h"
                         line="104"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-checkout-options.c"
               line="849">the checkout ancestor label or %NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-checkout-options.c"
                 line="845">a #GgitCheckoutOptions.</doc>
            <type name="CheckoutOptions" c:type="GgitCheckoutOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_baseline"
              c:identifier="ggit_checkout_options_get_baseline"
              glib:get-property="baseline">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-checkout-options.c"
             line="736">Get the baseline, i.e. the expected content of workdir. Defaults to HEAD.</doc>
        <source-position filename="libgit2-glib/ggit-checkout-options.h"
                         line="94"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-checkout-options.c"
               line="742">a #GgitTree or %NULL.</doc>
          <type name="Tree" c:type="GgitTree*"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-checkout-options.c"
                 line="738">a #GgitCheckoutOptions.</doc>
            <type name="CheckoutOptions" c:type="GgitCheckoutOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_dir_mode"
              c:identifier="ggit_checkout_options_get_dir_mode"
              glib:get-property="dir-mode">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-checkout-options.c"
             line="513">Get the default checkout directory mode.</doc>
        <source-position filename="libgit2-glib/ggit-checkout-options.h"
                         line="69"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-checkout-options.c"
               line="519">the default directory mode.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-checkout-options.c"
                 line="515">a #GgitCheckoutOptions.</doc>
            <type name="CheckoutOptions" c:type="GgitCheckoutOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_disable_filters"
              c:identifier="ggit_checkout_options_get_disable_filters"
              glib:get-property="disable-filters">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-checkout-options.c"
             line="470">Get whether filters are disabled.</doc>
        <source-position filename="libgit2-glib/ggit-checkout-options.h"
                         line="62"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-checkout-options.c"
               line="476">%TRUE if filters are disabled, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-checkout-options.c"
                 line="472">a #GgitCheckoutOptions.</doc>
            <type name="CheckoutOptions" c:type="GgitCheckoutOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_file_mode"
              c:identifier="ggit_checkout_options_get_file_mode"
              glib:get-property="file-mode">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-checkout-options.c"
             line="556">Get the default checkout file mode.</doc>
        <source-position filename="libgit2-glib/ggit-checkout-options.h"
                         line="73"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-checkout-options.c"
               line="562">the default checkout file mode.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-checkout-options.c"
                 line="558">a #GgitCheckoutOptions.</doc>
            <type name="CheckoutOptions" c:type="GgitCheckoutOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_file_open_flags"
              c:identifier="ggit_checkout_options_get_file_open_flags"
              glib:get-property="file-open-flags">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-checkout-options.c"
             line="599">Get the checkout file open flags. These flags are platform specific,
e.g. on Unix these would include O_CREAT, O_TRUNC, etc.</doc>
        <source-position filename="libgit2-glib/ggit-checkout-options.h"
                         line="77"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-checkout-options.c"
               line="606">the checkout file open flags.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-checkout-options.c"
                 line="601">a #GgitCheckoutOptions.</doc>
            <type name="CheckoutOptions" c:type="GgitCheckoutOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_notify_flags"
              c:identifier="ggit_checkout_options_get_notify_flags"
              glib:get-property="notify-flags">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-checkout-options.c"
             line="644">Get the checkout notify flags.</doc>
        <source-position filename="libgit2-glib/ggit-checkout-options.h"
                         line="84"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-checkout-options.c"
               line="650">a #GgitCheckoutNotifyFlags.</doc>
          <type name="CheckoutNotifyFlags" c:type="GgitCheckoutNotifyFlags"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-checkout-options.c"
                 line="646">a #GgitCheckoutOptions.</doc>
            <type name="CheckoutOptions" c:type="GgitCheckoutOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_our_label"
              c:identifier="ggit_checkout_options_get_our_label"
              glib:get-property="our-label">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-checkout-options.c"
             line="890">Get the checkout our label.</doc>
        <source-position filename="libgit2-glib/ggit-checkout-options.h"
                         line="110"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-checkout-options.c"
               line="896">the checkout our label or %NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-checkout-options.c"
                 line="892">a #GgitCheckoutOptions.</doc>
            <type name="CheckoutOptions" c:type="GgitCheckoutOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_paths" c:identifier="ggit_checkout_options_get_paths">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-checkout-options.c"
             line="687">Get the list of file paths to checkout.</doc>
        <source-position filename="libgit2-glib/ggit-checkout-options.h"
                         line="90"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-checkout-options.c"
               line="693">a %NULL terminated list of file paths, or %NULL.</doc>
          <array c:type="const gchar* const*">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-checkout-options.c"
                 line="689">a #GgitCheckoutOptions.</doc>
            <type name="CheckoutOptions" c:type="GgitCheckoutOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_strategy"
              c:identifier="ggit_checkout_options_get_strategy"
              glib:get-property="strategy">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-checkout-options.c"
             line="427">Get the checkout strategy.</doc>
        <source-position filename="libgit2-glib/ggit-checkout-options.h"
                         line="58"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-checkout-options.c"
               line="433">a #GgitCheckoutStrategy.</doc>
          <type name="CheckoutStrategy" c:type="GgitCheckoutStrategy"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-checkout-options.c"
                 line="429">a #GgitCheckoutOptions.</doc>
            <type name="CheckoutOptions" c:type="GgitCheckoutOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_target_directory"
              c:identifier="ggit_checkout_options_get_target_directory"
              glib:get-property="target-directory">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-checkout-options.c"
             line="796">Get the checkout target directory.</doc>
        <source-position filename="libgit2-glib/ggit-checkout-options.h"
                         line="98"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-checkout-options.c"
               line="802">the checkout target directory or %NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-checkout-options.c"
                 line="798">a #GgitCheckoutOptions.</doc>
            <type name="CheckoutOptions" c:type="GgitCheckoutOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_their_label"
              c:identifier="ggit_checkout_options_get_their_label"
              glib:get-property="their-label">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-checkout-options.c"
             line="937">Get the checkout their label.</doc>
        <source-position filename="libgit2-glib/ggit-checkout-options.h"
                         line="114"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-checkout-options.c"
               line="943">the checkout their label or %NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-checkout-options.c"
                 line="939">a #GgitCheckoutOptions.</doc>
            <type name="CheckoutOptions" c:type="GgitCheckoutOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_ancestor_label"
              c:identifier="ggit_checkout_options_set_ancestor_label"
              glib:set-property="ancestor-label">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-checkout-options.c"
             line="864">Set the checkout ancestor label.</doc>
        <source-position filename="libgit2-glib/ggit-checkout-options.h"
                         line="106"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-checkout-options.c"
                 line="866">a #GgitCheckoutOptions.</doc>
            <type name="CheckoutOptions" c:type="GgitCheckoutOptions*"/>
          </instance-parameter>
          <parameter name="label"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-checkout-options.c"
                 line="867">the ancestor label.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_baseline"
              c:identifier="ggit_checkout_options_set_baseline"
              glib:set-property="baseline">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-checkout-options.c"
             line="757">Set the baseline, i.e. the expected content of workdir. If @tree is set
to %NULL, the default (HEAD) will be used as the baseline.</doc>
        <source-position filename="libgit2-glib/ggit-checkout-options.h"
                         line="95"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-checkout-options.c"
                 line="759">a #GgitCheckoutOptions.</doc>
            <type name="CheckoutOptions" c:type="GgitCheckoutOptions*"/>
          </instance-parameter>
          <parameter name="tree"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-checkout-options.c"
                 line="760">a #GgitTree.</doc>
            <type name="Tree" c:type="GgitTree*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_dir_mode"
              c:identifier="ggit_checkout_options_set_dir_mode"
              glib:set-property="dir-mode">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-checkout-options.c"
             line="534">Set the default checkout directory mode.</doc>
        <source-position filename="libgit2-glib/ggit-checkout-options.h"
                         line="70"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-checkout-options.c"
                 line="536">a #GgitCheckoutOptions.</doc>
            <type name="CheckoutOptions" c:type="GgitCheckoutOptions*"/>
          </instance-parameter>
          <parameter name="dir_mode" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-checkout-options.c"
                 line="537">the dir mode.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_disable_filters"
              c:identifier="ggit_checkout_options_set_disable_filters"
              glib:set-property="disable-filters">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-checkout-options.c"
             line="491">Set whether to disable filters.</doc>
        <source-position filename="libgit2-glib/ggit-checkout-options.h"
                         line="65"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-checkout-options.c"
                 line="493">a #GgitCheckoutOptions.</doc>
            <type name="CheckoutOptions" c:type="GgitCheckoutOptions*"/>
          </instance-parameter>
          <parameter name="disable" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-checkout-options.c"
                 line="494">disable filters.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_file_mode"
              c:identifier="ggit_checkout_options_set_file_mode"
              glib:set-property="file-mode">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-checkout-options.c"
             line="577">Set the default checkout file mode.</doc>
        <source-position filename="libgit2-glib/ggit-checkout-options.h"
                         line="74"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-checkout-options.c"
                 line="579">a #GgitCheckoutOptions.</doc>
            <type name="CheckoutOptions" c:type="GgitCheckoutOptions*"/>
          </instance-parameter>
          <parameter name="file_mode" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-checkout-options.c"
                 line="580">the file mode.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_file_open_flags"
              c:identifier="ggit_checkout_options_set_file_open_flags"
              glib:set-property="file-open-flags">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-checkout-options.c"
             line="621">Set the checkout file open flags. These flags are platform dependent,
e.g. on Unix use O_CREAT, O_TRUNC, etc.</doc>
        <source-position filename="libgit2-glib/ggit-checkout-options.h"
                         line="79"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-checkout-options.c"
                 line="623">a #GgitCheckoutOptions.</doc>
            <type name="CheckoutOptions" c:type="GgitCheckoutOptions*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-checkout-options.c"
                 line="624">the file open flags.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_notify_flags"
              c:identifier="ggit_checkout_options_set_notify_flags"
              glib:set-property="notify-flags">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-checkout-options.c"
             line="665">Set the checkout notify flags.</doc>
        <source-position filename="libgit2-glib/ggit-checkout-options.h"
                         line="86"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-checkout-options.c"
                 line="667">a #GgitCheckoutOptions.</doc>
            <type name="CheckoutOptions" c:type="GgitCheckoutOptions*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-checkout-options.c"
                 line="668">a #GgitCheckoutNotifyFlags.</doc>
            <type name="CheckoutNotifyFlags" c:type="GgitCheckoutNotifyFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_our_label"
              c:identifier="ggit_checkout_options_set_our_label"
              glib:set-property="our-label">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-checkout-options.c"
             line="911">Set the checkout our label.</doc>
        <source-position filename="libgit2-glib/ggit-checkout-options.h"
                         line="111"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-checkout-options.c"
                 line="913">a #GgitCheckoutOptions.</doc>
            <type name="CheckoutOptions" c:type="GgitCheckoutOptions*"/>
          </instance-parameter>
          <parameter name="label"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-checkout-options.c"
                 line="914">the our label.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_paths" c:identifier="ggit_checkout_options_set_paths">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-checkout-options.c"
             line="708">Set the list of file paths to checkout. If @paths is %NULL, then all files
will be checked out.</doc>
        <source-position filename="libgit2-glib/ggit-checkout-options.h"
                         line="91"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-checkout-options.c"
                 line="710">a #GgitCheckoutOptions.</doc>
            <type name="CheckoutOptions" c:type="GgitCheckoutOptions*"/>
          </instance-parameter>
          <parameter name="paths"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-checkout-options.c"
                 line="711">a %NULL terminated list of paths.</doc>
            <array c:type="const gchar* const*">
              <type name="utf8" c:type="gchar*"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <method name="set_strategy"
              c:identifier="ggit_checkout_options_set_strategy"
              glib:set-property="strategy">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-checkout-options.c"
             line="448">Set the checkout strategy.</doc>
        <source-position filename="libgit2-glib/ggit-checkout-options.h"
                         line="59"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-checkout-options.c"
                 line="450">a #GgitCheckoutOptions.</doc>
            <type name="CheckoutOptions" c:type="GgitCheckoutOptions*"/>
          </instance-parameter>
          <parameter name="strategy" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-checkout-options.c"
                 line="451">a #GgitCheckoutStrategy.</doc>
            <type name="CheckoutStrategy" c:type="GgitCheckoutStrategy"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_target_directory"
              c:identifier="ggit_checkout_options_set_target_directory"
              glib:set-property="target-directory">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-checkout-options.c"
             line="817">Set the checkout target directory.</doc>
        <source-position filename="libgit2-glib/ggit-checkout-options.h"
                         line="100"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-checkout-options.c"
                 line="819">a #GgitCheckoutOptions.</doc>
            <type name="CheckoutOptions" c:type="GgitCheckoutOptions*"/>
          </instance-parameter>
          <parameter name="directory"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-checkout-options.c"
                 line="820">the target directory.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_their_label"
              c:identifier="ggit_checkout_options_set_their_label"
              glib:set-property="their-label">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-checkout-options.c"
             line="958">Set the checkout their label.</doc>
        <source-position filename="libgit2-glib/ggit-checkout-options.h"
                         line="116"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-checkout-options.c"
                 line="960">a #GgitCheckoutOptions.</doc>
            <type name="CheckoutOptions" c:type="GgitCheckoutOptions*"/>
          </instance-parameter>
          <parameter name="label"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-checkout-options.c"
                 line="961">the their label.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="ancestor-label"
                writable="1"
                transfer-ownership="none"
                setter="set_ancestor_label"
                getter="get_ancestor_label"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="baseline"
                writable="1"
                transfer-ownership="none"
                setter="set_baseline"
                getter="get_baseline">
        <type name="Tree"/>
      </property>
      <property name="dir-mode"
                writable="1"
                transfer-ownership="none"
                setter="set_dir_mode"
                getter="get_dir_mode"
                default-value="0">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="disable-filters"
                writable="1"
                transfer-ownership="none"
                setter="set_disable_filters"
                getter="get_disable_filters"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="file-mode"
                writable="1"
                transfer-ownership="none"
                setter="set_file_mode"
                getter="get_file_mode"
                default-value="0">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="file-open-flags"
                writable="1"
                transfer-ownership="none"
                setter="set_file_open_flags"
                getter="get_file_open_flags"
                default-value="0">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="notify-flags"
                writable="1"
                transfer-ownership="none"
                setter="set_notify_flags"
                getter="get_notify_flags"
                default-value="GGIT_CHECKOUT_NOTIFY_NONE">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-checkout-options.c"
             line="332">The checkout notify flags.</doc>
        <type name="CheckoutNotifyFlags"/>
      </property>
      <property name="our-label"
                writable="1"
                transfer-ownership="none"
                setter="set_our_label"
                getter="get_our_label"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="strategy"
                writable="1"
                transfer-ownership="none"
                setter="set_strategy"
                getter="get_strategy"
                default-value="GGIT_CHECKOUT_SAFE">
        <type name="CheckoutStrategy"/>
      </property>
      <property name="target-directory"
                writable="1"
                transfer-ownership="none"
                setter="set_target_directory"
                getter="get_target_directory"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="their-label"
                writable="1"
                transfer-ownership="none"
                setter="set_their_label"
                getter="get_their_label"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="CheckoutOptionsClass"
            c:type="GgitCheckoutOptionsClass"
            glib:is-gtype-struct-for="CheckoutOptions">
      <source-position filename="libgit2-glib/ggit-checkout-options.h"
                       line="50"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="notify">
        <callback name="notify">
          <source-position filename="libgit2-glib/ggit-checkout-options.h"
                           line="39"/>
          <return-value transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </return-value>
          <parameters>
            <parameter name="options" transfer-ownership="none">
              <type name="CheckoutOptions" c:type="GgitCheckoutOptions*"/>
            </parameter>
            <parameter name="why" transfer-ownership="none">
              <type name="CheckoutNotifyFlags"
                    c:type="GgitCheckoutNotifyFlags"/>
            </parameter>
            <parameter name="path" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="baseline" transfer-ownership="none">
              <type name="DiffFile" c:type="GgitDiffFile*"/>
            </parameter>
            <parameter name="target" transfer-ownership="none">
              <type name="DiffFile" c:type="GgitDiffFile*"/>
            </parameter>
            <parameter name="workdir" transfer-ownership="none">
              <type name="DiffFile" c:type="GgitDiffFile*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="progress">
        <callback name="progress">
          <source-position filename="libgit2-glib/ggit-checkout-options.h"
                           line="46"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="options" transfer-ownership="none">
              <type name="CheckoutOptions" c:type="GgitCheckoutOptions*"/>
            </parameter>
            <parameter name="path" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="completed_steps" transfer-ownership="none">
              <type name="gsize" c:type="gsize"/>
            </parameter>
            <parameter name="total_steps" transfer-ownership="none">
              <type name="gsize" c:type="gsize"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <bitfield name="CheckoutStrategy"
              glib:type-name="GgitCheckoutStrategy"
              glib:get-type="ggit_checkout_strategy_get_type"
              c:type="GgitCheckoutStrategy">
      <member name="safe"
              value="0"
              c:identifier="GGIT_CHECKOUT_SAFE"
              glib:nick="safe"
              glib:name="GGIT_CHECKOUT_SAFE">
      </member>
      <member name="force"
              value="2"
              c:identifier="GGIT_CHECKOUT_FORCE"
              glib:nick="force"
              glib:name="GGIT_CHECKOUT_FORCE">
      </member>
      <member name="recreate_missing"
              value="4"
              c:identifier="GGIT_CHECKOUT_RECREATE_MISSING"
              glib:nick="recreate-missing"
              glib:name="GGIT_CHECKOUT_RECREATE_MISSING">
      </member>
      <member name="allow_conflicts"
              value="16"
              c:identifier="GGIT_CHECKOUT_ALLOW_CONFLICTS"
              glib:nick="allow-conflicts"
              glib:name="GGIT_CHECKOUT_ALLOW_CONFLICTS">
      </member>
      <member name="remove_untracked"
              value="32"
              c:identifier="GGIT_CHECKOUT_REMOVE_UNTRACKED"
              glib:nick="remove-untracked"
              glib:name="GGIT_CHECKOUT_REMOVE_UNTRACKED">
      </member>
      <member name="remove_ignored"
              value="64"
              c:identifier="GGIT_CHECKOUT_REMOVE_IGNORED"
              glib:nick="remove-ignored"
              glib:name="GGIT_CHECKOUT_REMOVE_IGNORED">
      </member>
      <member name="update_only"
              value="128"
              c:identifier="GGIT_CHECKOUT_UPDATE_ONLY"
              glib:nick="update-only"
              glib:name="GGIT_CHECKOUT_UPDATE_ONLY">
      </member>
      <member name="dont_update_index"
              value="256"
              c:identifier="GGIT_CHECKOUT_DONT_UPDATE_INDEX"
              glib:nick="dont-update-index"
              glib:name="GGIT_CHECKOUT_DONT_UPDATE_INDEX">
      </member>
      <member name="no_refresh"
              value="512"
              c:identifier="GGIT_CHECKOUT_NO_REFRESH"
              glib:nick="no-refresh"
              glib:name="GGIT_CHECKOUT_NO_REFRESH">
      </member>
      <member name="skip_unmerged"
              value="1024"
              c:identifier="GGIT_CHECKOUT_SKIP_UNMERGED"
              glib:nick="skip-unmerged"
              glib:name="GGIT_CHECKOUT_SKIP_UNMERGED">
      </member>
      <member name="use_ours"
              value="2048"
              c:identifier="GGIT_CHECKOUT_USE_OURS"
              glib:nick="use-ours"
              glib:name="GGIT_CHECKOUT_USE_OURS">
      </member>
      <member name="use_theirs"
              value="4096"
              c:identifier="GGIT_CHECKOUT_USE_THEIRS"
              glib:nick="use-theirs"
              glib:name="GGIT_CHECKOUT_USE_THEIRS">
      </member>
      <member name="disable_pathspec_match"
              value="8192"
              c:identifier="GGIT_CHECKOUT_DISABLE_PATHSPEC_MATCH"
              glib:nick="disable-pathspec-match"
              glib:name="GGIT_CHECKOUT_DISABLE_PATHSPEC_MATCH">
      </member>
      <member name="skip_locked_directories"
              value="262144"
              c:identifier="GGIT_CHECKOUT_SKIP_LOCKED_DIRECTORIES"
              glib:nick="skip-locked-directories"
              glib:name="GGIT_CHECKOUT_SKIP_LOCKED_DIRECTORIES">
      </member>
      <member name="dont_overwrite_ignored"
              value="524288"
              c:identifier="GGIT_CHECKOUT_DONT_OVERWRITE_IGNORED"
              glib:nick="dont-overwrite-ignored"
              glib:name="GGIT_CHECKOUT_DONT_OVERWRITE_IGNORED">
      </member>
      <member name="conflict_style_merge"
              value="1048576"
              c:identifier="GGIT_CHECKOUT_CONFLICT_STYLE_MERGE"
              glib:nick="conflict-style-merge"
              glib:name="GGIT_CHECKOUT_CONFLICT_STYLE_MERGE">
      </member>
      <member name="conflict_style_diff3"
              value="2097152"
              c:identifier="GGIT_CHECKOUT_CONFLICT_STYLE_DIFF3"
              glib:nick="conflict-style-diff3"
              glib:name="GGIT_CHECKOUT_CONFLICT_STYLE_DIFF3">
      </member>
      <member name="dont_remove_existing"
              value="4194304"
              c:identifier="GGIT_CHECKOUT_DONT_REMOVE_EXISTING"
              glib:nick="dont-remove-existing"
              glib:name="GGIT_CHECKOUT_DONT_REMOVE_EXISTING">
      </member>
      <member name="dont_write_index"
              value="8388608"
              c:identifier="GGIT_CHECKOUT_DONT_WRITE_INDEX"
              glib:nick="dont-write-index"
              glib:name="GGIT_CHECKOUT_DONT_WRITE_INDEX">
      </member>
      <member name="dry_run"
              value="16777216"
              c:identifier="GGIT_CHECKOUT_DRY_RUN"
              glib:nick="dry-run"
              glib:name="GGIT_CHECKOUT_DRY_RUN">
      </member>
      <member name="conflict_style_zdiff3"
              value="33554432"
              c:identifier="GGIT_CHECKOUT_CONFLICT_STYLE_ZDIFF3"
              glib:nick="conflict-style-zdiff3"
              glib:name="GGIT_CHECKOUT_CONFLICT_STYLE_ZDIFF3">
      </member>
      <member name="none"
              value="1073741824"
              c:identifier="GGIT_CHECKOUT_NONE"
              glib:nick="none"
              glib:name="GGIT_CHECKOUT_NONE">
      </member>
      <member name="update_submodules"
              value="65536"
              c:identifier="GGIT_CHECKOUT_UPDATE_SUBMODULES"
              glib:nick="update-submodules"
              glib:name="GGIT_CHECKOUT_UPDATE_SUBMODULES">
      </member>
      <member name="update_submodules_if_changed"
              value="131072"
              c:identifier="GGIT_CHECKOUT_UPDATE_SUBMODULES_IF_CHANGED"
              glib:nick="update-submodules-if-changed"
              glib:name="GGIT_CHECKOUT_UPDATE_SUBMODULES_IF_CHANGED">
      </member>
    </bitfield>
    <class name="CherryPickOptions"
           c:symbol-prefix="cherry_pick_options"
           c:type="GgitCherryPickOptions"
           parent="GObject.Object"
           glib:type-name="GgitCherryPickOptions"
           glib:get-type="ggit_cherry_pick_options_get_type"
           glib:type-struct="CherryPickOptionsClass">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-cherry-pick-options.c"
           line="26">Represents the options used when doign a cherry-pick.</doc>
      <source-position filename="libgit2-glib/ggit-cherry-pick-options.h"
                       line="38"/>
      <constructor name="new" c:identifier="ggit_cherry_pick_options_new">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-cherry-pick-options.c"
             line="173">Create a new cherry-pick options object.</doc>
        <source-position filename="libgit2-glib/ggit-cherry-pick-options.h"
                         line="44"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-cherry-pick-options.c"
               line="178">a #GgitCherryPickOptions.</doc>
          <type name="CherryPickOptions" c:type="GgitCherryPickOptions*"/>
        </return-value>
      </constructor>
      <method name="get_checkout_options"
              c:identifier="ggit_cherry_pick_options_get_checkout_options"
              glib:get-property="checkout-options">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-cherry-pick-options.c"
             line="261">Get the checkout options.</doc>
        <source-position filename="libgit2-glib/ggit-cherry-pick-options.h"
                         line="50"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-cherry-pick-options.c"
               line="267">a #GgitCheckoutOptions.</doc>
          <type name="CheckoutOptions" c:type="GgitCheckoutOptions*"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-cherry-pick-options.c"
                 line="263">a #GgitCherryPickOptions.</doc>
            <type name="CherryPickOptions" c:type="GgitCherryPickOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mainline"
              c:identifier="ggit_cherry_pick_options_get_mainline"
              glib:get-property="mainline">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-cherry-pick-options.c"
             line="218">Get the mainline parent to use when cherry-picking a merge commit.</doc>
        <source-position filename="libgit2-glib/ggit-cherry-pick-options.h"
                         line="46"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-cherry-pick-options.c"
               line="224">the mainline parent.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-cherry-pick-options.c"
                 line="220">a #GgitCherryPickOptions.</doc>
            <type name="CherryPickOptions" c:type="GgitCherryPickOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_merge_options"
              c:identifier="ggit_cherry_pick_options_get_merge_options"
              glib:get-property="merge-options">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-cherry-pick-options.c"
             line="318">Get the merge options.</doc>
        <source-position filename="libgit2-glib/ggit-cherry-pick-options.h"
                         line="54"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-cherry-pick-options.c"
               line="324">a #GgitMergeOptions.</doc>
          <type name="MergeOptions" c:type="GgitMergeOptions*"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-cherry-pick-options.c"
                 line="320">a #GgitCherryPickOptions.</doc>
            <type name="CherryPickOptions" c:type="GgitCherryPickOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_checkout_options"
              c:identifier="ggit_cherry_pick_options_set_checkout_options"
              glib:set-property="checkout-options">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-cherry-pick-options.c"
             line="282">Set the checkout options.</doc>
        <source-position filename="libgit2-glib/ggit-cherry-pick-options.h"
                         line="51"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-cherry-pick-options.c"
                 line="284">a #GgitCherryPickOptions.</doc>
            <type name="CherryPickOptions" c:type="GgitCherryPickOptions*"/>
          </instance-parameter>
          <parameter name="checkout_options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-cherry-pick-options.c"
                 line="285">a #GgitCheckoutOptions.</doc>
            <type name="CheckoutOptions" c:type="GgitCheckoutOptions*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_mainline"
              c:identifier="ggit_cherry_pick_options_set_mainline"
              glib:set-property="mainline">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-cherry-pick-options.c"
             line="239">Set the mainline parent to use when cherry-picking a merge commit.</doc>
        <source-position filename="libgit2-glib/ggit-cherry-pick-options.h"
                         line="47"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-cherry-pick-options.c"
                 line="241">a #GgitCherryPickOptions.</doc>
            <type name="CherryPickOptions" c:type="GgitCherryPickOptions*"/>
          </instance-parameter>
          <parameter name="mainline" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-cherry-pick-options.c"
                 line="242">the mainline parent.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_merge_options"
              c:identifier="ggit_cherry_pick_options_set_merge_options"
              glib:set-property="merge-options">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-cherry-pick-options.c"
             line="340">Set the merge options.</doc>
        <source-position filename="libgit2-glib/ggit-cherry-pick-options.h"
                         line="55"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-cherry-pick-options.c"
                 line="342">a #GgitCherryPickOptions.</doc>
            <type name="CherryPickOptions" c:type="GgitCherryPickOptions*"/>
          </instance-parameter>
          <parameter name="merge_options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-cherry-pick-options.c"
                 line="343">a #GgitMergeOptions.</doc>
            <type name="MergeOptions" c:type="GgitMergeOptions*"/>
          </parameter>
        </parameters>
      </method>
      <property name="checkout-options"
                writable="1"
                transfer-ownership="none"
                setter="set_checkout_options"
                getter="get_checkout_options">
        <type name="CheckoutOptions"/>
      </property>
      <property name="mainline"
                writable="1"
                transfer-ownership="none"
                setter="set_mainline"
                getter="get_mainline"
                default-value="0">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="merge-options"
                writable="1"
                transfer-ownership="none"
                setter="set_merge_options"
                getter="get_merge_options">
        <type name="MergeOptions"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="CherryPickOptionsClass"
            c:type="GgitCherryPickOptionsClass"
            glib:is-gtype-struct-for="CherryPickOptions">
      <source-position filename="libgit2-glib/ggit-cherry-pick-options.h"
                       line="38"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <enumeration name="CloneLocal"
                 glib:type-name="GgitCloneLocal"
                 glib:get-type="ggit_clone_local_get_type"
                 c:type="GgitCloneLocal">
      <member name="auto"
              value="0"
              c:identifier="GGIT_CLONE_LOCAL_AUTO"
              glib:nick="auto"
              glib:name="GGIT_CLONE_LOCAL_AUTO">
      </member>
      <member name="local"
              value="1"
              c:identifier="GGIT_CLONE_LOCAL_LOCAL"
              glib:nick="local"
              glib:name="GGIT_CLONE_LOCAL_LOCAL">
      </member>
      <member name="no_local"
              value="2"
              c:identifier="GGIT_CLONE_LOCAL_NO_LOCAL"
              glib:nick="no-local"
              glib:name="GGIT_CLONE_LOCAL_NO_LOCAL">
      </member>
      <member name="no_links"
              value="3"
              c:identifier="GGIT_CLONE_LOCAL_NO_LINKS"
              glib:nick="no-links"
              glib:name="GGIT_CLONE_LOCAL_NO_LINKS">
      </member>
    </enumeration>
    <class name="CloneOptions"
           c:symbol-prefix="clone_options"
           c:type="GgitCloneOptions"
           parent="GObject.Object"
           glib:type-name="GgitCloneOptions"
           glib:get-type="ggit_clone_options_get_type"
           glib:type-struct="CloneOptionsClass">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="49">Represents the options used when cloning.</doc>
      <source-position filename="libgit2-glib/ggit-clone-options.h" line="52"/>
      <constructor name="new" c:identifier="ggit_clone_options_new">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-clone-options.c"
             line="237">Creates a new #GgitCloneOptions.</doc>
        <source-position filename="libgit2-glib/ggit-clone-options.h"
                         line="56"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-clone-options.c"
               line="242">a newly allocated #GgitCloneOptions.</doc>
          <type name="CloneOptions" c:type="GgitCloneOptions*"/>
        </return-value>
      </constructor>
      <virtual-method name="create_remote" throws="1">
        <source-position filename="libgit2-glib/ggit-clone-options.h"
                         line="46"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-clone-options.c"
               line="57">a #GgitRemote or %NULL in case of an error.</doc>
          <type name="Remote" c:type="GgitRemote*"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-clone-options.c"
                 line="51">a #GgitCloneOptions.</doc>
            <type name="CloneOptions" c:type="GgitCloneOptions*"/>
          </instance-parameter>
          <parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-clone-options.c"
                 line="52">the repository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-clone-options.c"
                 line="53">the remote name.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="url" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-clone-options.c"
                 line="54">the remote url.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="create_repository" throws="1">
        <source-position filename="libgit2-glib/ggit-clone-options.h"
                         line="41"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-clone-options.c"
               line="46">a #GgitRepository or %NULL in case of an error.</doc>
          <type name="Repository" c:type="GgitRepository*"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-clone-options.c"
                 line="41">a #GgitCloneOptions.</doc>
            <type name="CloneOptions" c:type="GgitCloneOptions*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-clone-options.c"
                 line="42">the repository path.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="is_bare" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-clone-options.c"
                 line="43">whether a bare repository should be created.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_checkout_branch"
              c:identifier="ggit_clone_options_get_checkout_branch">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-clone-options.c"
             line="288">Gets the name of the branch to checkout or %NULL.</doc>
        <source-position filename="libgit2-glib/ggit-clone-options.h"
                         line="63"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-clone-options.c"
               line="294">the name of the branch to checkout or %NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-clone-options.c"
                 line="290">a #GgitCloneOptions.</doc>
            <type name="CloneOptions" c:type="GgitCloneOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_fetch_options"
              c:identifier="ggit_clone_options_get_fetch_options">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-clone-options.c"
             line="327">Get the fetch options object or %NULL if not set.</doc>
        <source-position filename="libgit2-glib/ggit-clone-options.h"
                         line="72"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-clone-options.c"
               line="333">the fetch options or %NULL.</doc>
          <type name="FetchOptions" c:type="GgitFetchOptions*"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-clone-options.c"
                 line="329">a #GgitCloneOptions.</doc>
            <type name="CloneOptions" c:type="GgitCloneOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_is_bare" c:identifier="ggit_clone_options_get_is_bare">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-clone-options.c"
             line="250">Gets if the repository will be bare.</doc>
        <source-position filename="libgit2-glib/ggit-clone-options.h"
                         line="58"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-clone-options.c"
               line="256">%TRUE to clone a bare repository.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-clone-options.c"
                 line="252">a #GgitCloneOptions.</doc>
            <type name="CloneOptions" c:type="GgitCloneOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_local" c:identifier="ggit_clone_options_get_local">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-clone-options.c"
             line="377">Get setting for bypassing the git-aware transport when cloning. The
default auto setting bypasses the git-aware transport for local paths,
but use a normal fetch for file:// URIs.</doc>
        <source-position filename="libgit2-glib/ggit-clone-options.h"
                         line="68"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-clone-options.c"
               line="385">the local clone setting.</doc>
          <type name="CloneLocal" c:type="GgitCloneLocal"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-clone-options.c"
                 line="379">a #GgitCloneOptions.</doc>
            <type name="CloneOptions" c:type="GgitCloneOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_checkout_branch"
              c:identifier="ggit_clone_options_set_checkout_branch">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-clone-options.c"
             line="307">Gives the name of the branch to checkout. %NULL means
use the remote's HEAD.</doc>
        <source-position filename="libgit2-glib/ggit-clone-options.h"
                         line="65"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-clone-options.c"
                 line="309">a #GgitCloneOptions.</doc>
            <type name="CloneOptions" c:type="GgitCloneOptions*"/>
          </instance-parameter>
          <parameter name="checkout_branch"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-clone-options.c"
                 line="310">the name of the branch to checkout or %NULL.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_fetch_options"
              c:identifier="ggit_clone_options_set_fetch_options">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-clone-options.c"
             line="346">Set the fetch options object.</doc>
        <source-position filename="libgit2-glib/ggit-clone-options.h"
                         line="73"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-clone-options.c"
                 line="348">a #GgitCloneOptions.</doc>
            <type name="CloneOptions" c:type="GgitCloneOptions*"/>
          </instance-parameter>
          <parameter name="fetch_options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-clone-options.c"
                 line="349">a #GgitFetchOptions or %NULL.</doc>
            <type name="FetchOptions" c:type="GgitFetchOptions*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_is_bare" c:identifier="ggit_clone_options_set_is_bare">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-clone-options.c"
             line="269">Sets whether to clone a bare repository.</doc>
        <source-position filename="libgit2-glib/ggit-clone-options.h"
                         line="60"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-clone-options.c"
                 line="271">a #GgitCloneOptions.</doc>
            <type name="CloneOptions" c:type="GgitCloneOptions*"/>
          </instance-parameter>
          <parameter name="bare" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-clone-options.c"
                 line="272">%TRUE to clone a bare repository.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_local" c:identifier="ggit_clone_options_set_local">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-clone-options.c"
             line="399">Set setting for bypassing the git-aware transport when cloning. The
default auto setting bypasses the git-aware transport for local paths,
but use a normal fetch for file:// URIs.</doc>
        <source-position filename="libgit2-glib/ggit-clone-options.h"
                         line="69"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-clone-options.c"
                 line="401">a #GgitCloneOptions.</doc>
            <type name="CloneOptions" c:type="GgitCloneOptions*"/>
          </instance-parameter>
          <parameter name="local" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-clone-options.c"
                 line="402">the local clone setting.</doc>
            <type name="CloneLocal" c:type="GgitCloneLocal"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="CloneOptionsClass"
            c:type="GgitCloneOptionsClass"
            glib:is-gtype-struct-for="CloneOptions">
      <source-position filename="libgit2-glib/ggit-clone-options.h" line="52"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="create_repository">
        <callback name="create_repository" throws="1">
          <source-position filename="libgit2-glib/ggit-clone-options.h"
                           line="41"/>
          <return-value transfer-ownership="full" nullable="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-clone-options.c"
                 line="46">a #GgitRepository or %NULL in case of an error.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </return-value>
          <parameters>
            <parameter name="options" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libgit2-glib/ggit-clone-options.c"
                   line="41">a #GgitCloneOptions.</doc>
              <type name="CloneOptions" c:type="GgitCloneOptions*"/>
            </parameter>
            <parameter name="path" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libgit2-glib/ggit-clone-options.c"
                   line="42">the repository path.</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="is_bare" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libgit2-glib/ggit-clone-options.c"
                   line="43">whether a bare repository should be created.</doc>
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="create_remote">
        <callback name="create_remote" throws="1">
          <source-position filename="libgit2-glib/ggit-clone-options.h"
                           line="46"/>
          <return-value transfer-ownership="full" nullable="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-clone-options.c"
                 line="57">a #GgitRemote or %NULL in case of an error.</doc>
            <type name="Remote" c:type="GgitRemote*"/>
          </return-value>
          <parameters>
            <parameter name="options" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libgit2-glib/ggit-clone-options.c"
                   line="51">a #GgitCloneOptions.</doc>
              <type name="CloneOptions" c:type="GgitCloneOptions*"/>
            </parameter>
            <parameter name="repository" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libgit2-glib/ggit-clone-options.c"
                   line="52">the repository.</doc>
              <type name="Repository" c:type="GgitRepository*"/>
            </parameter>
            <parameter name="name" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libgit2-glib/ggit-clone-options.c"
                   line="53">the remote name.</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="url" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libgit2-glib/ggit-clone-options.c"
                   line="54">the remote url.</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="Commit"
           c:symbol-prefix="commit"
           c:type="GgitCommit"
           parent="Object"
           glib:type-name="GgitCommit"
           glib:get-type="ggit_commit_get_type"
           glib:type-struct="CommitClass">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-commit.c"
           line="31">Represents a commit object.</doc>
      <source-position filename="libgit2-glib/ggit-commit.h" line="49"/>
      <method name="amend" c:identifier="ggit_commit_amend" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-commit.c"
             line="379">Amend an existing commit. If @update_ref is not %NULL, the given reference will
be updated to point to the newly created commit. Use "HEAD" to update the
HEAD of the current branch and make it point to this commit.

If @message_encoding is set to %NULL, "UTF-8" encoding is assumed for the
provided @message. Note that @message will not be cleaned up automatically.
You can use #ggit_message_prettify to do this yourself if needed.</doc>
        <source-position filename="libgit2-glib/ggit-commit.h" line="76"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-commit.c"
               line="398">the #GgitOId of the created commit object,
or %NULL in case of an error.</doc>
          <type name="OId" c:type="GgitOId*"/>
        </return-value>
        <parameters>
          <instance-parameter name="commit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-commit.c"
                 line="381">a #GgitCommit.</doc>
            <type name="Commit" c:type="GgitCommit*"/>
          </instance-parameter>
          <parameter name="update_ref"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-commit.c"
                 line="382">name of the reference to update.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="author" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-commit.c"
                 line="383">author signature.</doc>
            <type name="Signature" c:type="GgitSignature*"/>
          </parameter>
          <parameter name="committer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-commit.c"
                 line="384">committer signature (and time of commit).</doc>
            <type name="Signature" c:type="GgitSignature*"/>
          </parameter>
          <parameter name="message_encoding"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-commit.c"
                 line="385">message encoding.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="message" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-commit.c"
                 line="386">commit message.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="tree" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-commit.c"
                 line="387">the tree of objects to commit.</doc>
            <type name="Tree" c:type="GgitTree*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_author" c:identifier="ggit_commit_get_author">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-commit.c"
             line="247">Gets the author of @commit. The returned value must be free'd with
g_object_unref().</doc>
        <source-position filename="libgit2-glib/ggit-commit.h" line="64"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-commit.c"
               line="254">the author of the commit.</doc>
          <type name="Signature" c:type="GgitSignature*"/>
        </return-value>
        <parameters>
          <instance-parameter name="commit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-commit.c"
                 line="249">a #GgitCommit.</doc>
            <type name="Commit" c:type="GgitCommit*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_committer" c:identifier="ggit_commit_get_committer">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-commit.c"
             line="220">Gets the committer of @commit. The returned value must be free'd with
g_object_unref().</doc>
        <source-position filename="libgit2-glib/ggit-commit.h" line="62"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-commit.c"
               line="227">the committer of the commit.</doc>
          <type name="Signature" c:type="GgitSignature*"/>
        </return-value>
        <parameters>
          <instance-parameter name="commit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-commit.c"
                 line="222">a #GgitCommit.</doc>
            <type name="Commit" c:type="GgitCommit*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_message" c:identifier="ggit_commit_get_message">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-commit.c"
             line="166">Gets the full message of @commit. The resulting message is always encoded
in UTF-8.</doc>
        <source-position filename="libgit2-glib/ggit-commit.h" line="58"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-commit.c"
               line="173">the message of the commit.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="commit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-commit.c"
                 line="168">a #GgitCommit.</doc>
            <type name="Commit" c:type="GgitCommit*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_message_encoding"
              c:identifier="ggit_commit_get_message_encoding">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-commit.c"
             line="97">Get the encoding for the message of a commit,
as a string representing a standard encoding name.

The encoding may be %NULL if the 'encoding' header
in the commit is missing; in that case UTF-8 is assumed.</doc>
        <source-position filename="libgit2-glib/ggit-commit.h" line="56"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-commit.c"
               line="107">the encoding of the commit message or %NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="commit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-commit.c"
                 line="99">a #GgitCommit.</doc>
            <type name="Commit" c:type="GgitCommit*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_nth_ancestor"
              c:identifier="ggit_commit_get_nth_ancestor"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-commit.c"
             line="345">Gets the commit object that is the n-th generation ancestor
of the named commit object, following only the first parents.
Passing %0 to the @n parameter returns another instance of @commit.</doc>
        <source-position filename="libgit2-glib/ggit-commit.h" line="72"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-commit.c"
               line="355">the @n ancestor commit.</doc>
          <type name="Commit" c:type="GgitCommit*"/>
        </return-value>
        <parameters>
          <instance-parameter name="commit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-commit.c"
                 line="347">a #GgitCommit.</doc>
            <type name="Commit" c:type="GgitCommit*"/>
          </instance-parameter>
          <parameter name="n" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-commit.c"
                 line="348">the requested ancestor.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_parents" c:identifier="ggit_commit_get_parents">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-commit.c"
             line="274">Gets the parents collection for @commit.</doc>
        <source-position filename="libgit2-glib/ggit-commit.h" line="66"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-commit.c"
               line="280">the parents collection of the commit.</doc>
          <type name="CommitParents" c:type="GgitCommitParents*"/>
        </return-value>
        <parameters>
          <instance-parameter name="commit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-commit.c"
                 line="276">a #GgitCommit.</doc>
            <type name="Commit" c:type="GgitCommit*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_subject" c:identifier="ggit_commit_get_subject">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-commit.c"
             line="189">Gets the subject of @commit. The subject of a commit is the first line of
the commit message (as per convention). The resulting subject is always
encoded in UTF-8.</doc>
        <source-position filename="libgit2-glib/ggit-commit.h" line="60"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-commit.c"
               line="197">the subject of the commit.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="commit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-commit.c"
                 line="191">a #GgitCommit.</doc>
            <type name="Commit" c:type="GgitCommit*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_tree" c:identifier="ggit_commit_get_tree">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-commit.c"
             line="290">Get the tree object for @commit.</doc>
        <source-position filename="libgit2-glib/ggit-commit.h" line="68"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-commit.c"
               line="296">a #GgitTree.</doc>
          <type name="Tree" c:type="GgitTree*"/>
        </return-value>
        <parameters>
          <instance-parameter name="commit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-commit.c"
                 line="292">a #GgitCommit.</doc>
            <type name="Commit" c:type="GgitCommit*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_tree_id" c:identifier="ggit_commit_get_tree_id">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-commit.c"
             line="319">Get the #GgitOId of the tree of @commit. Note that this is more efficient
than getting the tree object with ggit_commit_get_tree() because no additional
files need to be read from disk.</doc>
        <source-position filename="libgit2-glib/ggit-commit.h" line="70"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-commit.c"
               line="327">a #GgitOId.</doc>
          <type name="OId" c:type="GgitOId*"/>
        </return-value>
        <parameters>
          <instance-parameter name="commit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-commit.c"
                 line="321">a #GgitCommit.</doc>
            <type name="Commit" c:type="GgitCommit*"/>
          </instance-parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="Object" c:type="GgitObject"/>
      </field>
    </class>
    <record name="CommitClass"
            c:type="GgitCommitClass"
            glib:is-gtype-struct-for="Commit">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-commit.h"
           line="39">The class structure for #GgitCommitClass.</doc>
      <source-position filename="libgit2-glib/ggit-commit.h" line="49"/>
      <field name="parent_class" readable="0" private="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-commit.h"
             line="41">The parent class.</doc>
        <type name="ObjectClass" c:type="GgitObjectClass"/>
      </field>
    </record>
    <class name="CommitParents"
           c:symbol-prefix="commit_parents"
           c:type="GgitCommitParents"
           parent="GObject.Object"
           glib:type-name="GgitCommitParents"
           glib:get-type="ggit_commit_parents_get_type"
           glib:type-struct="CommitParentsClass">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-commit-parents.c"
           line="27">Represents the parents of a commit object.</doc>
      <source-position filename="libgit2-glib/ggit-commit-parents.h"
                       line="34"/>
      <constructor name="new" c:identifier="ggit_commit_parents_new">
        <source-position filename="libgit2-glib/ggit-commit-parents.h"
                         line="36"/>
        <return-value transfer-ownership="full">
          <type name="CommitParents" c:type="GgitCommitParents*"/>
        </return-value>
        <parameters>
          <parameter name="commit" transfer-ownership="none">
            <type name="Commit" c:type="GgitCommit*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get" c:identifier="ggit_commit_parents_get">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-commit-parents.c"
             line="161">Get the #GgitCommit of a parent.</doc>
        <source-position filename="libgit2-glib/ggit-commit-parents.h"
                         line="40"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-commit-parents.c"
               line="168">a #GgitCommit.</doc>
          <type name="Commit" c:type="GgitCommit*"/>
        </return-value>
        <parameters>
          <instance-parameter name="parents" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-commit-parents.c"
                 line="163">a #GgitCommitParents.</doc>
            <type name="CommitParents" c:type="GgitCommitParents*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-commit-parents.c"
                 line="164">the parent index.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_id" c:identifier="ggit_commit_parents_get_id">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-commit-parents.c"
             line="190">Get the #GgitOId of a parent.</doc>
        <source-position filename="libgit2-glib/ggit-commit-parents.h"
                         line="43"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-commit-parents.c"
               line="197">a #GgitOId.</doc>
          <type name="OId" c:type="GgitOId*"/>
        </return-value>
        <parameters>
          <instance-parameter name="parents" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-commit-parents.c"
                 line="192">a #GgitCommitParents.</doc>
            <type name="CommitParents" c:type="GgitCommitParents*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-commit-parents.c"
                 line="193">the parent index.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_size"
              c:identifier="ggit_commit_parents_get_size"
              glib:get-property="size">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-commit-parents.c"
             line="141">Get the number of parents in the parents collection.</doc>
        <source-position filename="libgit2-glib/ggit-commit-parents.h"
                         line="38"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-commit-parents.c"
               line="147">the number of parents.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="parents" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-commit-parents.c"
                 line="143">a #GgitCommitParents.</doc>
            <type name="CommitParents" c:type="GgitCommitParents*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="commit"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Commit"/>
      </property>
      <property name="size"
                transfer-ownership="none"
                getter="get_size"
                default-value="0">
        <type name="guint" c:type="guint"/>
      </property>
    </class>
    <record name="CommitParentsClass"
            c:type="GgitCommitParentsClass"
            glib:is-gtype-struct-for="CommitParents">
      <source-position filename="libgit2-glib/ggit-commit-parents.h"
                       line="34"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="Config"
           c:symbol-prefix="config"
           c:type="GgitConfig"
           parent="Native"
           glib:type-name="GgitConfig"
           glib:get-type="ggit_config_get_type"
           glib:type-struct="ConfigClass">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-config.c"
           line="28">Represents a git configuration.</doc>
      <source-position filename="libgit2-glib/ggit-config.h" line="34"/>
      <constructor name="new" c:identifier="ggit_config_new">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-config.c"
             line="79">Create a new config. See also ggit_config_get_default() to get
a #GgitConfig representing the global, XDG and system configuration files.
To get a #GgitConfig for a repository use #ggit_repository_get_config
instead.</doc>
        <source-position filename="libgit2-glib/ggit-config.h" line="36"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-config.c"
               line="87">a #GgitConfig.</doc>
          <type name="Config" c:type="GgitConfig*"/>
        </return-value>
      </constructor>
      <constructor name="new_default"
                   c:identifier="ggit_config_new_default"
                   throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-config.c"
             line="142">Get the global, XDG and system configuration files merged into one
#GgitConfig with their appropriate priority levels. If an error occured
trying to load the various configuration files, this function will return
%NULL and @error will be set accordingly.</doc>
        <source-position filename="libgit2-glib/ggit-config.h" line="38"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-config.c"
               line="151">A #GgitConfig</doc>
          <type name="Config" c:type="GgitConfig*"/>
        </return-value>
      </constructor>
      <constructor name="new_from_file"
                   c:identifier="ggit_config_new_from_file"
                   throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-config.c"
             line="100">Create a new config from a single on disk file. This is a convenience
API and is exactly the same as creating an empty #GgitConfig using
#ggit_config_new and adding the file with #ggit_config_add_file. The
level will be set to #GGIT_CONFIG_LEVEL_LOCAL. If the config could not be
loaded this function returns %NULL and @error will be set accordingly.</doc>
        <source-position filename="libgit2-glib/ggit-config.h" line="40"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-config.c"
               line="111">a #GgitConfig.</doc>
          <type name="Config" c:type="GgitConfig*"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-config.c"
                 line="102">the file to load.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="find_global" c:identifier="ggit_config_find_global">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-config.c"
             line="173">Find the file representing the users global git configuration. This file
is usually located at $HOME/.gitconfig. This function will try to guess
the full path to that file, if the file exists. The returned file may then
be used with #ggit_config_new_from_file or #ggit_config_add_file. This
function returns %NULL if the global config could not be found.</doc>
        <source-position filename="libgit2-glib/ggit-config.h" line="43"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-config.c"
               line="182">a #GFile or %NULL if the global config could not be found.</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
      </function>
      <function name="find_system" c:identifier="ggit_config_find_system">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-config.c"
             line="204">Find the file representing the systems global git configuration. This file
is usually located at /etc/gitconfig on UNIX type systems or
%PROGRAMFILES%\Git\etc\gitconfig on windows. This function will try to guess
the full path to that file, if the file exists. The returned file may then
be used with #ggit_config_new_from_file or #ggit_config_add_file. This
function returns %NULL if the system config could not be found.</doc>
        <source-position filename="libgit2-glib/ggit-config.h" line="44"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-config.c"
               line="214">a #GFile or %NULL if the system config could not
                          be found.</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
      </function>
      <method name="add_file" c:identifier="ggit_config_add_file" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-config.c"
             line="270">Add an on-disk config file instance to an existing config

The on-disk file pointed at by @file will be opened and
parsed; it's expected to be a native Git config file following
the default Git config syntax (see man git-config).

Further queries on this config object will access each
of the config file instances in order (instances with
a higher priority level will be accessed first).</doc>
        <source-position filename="libgit2-glib/ggit-config.h" line="50"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-config.c"
                 line="272">a #GgitConfig.</doc>
            <type name="Config" c:type="GgitConfig*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-config.c"
                 line="273">a #GFile.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="level" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-config.c"
                 line="274">a #GgitConfigLevel.</doc>
            <type name="ConfigLevel" c:type="GgitConfigLevel"/>
          </parameter>
          <parameter name="force" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-config.c"
                 line="275">if a config file already exists for the given priority level, replace it.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="delete_entry"
              c:identifier="ggit_config_delete_entry"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-config.c"
             line="638">Delete a config variable from the config file.</doc>
        <source-position filename="libgit2-glib/ggit-config.h" line="97"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-config.c"
               line="646">%TRUE if the configuration value was deleted, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-config.c"
                 line="640">a #GgitConfig.</doc>
            <type name="Config" c:type="GgitConfig*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-config.c"
                 line="641">the configuration value.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="foreach" c:identifier="ggit_config_foreach" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-config.c"
             line="691">Call @callback for each configuration value.</doc>
        <source-position filename="libgit2-glib/ggit-config.h" line="101"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-config.c"
               line="700">%TRUE if successfull, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-config.c"
                 line="693">a #GgitConfig.</doc>
            <type name="Config" c:type="GgitConfig*"/>
          </instance-parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     scope="call"
                     closure="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-config.c"
                 line="694">a #GgitConfigCallback.</doc>
            <type name="ConfigCallback" c:type="GgitConfigCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-config.c"
                 line="695">the user data for @callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_bool" c:identifier="ggit_config_get_bool" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-config.c"
             line="456">Get a boolean configuration value.</doc>
        <source-position filename="libgit2-glib/ggit-config.h" line="74"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-config.c"
               line="464">the value.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-config.c"
                 line="458">a #GgitConfig.</doc>
            <type name="Config" c:type="GgitConfig*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-config.c"
                 line="459">the name of the configuration value.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_entry" c:identifier="ggit_config_get_entry" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-config.c"
             line="603">Get #GgitConfigEntry of a config variable.</doc>
        <source-position filename="libgit2-glib/ggit-config.h" line="93"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-config.c"
               line="611">the entry of @name, or %NULL if such a value
                          does not exist.</doc>
          <type name="ConfigEntry" c:type="GgitConfigEntry*"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-config.c"
                 line="605">a #GgitConfig.</doc>
            <type name="Config" c:type="GgitConfig*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-config.c"
                 line="606">the configuration name.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_int32" c:identifier="ggit_config_get_int32" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-config.c"
             line="318">Get a int32 configuration value.</doc>
        <source-position filename="libgit2-glib/ggit-config.h" line="56"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-config.c"
               line="326">the value.</doc>
          <type name="gint32" c:type="gint32"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-config.c"
                 line="320">a #GgitConfig.</doc>
            <type name="Config" c:type="GgitConfig*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-config.c"
                 line="321">the name of the configuration value.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_int64" c:identifier="ggit_config_get_int64" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-config.c"
             line="387">Get a int64 configuration value.</doc>
        <source-position filename="libgit2-glib/ggit-config.h" line="65"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-config.c"
               line="395">the value.</doc>
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-config.c"
                 line="389">a #GgitConfig.</doc>
            <type name="Config" c:type="GgitConfig*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-config.c"
                 line="390">the name of the configuration value.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_string"
              c:identifier="ggit_config_get_string"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-config.c"
             line="525">Get the configuration value of @name as string.</doc>
        <source-position filename="libgit2-glib/ggit-config.h" line="83"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-config.c"
               line="533">the string value of @name, or %NULL if such a value
                       does not exist</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-config.c"
                 line="527">a #GgitConfig.</doc>
            <type name="Config" c:type="GgitConfig*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-config.c"
                 line="528">the name of the configuration value.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="match" c:identifier="ggit_config_match" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-config.c"
             line="777">Matches a configuration against a regular expression. @match_info will
contain the match information if the return value is not %NULL, otherwise
@error will be set.</doc>
        <source-position filename="libgit2-glib/ggit-config.h" line="106"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-config.c"
               line="788">the value of that matched configuration</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-config.c"
                 line="779">a #GgitConfig.</doc>
            <type name="Config" c:type="GgitConfig*"/>
          </instance-parameter>
          <parameter name="regex" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-config.c"
                 line="780">a #GRegex.</doc>
            <type name="GLib.Regex" c:type="GRegex*"/>
          </parameter>
          <parameter name="match_info"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-config.c"
                 line="781">a #GMatchInfo.</doc>
            <type name="GLib.MatchInfo" c:type="GMatchInfo**"/>
          </parameter>
        </parameters>
      </method>
      <method name="match_foreach"
              c:identifier="ggit_config_match_foreach"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-config.c"
             line="827">Call @callback for all configurations matching @regex.</doc>
        <source-position filename="libgit2-glib/ggit-config.h" line="111"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-config.c"
               line="837">%TRUE if matches were successfull, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-config.c"
                 line="829">a #GgitConfig.</doc>
            <type name="Config" c:type="GgitConfig*"/>
          </instance-parameter>
          <parameter name="regex" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-config.c"
                 line="830">a #GRegex.</doc>
            <type name="GLib.Regex" c:type="GRegex*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     scope="call"
                     closure="2">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-config.c"
                 line="831">a #GgitConfigMatchCallback.</doc>
            <type name="ConfigMatchCallback" c:type="GgitConfigMatchCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-config.c"
                 line="832">the user data for @callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="open_level"
              c:identifier="ggit_config_open_level"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-config.c"
             line="237">Open a specific level config derived from a multi-level one.</doc>
        <source-position filename="libgit2-glib/ggit-config.h" line="46"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-config.c"
               line="245">the configuration at @level, or %NULL.</doc>
          <type name="Config" c:type="GgitConfig*"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-config.c"
                 line="239">a #GgitConfig.</doc>
            <type name="Config" c:type="GgitConfig*"/>
          </instance-parameter>
          <parameter name="level" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-config.c"
                 line="240">the level to open.</doc>
            <type name="ConfigLevel" c:type="GgitConfigLevel"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_bool" c:identifier="ggit_config_set_bool" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-config.c"
             line="490">Set a boolean value.</doc>
        <source-position filename="libgit2-glib/ggit-config.h" line="78"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-config.c"
               line="499">%TRUE if the value was successfully set, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-config.c"
                 line="492">a #GgitConfig.</doc>
            <type name="Config" c:type="GgitConfig*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-config.c"
                 line="493">the name of the configuration value.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-config.c"
                 line="494">the new value.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_int32" c:identifier="ggit_config_set_int32" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-config.c"
             line="352">Set a int32 value.</doc>
        <source-position filename="libgit2-glib/ggit-config.h" line="60"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-config.c"
               line="361">%TRUE if the value was successfully set, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-config.c"
                 line="354">a #GgitConfig.</doc>
            <type name="Config" c:type="GgitConfig*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-config.c"
                 line="355">the name of the configuration value.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-config.c"
                 line="356">the new value.</doc>
            <type name="gint32" c:type="gint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_int64" c:identifier="ggit_config_set_int64" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-config.c"
             line="421">Set a int64 value.</doc>
        <source-position filename="libgit2-glib/ggit-config.h" line="69"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-config.c"
               line="430">%TRUE if the value was successfully set, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-config.c"
                 line="423">a #GgitConfig.</doc>
            <type name="Config" c:type="GgitConfig*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-config.c"
                 line="424">the name of the configuration value.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-config.c"
                 line="425">the new value.</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_string"
              c:identifier="ggit_config_set_string"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-config.c"
             line="560">Set a new string value of a configuration.</doc>
        <source-position filename="libgit2-glib/ggit-config.h" line="87"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-config.c"
               line="569">%TRUE if the value was successfully set, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-config.c"
                 line="562">a #GgitConfig.</doc>
            <type name="Config" c:type="GgitConfig*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-config.c"
                 line="563">the name of the configuration value.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-config.c"
                 line="564">the new value.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="snapshot" c:identifier="ggit_config_snapshot" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-config.c"
             line="864">Create a snapshot of the current state of the configuration,
which allows you to look into a consistent view of the configuration
for looking up complex values (e.g. a remote, submodule).</doc>
        <source-position filename="libgit2-glib/ggit-config.h" line="117"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-config.c"
               line="873">a new #GgitConfig, or %NULL if an error occurred.</doc>
          <type name="Config" c:type="GgitConfig*"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-config.c"
                 line="866">a #GgitConfig.</doc>
            <type name="Config" c:type="GgitConfig*"/>
          </instance-parameter>
        </parameters>
      </method>
    </class>
    <callback name="ConfigCallback" c:type="GgitConfigCallback">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="1031">The type of the callback functions for retrieving values from a #GgitConfig.
See ggit_config_foreach().</doc>
      <source-position filename="libgit2-glib/ggit-types.h" line="1042"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="1039">0 to go for the next config value or a #GgitError in case there was
         an error.</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="entry" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-types.h"
               line="1033">a #GgitConfigEntry.</doc>
          <type name="ConfigEntry" c:type="GgitConfigEntry*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-types.h"
               line="1034">user-supplied data.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <record name="ConfigClass"
            c:type="GgitConfigClass"
            glib:is-gtype-struct-for="Config">
      <source-position filename="libgit2-glib/ggit-config.h" line="34"/>
      <field name="parent_class">
        <type name="NativeClass" c:type="GgitNativeClass"/>
      </field>
    </record>
    <record name="ConfigEntry"
            c:type="GgitConfigEntry"
            opaque="1"
            glib:type-name="GgitConfigEntry"
            glib:get-type="ggit_config_entry_get_type"
            c:symbol-prefix="config_entry">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="56">Represents a git configuration entry.</doc>
      <source-position filename="libgit2-glib/ggit-types.h" line="61"/>
      <method name="get_level" c:identifier="ggit_config_entry_get_level">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-config-entry.c"
             line="115">Gets the #GgitConfigLevel of @entry.</doc>
        <source-position filename="libgit2-glib/ggit-config-entry.h"
                         line="45"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-config-entry.c"
               line="121">the #GgitConfigLevel of @entry.</doc>
          <type name="ConfigLevel" c:type="GgitConfigLevel"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-config-entry.c"
                 line="117">a #GgitConfigEntry.</doc>
            <type name="ConfigEntry" c:type="GgitConfigEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="ggit_config_entry_get_name">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-config-entry.c"
             line="83">Gets the name of @entry.</doc>
        <source-position filename="libgit2-glib/ggit-config-entry.h"
                         line="41"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-config-entry.c"
               line="89">the name of @entry or %NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-config-entry.c"
                 line="85">a #GgitConfigEntry.</doc>
            <type name="ConfigEntry" c:type="GgitConfigEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_value" c:identifier="ggit_config_entry_get_value">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-config-entry.c"
             line="99">Gets the value of @entry.</doc>
        <source-position filename="libgit2-glib/ggit-config-entry.h"
                         line="43"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-config-entry.c"
               line="105">the value of @entry or %NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-config-entry.c"
                 line="101">a #GgitConfigEntry.</doc>
            <type name="ConfigEntry" c:type="GgitConfigEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="ggit_config_entry_ref">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-config-entry.c"
             line="46">Atomically increments the reference count of @entry by one.
This function is MT-safe and may be called from any thread.</doc>
        <source-position filename="libgit2-glib/ggit-config-entry.h"
                         line="38"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-config-entry.c"
               line="53">a #GgitConfigEntry or %NULL.</doc>
          <type name="ConfigEntry" c:type="GgitConfigEntry*"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-config-entry.c"
                 line="48">a #GgitConfigEntry.</doc>
            <type name="ConfigEntry" c:type="GgitConfigEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="ggit_config_entry_unref">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-config-entry.c"
             line="65">Atomically decrements the reference count of @entry by one.
If the reference count drops to 0, @entry is freed.</doc>
        <source-position filename="libgit2-glib/ggit-config-entry.h"
                         line="39"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-config-entry.c"
                 line="67">a #GgitConfigEntry.</doc>
            <type name="ConfigEntry" c:type="GgitConfigEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <enumeration name="ConfigLevel"
                 glib:type-name="GgitConfigLevel"
                 glib:get-type="ggit_config_level_get_type"
                 c:type="GgitConfigLevel">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types-19.h"
           line="24">Priority level of a config file.
These priority levels correspond to the natural escalation logic
(from higher to lower) when searching for config entries in git.git.</doc>
      <member name="programdata"
              value="1"
              c:identifier="GGIT_CONFIG_LEVEL_PROGRAMDATA"
              glib:nick="programdata"
              glib:name="GGIT_CONFIG_LEVEL_PROGRAMDATA">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types-19.h"
             line="26">System-wide on Windows, for compatibility with portable git.</doc>
      </member>
      <member name="system"
              value="2"
              c:identifier="GGIT_CONFIG_LEVEL_SYSTEM"
              glib:nick="system"
              glib:name="GGIT_CONFIG_LEVEL_SYSTEM">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types-19.h"
             line="27">System-wide configuration file.</doc>
      </member>
      <member name="xdg"
              value="3"
              c:identifier="GGIT_CONFIG_LEVEL_XDG"
              glib:nick="xdg"
              glib:name="GGIT_CONFIG_LEVEL_XDG">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types-19.h"
             line="28">XDG compatible configuration file (.config/git/config).</doc>
      </member>
      <member name="global"
              value="4"
              c:identifier="GGIT_CONFIG_LEVEL_GLOBAL"
              glib:nick="global"
              glib:name="GGIT_CONFIG_LEVEL_GLOBAL">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types-19.h"
             line="29">User-specific configuration file, also called Global configuration file.</doc>
      </member>
      <member name="local"
              value="5"
              c:identifier="GGIT_CONFIG_LEVEL_LOCAL"
              glib:nick="local"
              glib:name="GGIT_CONFIG_LEVEL_LOCAL">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types-19.h"
             line="30">Repository specific configuration file.</doc>
      </member>
      <member name="worktree"
              value="6"
              c:identifier="GGIT_CONFIG_LEVEL_WORKTREE"
              glib:nick="worktree"
              glib:name="GGIT_CONFIG_LEVEL_WORKTREE">
      </member>
      <member name="app"
              value="7"
              c:identifier="GGIT_CONFIG_LEVEL_APP"
              glib:nick="app"
              glib:name="GGIT_CONFIG_LEVEL_APP">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types-19.h"
             line="32">Application specific configuration file; freely defined by applications.</doc>
      </member>
      <member name="highest"
              value="-1"
              c:identifier="GGIT_CONFIG_LEVEL_HIGHEST"
              glib:nick="highest"
              glib:name="GGIT_CONFIG_LEVEL_HIGHEST">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types-19.h"
             line="33">Represents the highest level of a config file.</doc>
      </member>
    </enumeration>
    <callback name="ConfigMatchCallback" c:type="GgitConfigMatchCallback">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="1045">The type of the callback functions for retrieving values from a #GgitConfig
using a regular expression. See ggit_config_match_foreach().</doc>
      <source-position filename="libgit2-glib/ggit-types.h" line="1057"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="1054">0 to go for the next config value or a #GgitError in case there was
         an error.</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="match_info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-types.h"
               line="1047">the match</doc>
          <type name="GLib.MatchInfo" c:type="GMatchInfo*"/>
        </parameter>
        <parameter name="value" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-types.h"
               line="1048">the value</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="2">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-types.h"
               line="1049">user-supplied data.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <bitfield name="CreateFlags"
              glib:type-name="GgitCreateFlags"
              glib:get-type="ggit_create_flags_get_type"
              c:type="GgitCreateFlags">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="344">Describes how something should be created.</doc>
      <member name="none"
              value="0"
              c:identifier="GGIT_CREATE_NONE"
              glib:nick="none"
              glib:name="GGIT_CREATE_NONE">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="346">attempt to create.</doc>
      </member>
      <member name="force"
              value="1"
              c:identifier="GGIT_CREATE_FORCE"
              glib:nick="force"
              glib:name="GGIT_CREATE_FORCE">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="347">force creation.</doc>
      </member>
    </bitfield>
    <class name="Cred"
           c:symbol-prefix="cred"
           c:type="GgitCred"
           parent="Native"
           glib:type-name="GgitCred"
           glib:get-type="ggit_cred_get_type"
           glib:type-struct="CredClass">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-cred.c"
           line="26">Represents a git credential.</doc>
      <source-position filename="libgit2-glib/ggit-cred.h" line="37"/>
      <field name="parent_instance">
        <type name="Native" c:type="GgitNative"/>
      </field>
    </class>
    <callback name="CredAcquireCallback" c:type="GgitCredAcquireCallback">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-cred.h"
           line="39">Signature of a function which acquires a credential object.</doc>
      <source-position filename="libgit2-glib/ggit-cred.h" line="50"/>
      <return-value transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="url" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-cred.h"
               line="41">the resource for which we are demanding a credential.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="username_from_url"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-cred.h"
               line="42">The username that was embedded in a "user@host"
                                  remote url, or NULL if not included.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="allowed_types" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-cred.h"
               line="44">a bitmask stating which cred types are OK to return.</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="cred" transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-cred.h"
               line="45">newly created credential object.</doc>
          <type name="Cred" c:type="GgitCred**"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="4">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-cred.h"
               line="46">user-supplied data.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <record name="CredClass"
            c:type="GgitCredClass"
            glib:is-gtype-struct-for="Cred">
      <source-position filename="libgit2-glib/ggit-cred.h" line="37"/>
      <field name="parent_class" readable="0" private="1">
        <type name="NativeClass" c:type="GgitNativeClass"/>
      </field>
    </record>
    <class name="CredPlaintext"
           c:symbol-prefix="cred_plaintext"
           c:type="GgitCredPlaintext"
           parent="Cred"
           glib:type-name="GgitCredPlaintext"
           glib:get-type="ggit_cred_plaintext_get_type"
           glib:type-struct="CredPlaintextClass">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-cred-plaintext.c"
           line="27">Represents a plain text credential.</doc>
      <source-position filename="libgit2-glib/ggit-cred-plaintext.h"
                       line="37"/>
      <implements name="Gio.Initable"/>
      <constructor name="new"
                   c:identifier="ggit_cred_plaintext_new"
                   throws="1">
        <source-position filename="libgit2-glib/ggit-cred-plaintext.h"
                         line="39"/>
        <return-value transfer-ownership="full">
          <type name="CredPlaintext" c:type="GgitCredPlaintext*"/>
        </return-value>
        <parameters>
          <parameter name="username" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="password" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_password"
              c:identifier="ggit_cred_plaintext_get_password"
              glib:get-property="password">
        <source-position filename="libgit2-glib/ggit-cred-plaintext.h"
                         line="45"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="cred" transfer-ownership="none">
            <type name="CredPlaintext" c:type="GgitCredPlaintext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_username"
              c:identifier="ggit_cred_plaintext_get_username"
              glib:get-property="username">
        <source-position filename="libgit2-glib/ggit-cred-plaintext.h"
                         line="43"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="cred" transfer-ownership="none">
            <type name="CredPlaintext" c:type="GgitCredPlaintext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="password"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_password"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="username"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_username"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent_instance">
        <type name="Cred" c:type="GgitCred"/>
      </field>
    </class>
    <record name="CredPlaintextClass"
            c:type="GgitCredPlaintextClass"
            glib:is-gtype-struct-for="CredPlaintext">
      <source-position filename="libgit2-glib/ggit-cred-plaintext.h"
                       line="37"/>
      <field name="parent_class" readable="0" private="1">
        <type name="CredClass" c:type="GgitCredClass"/>
      </field>
    </record>
    <class name="CredSshInteractive"
           c:symbol-prefix="cred_ssh_interactive"
           c:type="GgitCredSshInteractive"
           parent="Cred"
           glib:type-name="GgitCredSshInteractive"
           glib:get-type="ggit_cred_ssh_interactive_get_type"
           glib:type-struct="CredSshInteractiveClass">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-cred-ssh-interactive.c"
           line="41">Represents a ssh interactive credential.</doc>
      <source-position filename="libgit2-glib/ggit-cred-ssh-interactive.h"
                       line="45"/>
      <implements name="Gio.Initable"/>
      <constructor name="new"
                   c:identifier="ggit_cred_ssh_interactive_new"
                   throws="1">
        <source-position filename="libgit2-glib/ggit-cred-ssh-interactive.h"
                         line="48"/>
        <return-value transfer-ownership="full">
          <type name="CredSshInteractive" c:type="GgitCredSshInteractive*"/>
        </return-value>
        <parameters>
          <parameter name="username" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="prompt">
        <source-position filename="libgit2-glib/ggit-cred-ssh-interactive.h"
                         line="42"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="cred" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-cred-ssh-interactive.c"
                 line="67">a #GgitCredSshInteractive</doc>
            <type name="CredSshInteractive" c:type="GgitCredSshInteractive*"/>
          </instance-parameter>
          <parameter name="prompts" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-cred-ssh-interactive.c"
                 line="68">a list of prompts.</doc>
            <array length="1"
                   zero-terminated="0"
                   c:type="GgitCredSshInteractivePrompt**">
              <type name="CredSshInteractivePrompt"
                    c:type="GgitCredSshInteractivePrompt*"/>
            </array>
          </parameter>
          <parameter name="num_prompts" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-cred-ssh-interactive.c"
                 line="69">number of prompts.</doc>
            <type name="gsize" c:type="gsize"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_username"
              c:identifier="ggit_cred_ssh_interactive_get_username"
              glib:get-property="username">
        <source-position filename="libgit2-glib/ggit-cred-ssh-interactive.h"
                         line="51"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="cred" transfer-ownership="none">
            <type name="CredSshInteractive" c:type="GgitCredSshInteractive*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="username"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_username"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent_instance">
        <type name="Cred" c:type="GgitCred"/>
      </field>
    </class>
    <record name="CredSshInteractiveClass"
            c:type="GgitCredSshInteractiveClass"
            glib:is-gtype-struct-for="CredSshInteractive">
      <source-position filename="libgit2-glib/ggit-cred-ssh-interactive.h"
                       line="45"/>
      <field name="parent_class" readable="0" private="1">
        <type name="CredClass" c:type="GgitCredClass"/>
      </field>
      <field name="prompt">
        <callback name="prompt">
          <source-position filename="libgit2-glib/ggit-cred-ssh-interactive.h"
                           line="42"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="cred" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libgit2-glib/ggit-cred-ssh-interactive.c"
                   line="67">a #GgitCredSshInteractive</doc>
              <type name="CredSshInteractive"
                    c:type="GgitCredSshInteractive*"/>
            </parameter>
            <parameter name="prompts" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libgit2-glib/ggit-cred-ssh-interactive.c"
                   line="68">a list of prompts.</doc>
              <array length="2"
                     zero-terminated="0"
                     c:type="GgitCredSshInteractivePrompt**">
                <type name="CredSshInteractivePrompt"
                      c:type="GgitCredSshInteractivePrompt*"/>
              </array>
            </parameter>
            <parameter name="num_prompts" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libgit2-glib/ggit-cred-ssh-interactive.c"
                   line="69">number of prompts.</doc>
              <type name="gsize" c:type="gsize"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="CredSshInteractivePrompt"
            c:type="GgitCredSshInteractivePrompt"
            opaque="1"
            glib:type-name="GgitCredSshInteractivePrompt"
            glib:get-type="ggit_cred_ssh_interactive_prompt_get_type"
            c:symbol-prefix="cred_ssh_interactive_prompt">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="63">Represents a ssh interactive prompt.</doc>
      <source-position filename="libgit2-glib/ggit-types.h" line="68"/>
      <constructor name="new"
                   c:identifier="ggit_cred_ssh_interactive_prompt_new">
        <source-position filename="libgit2-glib/ggit-cred-ssh-interactive.h"
                         line="58"/>
        <return-value transfer-ownership="full">
          <type name="CredSshInteractivePrompt"
                c:type="GgitCredSshInteractivePrompt*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="instruction" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="text" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="is_masked" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_instruction"
              c:identifier="ggit_cred_ssh_interactive_prompt_get_instruction">
        <source-position filename="libgit2-glib/ggit-cred-ssh-interactive.h"
                         line="77"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="prompt" transfer-ownership="none">
            <type name="CredSshInteractivePrompt"
                  c:type="GgitCredSshInteractivePrompt*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name"
              c:identifier="ggit_cred_ssh_interactive_prompt_get_name">
        <source-position filename="libgit2-glib/ggit-cred-ssh-interactive.h"
                         line="71"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="prompt" transfer-ownership="none">
            <type name="CredSshInteractivePrompt"
                  c:type="GgitCredSshInteractivePrompt*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_response"
              c:identifier="ggit_cred_ssh_interactive_prompt_get_response">
        <source-position filename="libgit2-glib/ggit-cred-ssh-interactive.h"
                         line="87"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="prompt" transfer-ownership="none">
            <type name="CredSshInteractivePrompt"
                  c:type="GgitCredSshInteractivePrompt*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_text"
              c:identifier="ggit_cred_ssh_interactive_prompt_get_text">
        <source-position filename="libgit2-glib/ggit-cred-ssh-interactive.h"
                         line="74"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="prompt" transfer-ownership="none">
            <type name="CredSshInteractivePrompt"
                  c:type="GgitCredSshInteractivePrompt*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_masked"
              c:identifier="ggit_cred_ssh_interactive_prompt_is_masked">
        <source-position filename="libgit2-glib/ggit-cred-ssh-interactive.h"
                         line="80"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="prompt" transfer-ownership="none">
            <type name="CredSshInteractivePrompt"
                  c:type="GgitCredSshInteractivePrompt*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="ggit_cred_ssh_interactive_prompt_ref">
        <source-position filename="libgit2-glib/ggit-cred-ssh-interactive.h"
                         line="65"/>
        <return-value transfer-ownership="full">
          <type name="CredSshInteractivePrompt"
                c:type="GgitCredSshInteractivePrompt*"/>
        </return-value>
        <parameters>
          <instance-parameter name="prompt" transfer-ownership="none">
            <type name="CredSshInteractivePrompt"
                  c:type="GgitCredSshInteractivePrompt*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_response"
              c:identifier="ggit_cred_ssh_interactive_prompt_set_response">
        <source-position filename="libgit2-glib/ggit-cred-ssh-interactive.h"
                         line="83"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="prompt" transfer-ownership="none">
            <type name="CredSshInteractivePrompt"
                  c:type="GgitCredSshInteractivePrompt*"/>
          </instance-parameter>
          <parameter name="response" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="unref"
              c:identifier="ggit_cred_ssh_interactive_prompt_unref">
        <source-position filename="libgit2-glib/ggit-cred-ssh-interactive.h"
                         line="68"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="prompt" transfer-ownership="none">
            <type name="CredSshInteractivePrompt"
                  c:type="GgitCredSshInteractivePrompt*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <class name="CredSshKeyFromAgent"
           c:symbol-prefix="cred_ssh_key_from_agent"
           c:type="GgitCredSshKeyFromAgent"
           parent="Cred"
           glib:type-name="GgitCredSshKeyFromAgent"
           glib:get-type="ggit_cred_ssh_key_from_agent_get_type"
           glib:type-struct="CredSshKeyFromAgentClass">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-cred-ssh-key-from-agent.c"
           line="31">Represents a ssh key agent credential.</doc>
      <source-position filename="libgit2-glib/ggit-cred-ssh-key-from-agent.h"
                       line="31"/>
      <implements name="Gio.Initable"/>
      <constructor name="new"
                   c:identifier="ggit_cred_ssh_key_from_agent_new"
                   throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-cred-ssh-key-from-agent.c"
             line="173">Creates a new #GgitCredSshKeyFromAgent.</doc>
        <source-position filename="libgit2-glib/ggit-cred-ssh-key-from-agent.h"
                         line="34"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-cred-ssh-key-from-agent.c"
               line="180">a new #GgitCredSshKeyFromAgent or %NULL if there was an error.</doc>
          <type name="CredSshKeyFromAgent" c:type="GgitCredSshKeyFromAgent*"/>
        </return-value>
        <parameters>
          <parameter name="username" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-cred-ssh-key-from-agent.c"
                 line="175">the username.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_username"
              c:identifier="ggit_cred_ssh_key_from_agent_get_username"
              glib:get-property="username">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-cred-ssh-key-from-agent.c"
             line="192">Gets the username for the credential.</doc>
        <source-position filename="libgit2-glib/ggit-cred-ssh-key-from-agent.h"
                         line="37"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-cred-ssh-key-from-agent.c"
               line="198">the username or %NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="cred" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-cred-ssh-key-from-agent.c"
                 line="194">a #GgitCredSshKeyFromAgent.</doc>
            <type name="CredSshKeyFromAgent"
                  c:type="GgitCredSshKeyFromAgent*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="username"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_username"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
    </class>
    <record name="CredSshKeyFromAgentClass"
            c:type="GgitCredSshKeyFromAgentClass"
            glib:is-gtype-struct-for="CredSshKeyFromAgent">
      <source-position filename="libgit2-glib/ggit-cred-ssh-key-from-agent.h"
                       line="31"/>
      <field name="parent_class">
        <type name="CredClass" c:type="GgitCredClass"/>
      </field>
    </record>
    <bitfield name="Credtype"
              glib:type-name="GgitCredtype"
              glib:get-type="ggit_credtype_get_type"
              c:type="GgitCredtype">
      <member name="userpass_plaintext"
              value="1"
              c:identifier="GGIT_CREDTYPE_USERPASS_PLAINTEXT"
              glib:nick="userpass-plaintext"
              glib:name="GGIT_CREDTYPE_USERPASS_PLAINTEXT">
      </member>
      <member name="ssh_key"
              value="2"
              c:identifier="GGIT_CREDTYPE_SSH_KEY"
              glib:nick="ssh-key"
              glib:name="GGIT_CREDTYPE_SSH_KEY">
      </member>
      <member name="ssh_custom"
              value="4"
              c:identifier="GGIT_CREDTYPE_SSH_CUSTOM"
              glib:nick="ssh-custom"
              glib:name="GGIT_CREDTYPE_SSH_CUSTOM">
      </member>
      <member name="default"
              value="8"
              c:identifier="GGIT_CREDTYPE_DEFAULT"
              glib:nick="default"
              glib:name="GGIT_CREDTYPE_DEFAULT">
      </member>
      <member name="ssh_interactive"
              value="16"
              c:identifier="GGIT_CREDTYPE_SSH_INTERACTIVE"
              glib:nick="ssh-interactive"
              glib:name="GGIT_CREDTYPE_SSH_INTERACTIVE">
      </member>
    </bitfield>
    <function-macro name="DIFF_BINARY"
                    c:identifier="GGIT_DIFF_BINARY"
                    introspectable="0">
      <source-position filename="libgit2-glib/ggit-diff-binary.h" line="31"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="DIFF_BINARY_FILE"
                    c:identifier="GGIT_DIFF_BINARY_FILE"
                    introspectable="0">
      <source-position filename="libgit2-glib/ggit-diff-binary-file.h"
                       line="31"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="DIFF_DELTA"
                    c:identifier="GGIT_DIFF_DELTA"
                    introspectable="0">
      <source-position filename="libgit2-glib/ggit-diff-delta.h" line="32"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="DIFF_FILE"
                    c:identifier="GGIT_DIFF_FILE"
                    introspectable="0">
      <source-position filename="libgit2-glib/ggit-diff-file.h" line="32"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="DIFF_HUNK"
                    c:identifier="GGIT_DIFF_HUNK"
                    introspectable="0">
      <source-position filename="libgit2-glib/ggit-diff-hunk.h" line="31"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="DIFF_LINE"
                    c:identifier="GGIT_DIFF_LINE"
                    introspectable="0">
      <source-position filename="libgit2-glib/ggit-diff-line.h" line="31"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="DIFF_SIMILARITY_METRIC"
                    c:identifier="GGIT_DIFF_SIMILARITY_METRIC"
                    introspectable="0">
      <source-position filename="libgit2-glib/ggit-diff-similarity-metric.h"
                       line="33"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <enumeration name="DeltaType"
                 glib:type-name="GgitDeltaType"
                 glib:get-type="ggit_delta_type_get_type"
                 c:type="GgitDeltaType">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="357">Describes the type of change the delta is.</doc>
      <member name="unmodified"
              value="0"
              c:identifier="GGIT_DELTA_UNMODIFIED"
              glib:nick="unmodified"
              glib:name="GGIT_DELTA_UNMODIFIED">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="359">unmodified.</doc>
      </member>
      <member name="added"
              value="1"
              c:identifier="GGIT_DELTA_ADDED"
              glib:nick="added"
              glib:name="GGIT_DELTA_ADDED">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="360">added.</doc>
      </member>
      <member name="deleted"
              value="2"
              c:identifier="GGIT_DELTA_DELETED"
              glib:nick="deleted"
              glib:name="GGIT_DELTA_DELETED">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="361">deleted.</doc>
      </member>
      <member name="modified"
              value="3"
              c:identifier="GGIT_DELTA_MODIFIED"
              glib:nick="modified"
              glib:name="GGIT_DELTA_MODIFIED">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="362">modified.</doc>
      </member>
      <member name="renamed"
              value="4"
              c:identifier="GGIT_DELTA_RENAMED"
              glib:nick="renamed"
              glib:name="GGIT_DELTA_RENAMED">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="363">renamed.</doc>
      </member>
      <member name="copied"
              value="5"
              c:identifier="GGIT_DELTA_COPIED"
              glib:nick="copied"
              glib:name="GGIT_DELTA_COPIED">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="364">copied.</doc>
      </member>
      <member name="ignored"
              value="6"
              c:identifier="GGIT_DELTA_IGNORED"
              glib:nick="ignored"
              glib:name="GGIT_DELTA_IGNORED">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="365">ignored.</doc>
      </member>
      <member name="untracked"
              value="7"
              c:identifier="GGIT_DELTA_UNTRACKED"
              glib:nick="untracked"
              glib:name="GGIT_DELTA_UNTRACKED">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="366">untracked.</doc>
      </member>
      <member name="typechange"
              value="8"
              c:identifier="GGIT_DELTA_TYPECHANGE"
              glib:nick="typechange"
              glib:name="GGIT_DELTA_TYPECHANGE">
      </member>
      <member name="unreadable"
              value="9"
              c:identifier="GGIT_DELTA_UNREADABLE"
              glib:nick="unreadable"
              glib:name="GGIT_DELTA_UNREADABLE">
      </member>
      <member name="conflicted"
              value="10"
              c:identifier="GGIT_DELTA_CONFLICTED"
              glib:nick="conflicted"
              glib:name="GGIT_DELTA_CONFLICTED">
      </member>
    </enumeration>
    <class name="Diff"
           c:symbol-prefix="diff"
           c:type="GgitDiff"
           parent="Native"
           glib:type-name="GgitDiff"
           glib:get-type="ggit_diff_get_type"
           glib:type-struct="DiffClass">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-diff.c"
           line="39">Represents a diff list.</doc>
      <source-position filename="libgit2-glib/ggit-diff.h" line="49"/>
      <constructor name="new_buffers"
                   c:identifier="ggit_diff_new_buffers"
                   throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff.c"
             line="950">Same as ggit_diff_blobs() but using a buffers.
Creates a #GgitDiff which compares @buffer1 and @buffer2.

If @diff_options is %NULL then the defaults specified in
ggit_diff_options_new() are used.</doc>
        <source-position filename="libgit2-glib/ggit-diff.h" line="69"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff.c"
               line="967">a newly allocated #GgitDiff if
there was no error, %NULL otherwise.</doc>
          <type name="Diff" c:type="GgitDiff*"/>
        </return-value>
        <parameters>
          <parameter name="buffer1"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="952">a buffer to diff from.</doc>
            <array length="1" zero-terminated="0" c:type="const guint8*">
              <type name="guint8" c:type="guint8"/>
            </array>
          </parameter>
          <parameter name="buffer1_len" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="953">length of @buffer1.</doc>
            <type name="gssize" c:type="gssize"/>
          </parameter>
          <parameter name="buffer1_as_path"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="954">treat @buffer1 as if it had this filename, or %NULL,</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="buffer2"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="955">a buffer to diff to.</doc>
            <array length="4" zero-terminated="0" c:type="const guint8*">
              <type name="guint8" c:type="guint8"/>
            </array>
          </parameter>
          <parameter name="buffer2_len" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="956">length of @buffer2.</doc>
            <type name="gssize" c:type="gssize"/>
          </parameter>
          <parameter name="buffer2_as_path"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="957">treat @buffer2 as if it had this filename, or %NULL,</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="diff_options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="958">a #GgitDiffOptions, or %NULL.</doc>
            <type name="DiffOptions" c:type="GgitDiffOptions*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_index_to_workdir"
                   c:identifier="ggit_diff_new_index_to_workdir"
                   throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff.c"
             line="527">Creates a #GgitDiff which compares the working directory and the index.

If @index is %NULL then @repository index is used.
If @diff_options is %NULL then the defaults specified in
ggit_diff_options_new() are used.</doc>
        <source-position filename="libgit2-glib/ggit-diff.h" line="61"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff.c"
               line="540">a newly allocated #GgitDiff if
there was no error, %NULL otherwise.</doc>
          <type name="Diff" c:type="GgitDiff*"/>
        </return-value>
        <parameters>
          <parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="529">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </parameter>
          <parameter name="index"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="530">a #GgitIndex, or %NULL.</doc>
            <type name="Index" c:type="GgitIndex*"/>
          </parameter>
          <parameter name="diff_options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="531">a #GgitDiffOptions, or %NULL.</doc>
            <type name="DiffOptions" c:type="GgitDiffOptions*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_tree_to_index"
                   c:identifier="ggit_diff_new_tree_to_index"
                   throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff.c"
             line="480">Creates a #GgitDiff which compares @old_tree and the index.

If @index is %NULL then @repository index is used.
If @diff_options is %NULL then the defaults specified in
ggit_diff_options_new() are used.</doc>
        <source-position filename="libgit2-glib/ggit-diff.h" line="56"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff.c"
               line="494">a newly allocated #GgitDiff if
there was no error, %NULL otherwise.</doc>
          <type name="Diff" c:type="GgitDiff*"/>
        </return-value>
        <parameters>
          <parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="482">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </parameter>
          <parameter name="old_tree"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="483">a #GgitTree to diff from.</doc>
            <type name="Tree" c:type="GgitTree*"/>
          </parameter>
          <parameter name="index"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="484">a #GgitIndex, or %NULL.</doc>
            <type name="Index" c:type="GgitIndex*"/>
          </parameter>
          <parameter name="diff_options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="485">a #GgitDiffOptions, or %NULL.</doc>
            <type name="DiffOptions" c:type="GgitDiffOptions*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_tree_to_tree"
                   c:identifier="ggit_diff_new_tree_to_tree"
                   throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff.c"
             line="433">Creates a #GgitDiff which compares @old_tree and @new_tree.

If @diff_options is %NULL then the defaults specified in
ggit_diff_options_new() are used.</doc>
        <source-position filename="libgit2-glib/ggit-diff.h" line="51"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff.c"
               line="446">a newly allocated #GgitDiff if
there was no error, %NULL otherwise.</doc>
          <type name="Diff" c:type="GgitDiff*"/>
        </return-value>
        <parameters>
          <parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="435">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </parameter>
          <parameter name="old_tree"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="436">a #GgitTree to diff from.</doc>
            <type name="Tree" c:type="GgitTree*"/>
          </parameter>
          <parameter name="new_tree"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="437">a #GgitTree to diff to.</doc>
            <type name="Tree" c:type="GgitTree*"/>
          </parameter>
          <parameter name="diff_options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="438">a #GgitDiffOptions, or %NULL.</doc>
            <type name="DiffOptions" c:type="GgitDiffOptions*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_tree_to_workdir"
                   c:identifier="ggit_diff_new_tree_to_workdir"
                   throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff.c"
             line="570">Creates a #GgitDiff which compares the working directory and @old_tree.

If @diff_options is %NULL then the defaults specified in
ggit_diff_options_new() are used.</doc>
        <source-position filename="libgit2-glib/ggit-diff.h" line="65"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff.c"
               line="582">a newly allocated #GgitDiff if
there was no error, %NULL otherwise.</doc>
          <type name="Diff" c:type="GgitDiff*"/>
        </return-value>
        <parameters>
          <parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="572">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </parameter>
          <parameter name="old_tree"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="573">a #GgitTree to diff from.</doc>
            <type name="Tree" c:type="GgitTree*"/>
          </parameter>
          <parameter name="diff_options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="574">a #GgitDiffOptions, or %NULL.</doc>
            <type name="DiffOptions" c:type="GgitDiffOptions*"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="blob_to_buffer"
                c:identifier="ggit_diff_blob_to_buffer"
                throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff.c"
             line="1033">Same as ggit_diff_blobs() but using a buffer.</doc>
        <source-position filename="libgit2-glib/ggit-diff.h" line="116"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="old_blob"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="1035">a #GgitBlob to diff from.</doc>
            <type name="Blob" c:type="GgitBlob*"/>
          </parameter>
          <parameter name="old_as_path"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="1036">treat @old_blob as if it had this filename, or %NULL,</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="buffer"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="1037">a buffer to diff to.</doc>
            <array length="3" zero-terminated="0" c:type="const guint8*">
              <type name="guint8" c:type="guint8"/>
            </array>
          </parameter>
          <parameter name="buffer_len" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="1038">length of @buffer.</doc>
            <type name="gssize" c:type="gssize"/>
          </parameter>
          <parameter name="buffer_as_path"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="1039">treat @buffer as if it had this filename, or %NULL,</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="diff_options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="1040">a #GgitDiffOptions, or %NULL.</doc>
            <type name="DiffOptions" c:type="GgitDiffOptions*"/>
          </parameter>
          <parameter name="file_cb"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="call"
                     closure="10">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="1041">
 a #GgitDiffFileCallback.</doc>
            <type name="DiffFileCallback" c:type="GgitDiffFileCallback"/>
          </parameter>
          <parameter name="binary_cb"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="call"
                     closure="10">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="1043">
 a #GgitDiffBinaryCallback.</doc>
            <type name="DiffBinaryCallback" c:type="GgitDiffBinaryCallback"/>
          </parameter>
          <parameter name="hunk_cb"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="call"
                     closure="10">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="1045">
 a #GgitDiffHunkCallback.</doc>
            <type name="DiffHunkCallback" c:type="GgitDiffHunkCallback"/>
          </parameter>
          <parameter name="line_cb"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="call"
                     closure="10">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="1047">
 a #GgitDiffLineCallback.</doc>
            <type name="DiffLineCallback" c:type="GgitDiffLineCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="1049">callback user data.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </function>
      <function name="blobs" c:identifier="ggit_diff_blobs" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff.c"
             line="853">Iterates over the diff calling @file_cb, @binary_cb, @hunk_cb and @line_cb.

The #GgitDiffFile mode always be 0, path will be %NULL and when a blob is
%NULL the oid will be 0.

If @diff_options is %NULL then the defaults specified in
ggit_diff_options_new() are used.</doc>
        <source-position filename="libgit2-glib/ggit-diff.h" line="104"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="old_blob"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="855">a #GgitBlob to diff from.</doc>
            <type name="Blob" c:type="GgitBlob*"/>
          </parameter>
          <parameter name="old_as_path"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="856">treat @old_blob as if it had this filename, or %NULL,</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="new_blob"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="857">a #GgitBlob to diff to.</doc>
            <type name="Blob" c:type="GgitBlob*"/>
          </parameter>
          <parameter name="new_as_path"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="858">treat @new_blob as if it had this filename, or %NULL,</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="diff_options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="859">a #GgitDiffOptions, or %NULL.</doc>
            <type name="DiffOptions" c:type="GgitDiffOptions*"/>
          </parameter>
          <parameter name="file_cb"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="call"
                     closure="9">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="860">
 a #GgitDiffFileCallback.</doc>
            <type name="DiffFileCallback" c:type="GgitDiffFileCallback"/>
          </parameter>
          <parameter name="binary_cb"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="call"
                     closure="9">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="862">
 a #GgitDiffBinaryCallback.</doc>
            <type name="DiffBinaryCallback" c:type="GgitDiffBinaryCallback"/>
          </parameter>
          <parameter name="hunk_cb"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="call"
                     closure="9">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="864">
 a #GgitDiffHunkCallback.</doc>
            <type name="DiffHunkCallback" c:type="GgitDiffHunkCallback"/>
          </parameter>
          <parameter name="line_cb"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="call"
                     closure="9">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="866">
 a #GgitDiffLineCallback.</doc>
            <type name="DiffLineCallback" c:type="GgitDiffLineCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="868">callback user data.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </function>
      <method name="find_similar"
              c:identifier="ggit_diff_find_similar"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff.c"
             line="1132">Transform @diff marking file renames, copies, etc.. If @options is set to
%NULL, then the default options will be used.</doc>
        <source-position filename="libgit2-glib/ggit-diff.h" line="129"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff.c"
               line="1141">%TRUE if there were no errors, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="diff" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="1134">a #GgitDiff.</doc>
            <type name="Diff" c:type="GgitDiff*"/>
          </instance-parameter>
          <parameter name="options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="1135">a #GgitDiffFindOptions or %NULL.</doc>
            <type name="DiffFindOptions" c:type="GgitDiffFindOptions*"/>
          </parameter>
        </parameters>
      </method>
      <method name="foreach" c:identifier="ggit_diff_foreach" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff.c"
             line="640">Iterates over the diff calling @file_cb, @binary_cb, @hunk_cb and @line_cb.</doc>
        <source-position filename="libgit2-glib/ggit-diff.h" line="82"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="diff" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="642">a #GgitDiff.</doc>
            <type name="Diff" c:type="GgitDiff*"/>
          </instance-parameter>
          <parameter name="file_cb"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="call"
                     closure="4">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="643">
 a #GgitDiffFileCallback.</doc>
            <type name="DiffFileCallback" c:type="GgitDiffFileCallback"/>
          </parameter>
          <parameter name="binary_cb"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="call"
                     closure="4">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="645">
 a #GgitDiffBinaryCallback.</doc>
            <type name="DiffBinaryCallback" c:type="GgitDiffBinaryCallback"/>
          </parameter>
          <parameter name="hunk_cb"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="call"
                     closure="4">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="647">
 a #GgitDiffHunkCallback.</doc>
            <type name="DiffHunkCallback" c:type="GgitDiffHunkCallback"/>
          </parameter>
          <parameter name="line_cb"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="call"
                     closure="4">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="649">
 a #GgitDiffLineCallback.</doc>
            <type name="DiffLineCallback" c:type="GgitDiffLineCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="651">callback user data.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="format_email"
              c:identifier="ggit_diff_format_email"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff.c"
             line="764">Create an e-mail ready patch from a diff.</doc>
        <source-position filename="libgit2-glib/ggit-diff.h" line="95"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff.c"
               line="772">the patch or %NULL if an error occurred.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="diff" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="766">a #GgitDiff.</doc>
            <type name="Diff" c:type="GgitDiff*"/>
          </instance-parameter>
          <parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="767">a #GgitDiffFormatEmailOptions.</doc>
            <type name="DiffFormatEmailOptions"
                  c:type="GgitDiffFormatEmailOptions*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_delta" c:identifier="ggit_diff_get_delta">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff.c"
             line="830">Get the delta at the specified index.</doc>
        <source-position filename="libgit2-glib/ggit-diff.h" line="101"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff.c"
               line="837">a #GgitDiffDelta or %NULL.</doc>
          <type name="DiffDelta" c:type="GgitDiffDelta*"/>
        </return-value>
        <parameters>
          <instance-parameter name="diff" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="832">a #GgitDiff.</doc>
            <type name="Diff" c:type="GgitDiff*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="833">the index.</doc>
            <type name="gsize" c:type="gsize"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_num_deltas" c:identifier="ggit_diff_get_num_deltas">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff.c"
             line="813">Get the number of deltas in the diff.</doc>
        <source-position filename="libgit2-glib/ggit-diff.h" line="99"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff.c"
               line="819">the number of deltas.</doc>
          <type name="gsize" c:type="gsize"/>
        </return-value>
        <parameters>
          <instance-parameter name="diff" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="815">a #GgitDiff.</doc>
            <type name="Diff" c:type="GgitDiff*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="merge" c:identifier="ggit_diff_merge" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff.c"
             line="612">Merges @from into @onto unless @error is set.</doc>
        <source-position filename="libgit2-glib/ggit-diff.h" line="78"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="onto" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="614">the #GgitDiff to merge into.</doc>
            <type name="Diff" c:type="GgitDiff*"/>
          </instance-parameter>
          <parameter name="from" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="615">the #GgitDiff to merge.</doc>
            <type name="Diff" c:type="GgitDiff*"/>
          </parameter>
        </parameters>
      </method>
      <method name="print" c:identifier="ggit_diff_print" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff.c"
             line="720">Iterates over @diff generating text output like "git diff".</doc>
        <source-position filename="libgit2-glib/ggit-diff.h" line="89"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="diff" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="722">a #GgitDiff.</doc>
            <type name="Diff" c:type="GgitDiff*"/>
          </instance-parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="723">a #GgitDiffFormatType.</doc>
            <type name="DiffFormatType" c:type="GgitDiffFormatType"/>
          </parameter>
          <parameter name="print_cb"
                     transfer-ownership="none"
                     scope="call"
                     closure="2">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="724">a #GgitDiffLineCallback.</doc>
            <type name="DiffLineCallback" c:type="GgitDiffLineCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff.c"
                 line="725">callback user data.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <property name="repository"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Repository"/>
      </property>
      <field name="parent_instance">
        <type name="Native" c:type="GgitNative"/>
      </field>
    </class>
    <record name="DiffBinary"
            c:type="GgitDiffBinary"
            opaque="1"
            glib:type-name="GgitDiffBinary"
            glib:get-type="ggit_diff_binary_get_type"
            c:symbol-prefix="diff_binary">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="70">Represents a diff binary.</doc>
      <source-position filename="libgit2-glib/ggit-types.h" line="75"/>
      <method name="get_new_file" c:identifier="ggit_diff_binary_get_new_file">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-binary.c"
             line="106">Gets the #GgitDiffBinaryFile new file for @binary.</doc>
        <source-position filename="libgit2-glib/ggit-diff-binary.h" line="42"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff-binary.c"
               line="112">the contents of the new file or %NULL.</doc>
          <type name="DiffBinaryFile" c:type="GgitDiffBinaryFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="binary" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-binary.c"
                 line="108">a #GgitDiffBinary.</doc>
            <type name="DiffBinary" c:type="GgitDiffBinary*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_old_file" c:identifier="ggit_diff_binary_get_old_file">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-binary.c"
             line="90">Gets the #GgitDiffBinaryFile old file for @binary.</doc>
        <source-position filename="libgit2-glib/ggit-diff-binary.h" line="40"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff-binary.c"
               line="96">the contents of the old file or %NULL.</doc>
          <type name="DiffBinaryFile" c:type="GgitDiffBinaryFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="binary" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-binary.c"
                 line="92">a #GgitDiffBinary.</doc>
            <type name="DiffBinary" c:type="GgitDiffBinary*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="ggit_diff_binary_ref">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-binary.c"
             line="51">Atomically increments the reference count of @binary by one.
This function is MT-safe and may be called from any thread.</doc>
        <source-position filename="libgit2-glib/ggit-diff-binary.h" line="37"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff-binary.c"
               line="58">a #GgitDiffBinary or %NULL.</doc>
          <type name="DiffBinary" c:type="GgitDiffBinary*"/>
        </return-value>
        <parameters>
          <instance-parameter name="binary" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-binary.c"
                 line="53">a #GgitDiffBinary.</doc>
            <type name="DiffBinary" c:type="GgitDiffBinary*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="ggit_diff_binary_unref">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-binary.c"
             line="70">Atomically decrements the reference count of @binary by one.
If the reference count drops to 0, @binary is freed.</doc>
        <source-position filename="libgit2-glib/ggit-diff-binary.h" line="38"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="binary" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-binary.c"
                 line="72">a #GgitDiffBinary.</doc>
            <type name="DiffBinary" c:type="GgitDiffBinary*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <callback name="DiffBinaryCallback" c:type="GgitDiffBinaryCallback">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="1061">Called for each file.</doc>
      <source-position filename="libgit2-glib/ggit-types.h" line="1071"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="1069">0 to go continue or a #GgitError in case there was an error.</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="delta" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-types.h"
               line="1063">a #GgitDiffDelta.</doc>
          <type name="DiffDelta" c:type="GgitDiffDelta*"/>
        </parameter>
        <parameter name="binary" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-types.h"
               line="1064">a #GgitDiffBinary.</doc>
          <type name="DiffBinary" c:type="GgitDiffBinary*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="2">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-types.h"
               line="1065">user-supplied data.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <record name="DiffBinaryFile"
            c:type="GgitDiffBinaryFile"
            opaque="1"
            glib:type-name="GgitDiffBinaryFile"
            glib:get-type="ggit_diff_binary_file_get_type"
            c:symbol-prefix="diff_binary_file">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="77">Represents a diff binary file.</doc>
      <source-position filename="libgit2-glib/ggit-types.h" line="82"/>
      <method name="get_binary_type"
              c:identifier="ggit_diff_binary_file_get_binary_type">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-binary-file.c"
             line="94">Gets the #GgitDiffBinaryType for @file.</doc>
        <source-position filename="libgit2-glib/ggit-diff-binary-file.h"
                         line="40"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff-binary-file.c"
               line="100">the file's binary type.</doc>
          <type name="DiffBinaryType" c:type="GgitDiffBinaryType"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-binary-file.c"
                 line="96">a #GgitDiffBinaryFile.</doc>
            <type name="DiffBinaryFile" c:type="GgitDiffBinaryFile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_data" c:identifier="ggit_diff_binary_file_get_data">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-binary-file.c"
             line="110">Get the binary data. This data should not be modified.</doc>
        <source-position filename="libgit2-glib/ggit-diff-binary-file.h"
                         line="42"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff-binary-file.c"
               line="117">a pointer to the binary data, or %NULL.</doc>
          <type name="guint8" c:type="const guint8*"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-binary-file.c"
                 line="112">a #GgitDiffBinaryFile.</doc>
            <type name="DiffBinaryFile" c:type="GgitDiffBinaryFile*"/>
          </instance-parameter>
          <parameter name="size"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-binary-file.c"
                 line="113">location to return size of byte data.</doc>
            <type name="gsize" c:type="gsize*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_inflated_size"
              c:identifier="ggit_diff_binary_file_get_inflated_size">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-binary-file.c"
             line="133">Gets the length of the binary data after inflation.</doc>
        <source-position filename="libgit2-glib/ggit-diff-binary-file.h"
                         line="45"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff-binary-file.c"
               line="139">the length of the binary data after inflation.</doc>
          <type name="gsize" c:type="gsize"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-binary-file.c"
                 line="135">a #GgitDiffBinaryFile.</doc>
            <type name="DiffBinaryFile" c:type="GgitDiffBinaryFile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="ggit_diff_binary_file_ref">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-binary-file.c"
             line="56">Atomically increments the reference count of @file by one.
This function is MT-safe and may be called from any thread.</doc>
        <source-position filename="libgit2-glib/ggit-diff-binary-file.h"
                         line="37"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff-binary-file.c"
               line="63">a #GgitDiffBinaryFile.</doc>
          <type name="DiffBinaryFile" c:type="GgitDiffBinaryFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-binary-file.c"
                 line="58">a #GgitDiff.</doc>
            <type name="DiffBinaryFile" c:type="GgitDiffBinaryFile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="ggit_diff_binary_file_unref">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-binary-file.c"
             line="75">Atomically decrements the reference count of @file by one.
If the reference count drops to 0, @file is freed.</doc>
        <source-position filename="libgit2-glib/ggit-diff-binary-file.h"
                         line="38"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-binary-file.c"
                 line="77">a #GgitDiffBinaryFile.</doc>
            <type name="DiffBinaryFile" c:type="GgitDiffBinaryFile*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <enumeration name="DiffBinaryType"
                 glib:type-name="GgitDiffBinaryType"
                 glib:get-type="ggit_diff_binary_type_get_type"
                 c:type="GgitDiffBinaryType">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="315">When producing a binary diff, the binary data returned will be
either the deflated full ("literal") contents of the file, or
the deflated binary delta between the two sides (whichever is
smaller).</doc>
      <member name="none"
              value="0"
              c:identifier="GGIT_DIFF_BINARY_NONE"
              glib:nick="none"
              glib:name="GGIT_DIFF_BINARY_NONE">
      </member>
      <member name="literal"
              value="1"
              c:identifier="GGIT_DIFF_BINARY_LITERAL"
              glib:nick="literal"
              glib:name="GGIT_DIFF_BINARY_LITERAL">
      </member>
      <member name="delta"
              value="2"
              c:identifier="GGIT_DIFF_BINARY_DELTA"
              glib:nick="delta"
              glib:name="GGIT_DIFF_BINARY_DELTA">
      </member>
    </enumeration>
    <record name="DiffClass"
            c:type="GgitDiffClass"
            glib:is-gtype-struct-for="Diff">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-diff.h"
           line="39">The class structure for #GgitDiffClass.</doc>
      <source-position filename="libgit2-glib/ggit-diff.h" line="49"/>
      <field name="parent_class" readable="0" private="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff.h"
             line="41">The parent class.</doc>
        <type name="NativeClass" c:type="GgitNativeClass"/>
      </field>
    </record>
    <record name="DiffDelta"
            c:type="GgitDiffDelta"
            opaque="1"
            glib:type-name="GgitDiffDelta"
            glib:get-type="ggit_diff_delta_get_type"
            c:symbol-prefix="diff_delta">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="84">Represents the changes done to one file.</doc>
      <source-position filename="libgit2-glib/ggit-types.h" line="89"/>
      <method name="get_flags" c:identifier="ggit_diff_delta_get_flags">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-delta.c"
             line="162">Gets flags for @delta.</doc>
        <source-position filename="libgit2-glib/ggit-diff-delta.h" line="45"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff-delta.c"
               line="168">the delta flags</doc>
          <type name="DiffFlag" c:type="GgitDiffFlag"/>
        </return-value>
        <parameters>
          <instance-parameter name="delta" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-delta.c"
                 line="164">a #GgitDiffDelta.</doc>
            <type name="DiffDelta" c:type="GgitDiffDelta*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_new_file" c:identifier="ggit_diff_delta_get_new_file">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-delta.c"
             line="114">Gets the new file for @delta.</doc>
        <source-position filename="libgit2-glib/ggit-diff-delta.h" line="42"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff-delta.c"
               line="120">the delta's new file or %NULL.</doc>
          <type name="DiffFile" c:type="GgitDiffFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="delta" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-delta.c"
                 line="116">a #GgitDiffDelta.</doc>
            <type name="DiffDelta" c:type="GgitDiffDelta*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_old_file" c:identifier="ggit_diff_delta_get_old_file">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-delta.c"
             line="98">Gets the old file for @delta.</doc>
        <source-position filename="libgit2-glib/ggit-diff-delta.h" line="41"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff-delta.c"
               line="104">the delta's old file or %NULL.</doc>
          <type name="DiffFile" c:type="GgitDiffFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="delta" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-delta.c"
                 line="100">a #GgitDiffDelta.</doc>
            <type name="DiffDelta" c:type="GgitDiffDelta*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_similarity"
              c:identifier="ggit_diff_delta_get_similarity">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-delta.c"
             line="146">Gets the similarity between @delta files.</doc>
        <source-position filename="libgit2-glib/ggit-diff-delta.h" line="44"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff-delta.c"
               line="152">the delta's similarity.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="delta" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-delta.c"
                 line="148">a #GgitDiffDelta.</doc>
            <type name="DiffDelta" c:type="GgitDiffDelta*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_status" c:identifier="ggit_diff_delta_get_status">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-delta.c"
             line="130">Gets the #GgitDeltaType for @delta.</doc>
        <source-position filename="libgit2-glib/ggit-diff-delta.h" line="43"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff-delta.c"
               line="136">the delta's status.</doc>
          <type name="DeltaType" c:type="GgitDeltaType"/>
        </return-value>
        <parameters>
          <instance-parameter name="delta" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-delta.c"
                 line="132">a #GgitDiffDelta.</doc>
            <type name="DiffDelta" c:type="GgitDiffDelta*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="ggit_diff_delta_ref">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-delta.c"
             line="59">Atomically increments the reference count of @delta by one.
This function is MT-safe and may be called from any thread.</doc>
        <source-position filename="libgit2-glib/ggit-diff-delta.h" line="38"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff-delta.c"
               line="66">a #GgitDiffDelta or %NULL.</doc>
          <type name="DiffDelta" c:type="GgitDiffDelta*"/>
        </return-value>
        <parameters>
          <instance-parameter name="delta" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-delta.c"
                 line="61">a #GgitDiffDelta.</doc>
            <type name="DiffDelta" c:type="GgitDiffDelta*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="ggit_diff_delta_unref">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-delta.c"
             line="78">Atomically decrements the reference count of @delta by one.
If the reference count drops to 0, @delta is freed.</doc>
        <source-position filename="libgit2-glib/ggit-diff-delta.h" line="39"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="delta" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-delta.c"
                 line="80">a #GgitDiffDelta.</doc>
            <type name="DiffDelta" c:type="GgitDiffDelta*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <record name="DiffFile"
            c:type="GgitDiffFile"
            opaque="1"
            glib:type-name="GgitDiffFile"
            glib:get-type="ggit_diff_file_get_type"
            c:symbol-prefix="diff_file">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="91">Represents a file in a #GgitDiff.</doc>
      <source-position filename="libgit2-glib/ggit-types.h" line="96"/>
      <method name="get_flags" c:identifier="ggit_diff_file_get_flags">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-file.c"
             line="161">Gets the #GgitDifflags for @file.</doc>
        <source-position filename="libgit2-glib/ggit-diff-file.h" line="45"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff-file.c"
               line="167">the file's flags.</doc>
          <type name="DiffFlag" c:type="GgitDiffFlag"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-file.c"
                 line="163">a #GgitDiffFile.</doc>
            <type name="DiffFile" c:type="GgitDiffFile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mode" c:identifier="ggit_diff_file_get_mode">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-file.c"
             line="129">Gets the mode for @file.</doc>
        <source-position filename="libgit2-glib/ggit-diff-file.h" line="43"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff-file.c"
               line="135">the file's mode.</doc>
          <type name="guint16" c:type="guint16"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-file.c"
                 line="131">a #GgitDiffFile.</doc>
            <type name="DiffFile" c:type="GgitDiffFile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_oid" c:identifier="ggit_diff_file_get_oid">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-file.c"
             line="97">Gets the #GgitOId for @file.</doc>
        <source-position filename="libgit2-glib/ggit-diff-file.h" line="41"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff-file.c"
               line="103">the file's #GgitOId or %NULL.</doc>
          <type name="OId" c:type="GgitOId*"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-file.c"
                 line="99">a #GgitDiffFile.</doc>
            <type name="DiffFile" c:type="GgitDiffFile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_path" c:identifier="ggit_diff_file_get_path">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-file.c"
             line="113">Gets the path of @file or %NULL if it is unknown.</doc>
        <source-position filename="libgit2-glib/ggit-diff-file.h" line="42"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff-file.c"
               line="119">the file's path, or %NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-file.c"
                 line="115">a #GgitDiffFile.</doc>
            <type name="DiffFile" c:type="GgitDiffFile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_size" c:identifier="ggit_diff_file_get_size">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-file.c"
             line="145">Gets the size for @file.</doc>
        <source-position filename="libgit2-glib/ggit-diff-file.h" line="44"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff-file.c"
               line="151">the file's size.</doc>
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-file.c"
                 line="147">a #GgitDiffFile.</doc>
            <type name="DiffFile" c:type="GgitDiffFile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="ggit_diff_file_ref">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-file.c"
             line="58">Atomically increments the reference count of @file by one.
This function is MT-safe and may be called from any thread.</doc>
        <source-position filename="libgit2-glib/ggit-diff-file.h" line="38"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff-file.c"
               line="65">a #GgitDiffFile or %NULL.</doc>
          <type name="DiffFile" c:type="GgitDiffFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-file.c"
                 line="60">a #GgitDiff.</doc>
            <type name="DiffFile" c:type="GgitDiffFile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="ggit_diff_file_unref">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-file.c"
             line="77">Atomically decrements the reference count of @file by one.
If the reference count drops to 0, @file is freed.</doc>
        <source-position filename="libgit2-glib/ggit-diff-file.h" line="39"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-file.c"
                 line="79">a #GgitDiffFile.</doc>
            <type name="DiffFile" c:type="GgitDiffFile*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <callback name="DiffFileCallback" c:type="GgitDiffFileCallback">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="1075">Called for each file.</doc>
      <source-position filename="libgit2-glib/ggit-types.h" line="1085"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="1083">0 to go continue or a #GgitError in case there was an error.</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="delta" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-types.h"
               line="1077">a #GgitDiffDelta.</doc>
          <type name="DiffDelta" c:type="GgitDiffDelta*"/>
        </parameter>
        <parameter name="progress" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-types.h"
               line="1078">the progress.</doc>
          <type name="gfloat" c:type="gfloat"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="2">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-types.h"
               line="1079">user-supplied data.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <bitfield name="DiffFindFlags"
              glib:type-name="GgitDiffFindFlags"
              glib:get-type="ggit_diff_find_flags_get_type"
              c:type="GgitDiffFindFlags">
      <member name="find_by_config"
              value="0"
              c:identifier="GGIT_DIFF_FIND_BY_CONFIG"
              glib:nick="find-by-config"
              glib:name="GGIT_DIFF_FIND_BY_CONFIG">
      </member>
      <member name="find_renames"
              value="1"
              c:identifier="GGIT_DIFF_FIND_RENAMES"
              glib:nick="find-renames"
              glib:name="GGIT_DIFF_FIND_RENAMES">
      </member>
      <member name="find_renames_from_rewrites"
              value="2"
              c:identifier="GGIT_DIFF_FIND_RENAMES_FROM_REWRITES"
              glib:nick="find-renames-from-rewrites"
              glib:name="GGIT_DIFF_FIND_RENAMES_FROM_REWRITES">
      </member>
      <member name="find_copies"
              value="4"
              c:identifier="GGIT_DIFF_FIND_COPIES"
              glib:nick="find-copies"
              glib:name="GGIT_DIFF_FIND_COPIES">
      </member>
      <member name="find_copies_from_unmodified"
              value="8"
              c:identifier="GGIT_DIFF_FIND_COPIES_FROM_UNMODIFIED"
              glib:nick="find-copies-from-unmodified"
              glib:name="GGIT_DIFF_FIND_COPIES_FROM_UNMODIFIED">
      </member>
      <member name="find_rewrites"
              value="16"
              c:identifier="GGIT_DIFF_FIND_REWRITES"
              glib:nick="find-rewrites"
              glib:name="GGIT_DIFF_FIND_REWRITES">
      </member>
      <member name="break_rewrites"
              value="32"
              c:identifier="GGIT_DIFF_BREAK_REWRITES"
              glib:nick="break-rewrites"
              glib:name="GGIT_DIFF_BREAK_REWRITES">
      </member>
      <member name="find_and_break_rewrites"
              value="48"
              c:identifier="GGIT_DIFF_FIND_AND_BREAK_REWRITES"
              glib:nick="find-and-break-rewrites"
              glib:name="GGIT_DIFF_FIND_AND_BREAK_REWRITES">
      </member>
      <member name="find_for_untracked"
              value="64"
              c:identifier="GGIT_DIFF_FIND_FOR_UNTRACKED"
              glib:nick="find-for-untracked"
              glib:name="GGIT_DIFF_FIND_FOR_UNTRACKED">
      </member>
      <member name="find_all"
              value="255"
              c:identifier="GGIT_DIFF_FIND_ALL"
              glib:nick="find-all"
              glib:name="GGIT_DIFF_FIND_ALL">
      </member>
      <member name="find_ignore_leading_whitespace"
              value="0"
              c:identifier="GGIT_DIFF_FIND_IGNORE_LEADING_WHITESPACE"
              glib:nick="find-ignore-leading-whitespace"
              glib:name="GGIT_DIFF_FIND_IGNORE_LEADING_WHITESPACE">
      </member>
      <member name="find_ignore_whitespace"
              value="4096"
              c:identifier="GGIT_DIFF_FIND_IGNORE_WHITESPACE"
              glib:nick="find-ignore-whitespace"
              glib:name="GGIT_DIFF_FIND_IGNORE_WHITESPACE">
      </member>
      <member name="find_dont_ignore_whitespace"
              value="8192"
              c:identifier="GGIT_DIFF_FIND_DONT_IGNORE_WHITESPACE"
              glib:nick="find-dont-ignore-whitespace"
              glib:name="GGIT_DIFF_FIND_DONT_IGNORE_WHITESPACE">
      </member>
      <member name="find_exact_match_only"
              value="16384"
              c:identifier="GGIT_DIFF_FIND_EXACT_MATCH_ONLY"
              glib:nick="find-exact-match-only"
              glib:name="GGIT_DIFF_FIND_EXACT_MATCH_ONLY">
      </member>
      <member name="break_rewrites_for_renames_only"
              value="32768"
              c:identifier="GGIT_DIFF_BREAK_REWRITES_FOR_RENAMES_ONLY"
              glib:nick="break-rewrites-for-renames-only"
              glib:name="GGIT_DIFF_BREAK_REWRITES_FOR_RENAMES_ONLY">
      </member>
      <member name="find_remove_unmodified"
              value="65536"
              c:identifier="GGIT_DIFF_FIND_REMOVE_UNMODIFIED"
              glib:nick="find-remove-unmodified"
              glib:name="GGIT_DIFF_FIND_REMOVE_UNMODIFIED">
      </member>
    </bitfield>
    <class name="DiffFindOptions"
           c:symbol-prefix="diff_find_options"
           c:type="GgitDiffFindOptions"
           parent="GObject.Object"
           glib:type-name="GgitDiffFindOptions"
           glib:get-type="ggit_diff_find_options_get_type"
           glib:type-struct="DiffFindOptionsClass">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-diff-find-options.c"
           line="25">Represents options for finding diff similarity.</doc>
      <source-position filename="libgit2-glib/ggit-diff-find-options.h"
                       line="37"/>
      <constructor name="new" c:identifier="ggit_diff_find_options_new">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-find-options.c"
             line="251">Creates a new #GgitDiffFindOptions.</doc>
        <source-position filename="libgit2-glib/ggit-diff-find-options.h"
                         line="43"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff-find-options.c"
               line="256">a newly allocated #GgitDiffFindOptions or %NULL.</doc>
          <type name="DiffFindOptions" c:type="GgitDiffFindOptions*"/>
        </return-value>
      </constructor>
      <method name="get_copy_threshold"
              c:identifier="ggit_diff_find_options_get_copy_threshold"
              glib:get-property="copy-threshold">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-find-options.c"
             line="393">Get the find options copy threshold.</doc>
        <source-position filename="libgit2-glib/ggit-diff-find-options.h"
                         line="63"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff-find-options.c"
               line="399">the copy threshold.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-find-options.c"
                 line="395">a #GgitDiffFindOptions.</doc>
            <type name="DiffFindOptions" c:type="GgitDiffFindOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_flags"
              c:identifier="ggit_diff_find_options_get_flags"
              glib:get-property="flags">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-find-options.c"
             line="264">Get the find options flags.</doc>
        <source-position filename="libgit2-glib/ggit-diff-find-options.h"
                         line="45"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff-find-options.c"
               line="270">the find options flags.</doc>
          <type name="DiffFindFlags" c:type="GgitDiffFindFlags"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-find-options.c"
                 line="266">a #GgitDiffFindOptions.</doc>
            <type name="DiffFindOptions" c:type="GgitDiffFindOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_metric"
              c:identifier="ggit_diff_find_options_get_metric"
              glib:get-property="metric">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-find-options.c"
             line="479">Get the find options metric.</doc>
        <source-position filename="libgit2-glib/ggit-diff-find-options.h"
                         line="78"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff-find-options.c"
               line="485">a #GgitDiffSimilarityMetric or %NULL.</doc>
          <type name="DiffSimilarityMetric"
                c:type="GgitDiffSimilarityMetric*"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-find-options.c"
                 line="481">a #GgitDiffFindOptions.</doc>
            <type name="DiffFindOptions" c:type="GgitDiffFindOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_rename_from_rewrite_threshold"
              c:identifier="ggit_diff_find_options_get_rename_from_rewrite_threshold"
              glib:get-property="rename-from-rewrite-threshold">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-find-options.c"
             line="350">Get the find options rename from rewrite threshold.</doc>
        <source-position filename="libgit2-glib/ggit-diff-find-options.h"
                         line="56"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff-find-options.c"
               line="356">the rename from rewrite threshold.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-find-options.c"
                 line="352">a #GgitDiffFindOptions.</doc>
            <type name="DiffFindOptions" c:type="GgitDiffFindOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_rename_limit"
              c:identifier="ggit_diff_find_options_get_rename_limit"
              glib:get-property="rename-limit">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-find-options.c"
             line="436">Get the find options rename limit.</doc>
        <source-position filename="libgit2-glib/ggit-diff-find-options.h"
                         line="70"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff-find-options.c"
               line="442">the rename limit.</doc>
          <type name="gsize" c:type="gsize"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-find-options.c"
                 line="438">a #GgitDiffFindOptions.</doc>
            <type name="DiffFindOptions" c:type="GgitDiffFindOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_rename_threshold"
              c:identifier="ggit_diff_find_options_get_rename_threshold"
              glib:get-property="rename-threshold">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-find-options.c"
             line="307">Get the find options rename threshold.</doc>
        <source-position filename="libgit2-glib/ggit-diff-find-options.h"
                         line="49"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff-find-options.c"
               line="313">the rename threshold.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-find-options.c"
                 line="309">a #GgitDiffFindOptions.</doc>
            <type name="DiffFindOptions" c:type="GgitDiffFindOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_copy_threshold"
              c:identifier="ggit_diff_find_options_set_copy_threshold"
              glib:set-property="copy-threshold">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-find-options.c"
             line="414">Set the find options copy threshold.</doc>
        <source-position filename="libgit2-glib/ggit-diff-find-options.h"
                         line="66"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-find-options.c"
                 line="416">a #GgitDiffFindOptions.</doc>
            <type name="DiffFindOptions" c:type="GgitDiffFindOptions*"/>
          </instance-parameter>
          <parameter name="threshold" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-find-options.c"
                 line="417">the threshold.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_flags"
              c:identifier="ggit_diff_find_options_set_flags"
              glib:set-property="flags">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-find-options.c"
             line="285">Set the find options flags.</doc>
        <source-position filename="libgit2-glib/ggit-diff-find-options.h"
                         line="46"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-find-options.c"
                 line="287">a #GgitDiffFindOptions.</doc>
            <type name="DiffFindOptions" c:type="GgitDiffFindOptions*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-find-options.c"
                 line="288">a #GgitDiffFindFlags.</doc>
            <type name="DiffFindFlags" c:type="GgitDiffFindFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_metric"
              c:identifier="ggit_diff_find_options_set_metric"
              glib:set-property="metric">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-find-options.c"
             line="500">Set the find options metric.</doc>
        <source-position filename="libgit2-glib/ggit-diff-find-options.h"
                         line="81"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-find-options.c"
                 line="502">a #GgitDiffFindOptions.</doc>
            <type name="DiffFindOptions" c:type="GgitDiffFindOptions*"/>
          </instance-parameter>
          <parameter name="metric" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-find-options.c"
                 line="503">a #GgitDiffSimilarityMetric.</doc>
            <type name="DiffSimilarityMetric"
                  c:type="GgitDiffSimilarityMetric*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_rename_from_rewrite_threshold"
              c:identifier="ggit_diff_find_options_set_rename_from_rewrite_threshold"
              glib:set-property="rename-from-rewrite-threshold">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-find-options.c"
             line="371">Set the find options rename from rewrite threshold.</doc>
        <source-position filename="libgit2-glib/ggit-diff-find-options.h"
                         line="59"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-find-options.c"
                 line="373">a #GgitDiffFindOptions.</doc>
            <type name="DiffFindOptions" c:type="GgitDiffFindOptions*"/>
          </instance-parameter>
          <parameter name="threshold" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-find-options.c"
                 line="374">the threshold.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_rename_limit"
              c:identifier="ggit_diff_find_options_set_rename_limit"
              glib:set-property="rename-limit">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-find-options.c"
             line="457">Set the find options rename limit.</doc>
        <source-position filename="libgit2-glib/ggit-diff-find-options.h"
                         line="73"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-find-options.c"
                 line="459">a #GgitDiffFindOptions.</doc>
            <type name="DiffFindOptions" c:type="GgitDiffFindOptions*"/>
          </instance-parameter>
          <parameter name="limit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-find-options.c"
                 line="460">the limit.</doc>
            <type name="gsize" c:type="gsize"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_rename_threshold"
              c:identifier="ggit_diff_find_options_set_rename_threshold"
              glib:set-property="rename-threshold">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-find-options.c"
             line="328">Set the find options rename threshold.</doc>
        <source-position filename="libgit2-glib/ggit-diff-find-options.h"
                         line="52"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-find-options.c"
                 line="330">a #GgitDiffFindOptions.</doc>
            <type name="DiffFindOptions" c:type="GgitDiffFindOptions*"/>
          </instance-parameter>
          <parameter name="threshold" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-find-options.c"
                 line="331">the threshold.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <property name="copy-threshold"
                writable="1"
                transfer-ownership="none"
                setter="set_copy_threshold"
                getter="get_copy_threshold"
                default-value="0">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="flags"
                writable="1"
                transfer-ownership="none"
                setter="set_flags"
                getter="get_flags"
                default-value="GGIT_DIFF_FIND_BY_CONFIG">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-find-options.c"
             line="153">The diff option flags.</doc>
        <type name="DiffFindFlags"/>
      </property>
      <property name="metric"
                writable="1"
                transfer-ownership="none"
                setter="set_metric"
                getter="get_metric">
        <type name="DiffSimilarityMetric"/>
      </property>
      <property name="rename-from-rewrite-threshold"
                writable="1"
                transfer-ownership="none"
                setter="set_rename_from_rewrite_threshold"
                getter="get_rename_from_rewrite_threshold"
                default-value="0">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="rename-limit"
                writable="1"
                transfer-ownership="none"
                setter="set_rename_limit"
                getter="get_rename_limit"
                default-value="0">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="rename-threshold"
                writable="1"
                transfer-ownership="none"
                setter="set_rename_threshold"
                getter="get_rename_threshold"
                default-value="0">
        <type name="guint" c:type="guint"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="DiffFindOptionsClass"
            c:type="GgitDiffFindOptionsClass"
            glib:is-gtype-struct-for="DiffFindOptions">
      <source-position filename="libgit2-glib/ggit-diff-find-options.h"
                       line="37"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <bitfield name="DiffFlag"
              glib:type-name="GgitDiffFlag"
              glib:get-type="ggit_diff_flag_get_type"
              c:type="GgitDiffFlag">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="467">Describes the diff file and/or delta flags</doc>
      <member name="binary"
              value="1"
              c:identifier="GGIT_DIFF_FLAG_BINARY"
              glib:nick="binary"
              glib:name="GGIT_DIFF_FLAG_BINARY">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="469">if the file is binary.</doc>
      </member>
      <member name="not_binary"
              value="2"
              c:identifier="GGIT_DIFF_FLAG_NOT_BINARY"
              glib:nick="not-binary"
              glib:name="GGIT_DIFF_FLAG_NOT_BINARY">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="470">if the file is not binary.</doc>
      </member>
      <member name="valid_id"
              value="4"
              c:identifier="GGIT_DIFF_FLAG_VALID_ID"
              glib:nick="valid-id"
              glib:name="GGIT_DIFF_FLAG_VALID_ID">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="471">if the ID is valid.</doc>
      </member>
    </bitfield>
    <bitfield name="DiffFormatEmailFlags"
              glib:type-name="GgitDiffFormatEmailFlags"
              glib:get-type="ggit_diff_format_email_flags_get_type"
              c:type="GgitDiffFormatEmailFlags">
      <member name="none"
              value="0"
              c:identifier="GGIT_DIFF_FORMAT_EMAIL_NONE"
              glib:nick="none"
              glib:name="GGIT_DIFF_FORMAT_EMAIL_NONE">
      </member>
      <member name="exclude_subject_patch_marker"
              value="1"
              c:identifier="GGIT_DIFF_FORMAT_EMAIL_EXCLUDE_SUBJECT_PATCH_MARKER"
              glib:nick="exclude-subject-patch-marker"
              glib:name="GGIT_DIFF_FORMAT_EMAIL_EXCLUDE_SUBJECT_PATCH_MARKER">
      </member>
    </bitfield>
    <class name="DiffFormatEmailOptions"
           c:symbol-prefix="diff_format_email_options"
           c:type="GgitDiffFormatEmailOptions"
           parent="GObject.Object"
           glib:type-name="GgitDiffFormatEmailOptions"
           glib:get-type="ggit_diff_format_email_options_get_type"
           glib:type-struct="DiffFormatEmailOptionsClass">
      <source-position filename="libgit2-glib/ggit-diff-format-email-options.h"
                       line="38"/>
      <constructor name="new"
                   c:identifier="ggit_diff_format_email_options_new">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-format-email-options.c"
             line="246">Create a new checkout options object.</doc>
        <source-position filename="libgit2-glib/ggit-diff-format-email-options.h"
                         line="45"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff-format-email-options.c"
               line="251">a #GgitDiffFormatEmailOptions or %NULL.</doc>
          <type name="DiffFormatEmailOptions"
                c:type="GgitDiffFormatEmailOptions*"/>
        </return-value>
      </constructor>
      <method name="get_author"
              c:identifier="ggit_diff_format_email_options_get_author"
              glib:get-property="author">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-format-email-options.c"
             line="553">Get the author.</doc>
        <source-position filename="libgit2-glib/ggit-diff-format-email-options.h"
                         line="84"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff-format-email-options.c"
               line="559">a #GgitSignature or %NULL.</doc>
          <type name="Signature" c:type="GgitSignature*"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-format-email-options.c"
                 line="555">a #GgitDiffFormatEmailOptions.</doc>
            <type name="DiffFormatEmailOptions"
                  c:type="GgitDiffFormatEmailOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_body"
              c:identifier="ggit_diff_format_email_options_get_body"
              glib:get-property="body">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-format-email-options.c"
             line="507">Get the body.</doc>
        <source-position filename="libgit2-glib/ggit-diff-format-email-options.h"
                         line="78"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff-format-email-options.c"
               line="513">the body.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-format-email-options.c"
                 line="509">a #GgitDiffFormatEmailOptions.</doc>
            <type name="DiffFormatEmailOptions"
                  c:type="GgitDiffFormatEmailOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_flags"
              c:identifier="ggit_diff_format_email_options_get_flags"
              glib:get-property="flags">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-format-email-options.c"
             line="277">Get the flags.</doc>
        <source-position filename="libgit2-glib/ggit-diff-format-email-options.h"
                         line="48"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff-format-email-options.c"
               line="283">a #GgitDiffFormatEmailFlags.</doc>
          <type name="DiffFormatEmailFlags" c:type="GgitDiffFormatEmailFlags"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-format-email-options.c"
                 line="279">a #GgitDiffFormatEmailOptions.</doc>
            <type name="DiffFormatEmailOptions"
                  c:type="GgitDiffFormatEmailOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_id"
              c:identifier="ggit_diff_format_email_options_get_id"
              glib:get-property="id">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-format-email-options.c"
             line="406">Get the object id.</doc>
        <source-position filename="libgit2-glib/ggit-diff-format-email-options.h"
                         line="66"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff-format-email-options.c"
               line="412">a #GgitOId or %NULL.</doc>
          <type name="OId" c:type="GgitOId*"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-format-email-options.c"
                 line="408">a #GgitDiffFormatEmailOptions.</doc>
            <type name="DiffFormatEmailOptions"
                  c:type="GgitDiffFormatEmailOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_patch_number"
              c:identifier="ggit_diff_format_email_options_get_patch_number"
              glib:get-property="patch-number">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-format-email-options.c"
             line="320">Get the patch number.</doc>
        <source-position filename="libgit2-glib/ggit-diff-format-email-options.h"
                         line="54"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff-format-email-options.c"
               line="326">the patch number.</doc>
          <type name="gsize" c:type="gsize"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-format-email-options.c"
                 line="322">a #GgitDiffFormatEmailOptions.</doc>
            <type name="DiffFormatEmailOptions"
                  c:type="GgitDiffFormatEmailOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_summary"
              c:identifier="ggit_diff_format_email_options_get_summary"
              glib:get-property="summary">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-format-email-options.c"
             line="461">Get the summary.</doc>
        <source-position filename="libgit2-glib/ggit-diff-format-email-options.h"
                         line="72"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff-format-email-options.c"
               line="467">the summary.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-format-email-options.c"
                 line="463">a #GgitDiffFormatEmailOptions.</doc>
            <type name="DiffFormatEmailOptions"
                  c:type="GgitDiffFormatEmailOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_total_patches"
              c:identifier="ggit_diff_format_email_options_get_total_patches"
              glib:get-property="total-patches">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-format-email-options.c"
             line="363">Get the total number of patches.</doc>
        <source-position filename="libgit2-glib/ggit-diff-format-email-options.h"
                         line="60"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff-format-email-options.c"
               line="369">the total number of patches.</doc>
          <type name="gsize" c:type="gsize"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-format-email-options.c"
                 line="365">a #GgitDiffFormatEmailOptions.</doc>
            <type name="DiffFormatEmailOptions"
                  c:type="GgitDiffFormatEmailOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_author"
              c:identifier="ggit_diff_format_email_options_set_author"
              glib:set-property="author">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-format-email-options.c"
             line="574">Set the author.</doc>
        <source-position filename="libgit2-glib/ggit-diff-format-email-options.h"
                         line="86"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-format-email-options.c"
                 line="576">a #GgitDiffFormatEmailOptions.</doc>
            <type name="DiffFormatEmailOptions"
                  c:type="GgitDiffFormatEmailOptions*"/>
          </instance-parameter>
          <parameter name="author"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-format-email-options.c"
                 line="577">a #GgitSignature.</doc>
            <type name="Signature" c:type="GgitSignature*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_body"
              c:identifier="ggit_diff_format_email_options_set_body"
              glib:set-property="body">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-format-email-options.c"
             line="528">Set the body.</doc>
        <source-position filename="libgit2-glib/ggit-diff-format-email-options.h"
                         line="80"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-format-email-options.c"
                 line="530">a #GgitDiffFormatEmailOptions.</doc>
            <type name="DiffFormatEmailOptions"
                  c:type="GgitDiffFormatEmailOptions*"/>
          </instance-parameter>
          <parameter name="body"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-format-email-options.c"
                 line="531">the body.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_flags"
              c:identifier="ggit_diff_format_email_options_set_flags"
              glib:set-property="flags">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-format-email-options.c"
             line="298">Set the flags.</doc>
        <source-position filename="libgit2-glib/ggit-diff-format-email-options.h"
                         line="50"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-format-email-options.c"
                 line="300">a #GgitDiffFormatEmailOptions.</doc>
            <type name="DiffFormatEmailOptions"
                  c:type="GgitDiffFormatEmailOptions*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-format-email-options.c"
                 line="301">a #GgitDiffFormatEmailFlags.</doc>
            <type name="DiffFormatEmailFlags"
                  c:type="GgitDiffFormatEmailFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_id"
              c:identifier="ggit_diff_format_email_options_set_id"
              glib:set-property="id">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-format-email-options.c"
             line="427">Set the object id.</doc>
        <source-position filename="libgit2-glib/ggit-diff-format-email-options.h"
                         line="68"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-format-email-options.c"
                 line="429">a #GgitDiffFormatEmailOptions.</doc>
            <type name="DiffFormatEmailOptions"
                  c:type="GgitDiffFormatEmailOptions*"/>
          </instance-parameter>
          <parameter name="id"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-format-email-options.c"
                 line="430">a #GgitOId.</doc>
            <type name="OId" c:type="GgitOId*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_patch_number"
              c:identifier="ggit_diff_format_email_options_set_patch_number"
              glib:set-property="patch-number">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-format-email-options.c"
             line="341">Set the patch number.</doc>
        <source-position filename="libgit2-glib/ggit-diff-format-email-options.h"
                         line="56"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-format-email-options.c"
                 line="343">a #GgitDiffFormatEmailOptions.</doc>
            <type name="DiffFormatEmailOptions"
                  c:type="GgitDiffFormatEmailOptions*"/>
          </instance-parameter>
          <parameter name="number" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-format-email-options.c"
                 line="344">the patch number.</doc>
            <type name="gsize" c:type="gsize"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_summary"
              c:identifier="ggit_diff_format_email_options_set_summary"
              glib:set-property="summary">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-format-email-options.c"
             line="482">Set the summary.</doc>
        <source-position filename="libgit2-glib/ggit-diff-format-email-options.h"
                         line="74"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-format-email-options.c"
                 line="484">a #GgitDiffFormatEmailOptions.</doc>
            <type name="DiffFormatEmailOptions"
                  c:type="GgitDiffFormatEmailOptions*"/>
          </instance-parameter>
          <parameter name="summary"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-format-email-options.c"
                 line="485">the summary.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_total_patches"
              c:identifier="ggit_diff_format_email_options_set_total_patches"
              glib:set-property="total-patches">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-format-email-options.c"
             line="384">Set the total number of patches.</doc>
        <source-position filename="libgit2-glib/ggit-diff-format-email-options.h"
                         line="62"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-format-email-options.c"
                 line="386">a #GgitDiffFormatEmailOptions.</doc>
            <type name="DiffFormatEmailOptions"
                  c:type="GgitDiffFormatEmailOptions*"/>
          </instance-parameter>
          <parameter name="patches" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-format-email-options.c"
                 line="387">the total number of patches.</doc>
            <type name="gsize" c:type="gsize"/>
          </parameter>
        </parameters>
      </method>
      <property name="author"
                writable="1"
                transfer-ownership="none"
                setter="set_author"
                getter="get_author">
        <type name="Signature"/>
      </property>
      <property name="body"
                writable="1"
                transfer-ownership="none"
                setter="set_body"
                getter="get_body"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="flags"
                writable="1"
                transfer-ownership="none"
                setter="set_flags"
                getter="get_flags"
                default-value="GGIT_DIFF_FORMAT_EMAIL_NONE">
        <type name="DiffFormatEmailFlags"/>
      </property>
      <property name="id"
                writable="1"
                transfer-ownership="none"
                setter="set_id"
                getter="get_id">
        <type name="OId"/>
      </property>
      <property name="patch-number"
                writable="1"
                transfer-ownership="none"
                setter="set_patch_number"
                getter="get_patch_number"
                default-value="1">
        <type name="guint64" c:type="guint64"/>
      </property>
      <property name="summary"
                writable="1"
                transfer-ownership="none"
                setter="set_summary"
                getter="get_summary"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="total-patches"
                writable="1"
                transfer-ownership="none"
                setter="set_total_patches"
                getter="get_total_patches"
                default-value="1">
        <type name="guint64" c:type="guint64"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="DiffFormatEmailOptionsClass"
            c:type="GgitDiffFormatEmailOptionsClass"
            glib:is-gtype-struct-for="DiffFormatEmailOptions">
      <source-position filename="libgit2-glib/ggit-diff-format-email-options.h"
                       line="38"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <enumeration name="DiffFormatType"
                 glib:type-name="GgitDiffFormatType"
                 glib:get-type="ggit_diff_format_type_get_type"
                 c:type="GgitDiffFormatType">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="385">Possible output formats for diff data.</doc>
      <member name="patch"
              value="1"
              c:identifier="GGIT_DIFF_FORMAT_PATCH"
              glib:nick="patch"
              glib:name="GGIT_DIFF_FORMAT_PATCH">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="387">full git diff.</doc>
      </member>
      <member name="patch_header"
              value="2"
              c:identifier="GGIT_DIFF_FORMAT_PATCH_HEADER"
              glib:nick="patch-header"
              glib:name="GGIT_DIFF_FORMAT_PATCH_HEADER">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="388">just the file headers of patch.</doc>
      </member>
      <member name="raw"
              value="3"
              c:identifier="GGIT_DIFF_FORMAT_RAW"
              glib:nick="raw"
              glib:name="GGIT_DIFF_FORMAT_RAW">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="389">like git diff --raw.</doc>
      </member>
      <member name="name_only"
              value="4"
              c:identifier="GGIT_DIFF_FORMAT_NAME_ONLY"
              glib:nick="name-only"
              glib:name="GGIT_DIFF_FORMAT_NAME_ONLY">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="390">like git diff --name-only.</doc>
      </member>
      <member name="name_status"
              value="5"
              c:identifier="GGIT_DIFF_FORMAT_NAME_STATUS"
              glib:nick="name-status"
              glib:name="GGIT_DIFF_FORMAT_NAME_STATUS">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="391">like git diff --name-status.</doc>
      </member>
    </enumeration>
    <record name="DiffHunk"
            c:type="GgitDiffHunk"
            opaque="1"
            glib:type-name="GgitDiffHunk"
            glib:get-type="ggit_diff_hunk_get_type"
            c:symbol-prefix="diff_hunk">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="98">Represents the hunk of a diff.</doc>
      <source-position filename="libgit2-glib/ggit-types.h" line="103"/>
      <method name="get_header" c:identifier="ggit_diff_hunk_get_header">
        <source-position filename="libgit2-glib/ggit-diff-hunk.h" line="44"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="hunk" transfer-ownership="none">
            <type name="DiffHunk" c:type="GgitDiffHunk*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_new_lines" c:identifier="ggit_diff_hunk_get_new_lines">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-hunk.c"
             line="146">Gets the number of lines in the new file.</doc>
        <source-position filename="libgit2-glib/ggit-diff-hunk.h" line="43"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff-hunk.c"
               line="152">the number of lines in the new file.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="hunk" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-hunk.c"
                 line="148">a #GgitDiffHunk.</doc>
            <type name="DiffHunk" c:type="GgitDiffHunk*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_new_start" c:identifier="ggit_diff_hunk_get_new_start">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-hunk.c"
             line="130">Gets the starting line number in the new file.</doc>
        <source-position filename="libgit2-glib/ggit-diff-hunk.h" line="42"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff-hunk.c"
               line="136">the starting line number in the new file.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="hunk" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-hunk.c"
                 line="132">a #GgitDiffHunk.</doc>
            <type name="DiffHunk" c:type="GgitDiffHunk*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_old_lines" c:identifier="ggit_diff_hunk_get_old_lines">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-hunk.c"
             line="114">Gets the number of lines in the old file.</doc>
        <source-position filename="libgit2-glib/ggit-diff-hunk.h" line="41"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff-hunk.c"
               line="120">the number of lines in the old file.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="hunk" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-hunk.c"
                 line="116">a #GgitDiffHunk.</doc>
            <type name="DiffHunk" c:type="GgitDiffHunk*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_old_start" c:identifier="ggit_diff_hunk_get_old_start">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-hunk.c"
             line="98">Gets the starting line number in the old file.</doc>
        <source-position filename="libgit2-glib/ggit-diff-hunk.h" line="40"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff-hunk.c"
               line="104">the starting line number in the old file.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="hunk" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-hunk.c"
                 line="100">a #GgitDiffHunk.</doc>
            <type name="DiffHunk" c:type="GgitDiffHunk*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="ggit_diff_hunk_ref">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-hunk.c"
             line="60">Atomically increments the reference count of @hunk by one.
This function is MT-safe and may be called from any thread.</doc>
        <source-position filename="libgit2-glib/ggit-diff-hunk.h" line="37"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff-hunk.c"
               line="67">a #GgitDiffHunk or %NULL.</doc>
          <type name="DiffHunk" c:type="GgitDiffHunk*"/>
        </return-value>
        <parameters>
          <instance-parameter name="hunk" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-hunk.c"
                 line="62">a #GgitDiffHunk.</doc>
            <type name="DiffHunk" c:type="GgitDiffHunk*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="ggit_diff_hunk_unref">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-hunk.c"
             line="79">Atomically decrements the reference count of @hunk by one.
If the reference count drops to 0, @hunk is freed.</doc>
        <source-position filename="libgit2-glib/ggit-diff-hunk.h" line="38"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="hunk" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-hunk.c"
                 line="81">a #GgitDiffHunk.</doc>
            <type name="DiffHunk" c:type="GgitDiffHunk*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <callback name="DiffHunkCallback" c:type="GgitDiffHunkCallback">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="1089">Called for each hunk.</doc>
      <source-position filename="libgit2-glib/ggit-types.h" line="1099"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="1097">0 to go continue or a #GgitError in case there was an error.</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="delta" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-types.h"
               line="1091">a #GgitDiffDelta.</doc>
          <type name="DiffDelta" c:type="GgitDiffDelta*"/>
        </parameter>
        <parameter name="hunk" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-types.h"
               line="1092">a #GgitDiffHunk.</doc>
          <type name="DiffHunk" c:type="GgitDiffHunk*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="2">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-types.h"
               line="1093">user-supplied data.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <record name="DiffLine"
            c:type="GgitDiffLine"
            opaque="1"
            glib:type-name="GgitDiffLine"
            glib:get-type="ggit_diff_line_get_type"
            c:symbol-prefix="diff_line">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="105">Represents the line of a diff.</doc>
      <source-position filename="libgit2-glib/ggit-types.h" line="110"/>
      <method name="get_content" c:identifier="ggit_diff_line_get_content">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-line.c"
             line="169">Gets the content in bytes.</doc>
        <source-position filename="libgit2-glib/ggit-diff-line.h" line="46"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff-line.c"
               line="176">the content in bytes.</doc>
          <array length="0" zero-terminated="0" c:type="const guint8*">
            <type name="guint8" c:type="guint8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="line" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-line.c"
                 line="171">a #GgitDiffLine.</doc>
            <type name="DiffLine" c:type="GgitDiffLine*"/>
          </instance-parameter>
          <parameter name="length"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-line.c"
                 line="172">the number of returned bytes.</doc>
            <type name="gsize" c:type="gsize*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_content_offset"
              c:identifier="ggit_diff_line_get_content_offset">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-line.c"
             line="153">Gets the content offset.</doc>
        <source-position filename="libgit2-glib/ggit-diff-line.h" line="44"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff-line.c"
               line="159">the content offset.</doc>
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="line" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-line.c"
                 line="155">a #GgitDiffLine.</doc>
            <type name="DiffLine" c:type="GgitDiffLine*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_new_lineno"
              c:identifier="ggit_diff_line_get_new_lineno">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-line.c"
             line="137">Gets the Line number in new file or -1 for deleted line.</doc>
        <source-position filename="libgit2-glib/ggit-diff-line.h" line="43"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff-line.c"
               line="143">the line's old number of lines.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="line" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-line.c"
                 line="139">a #GgitDiffLine.</doc>
            <type name="DiffLine" c:type="GgitDiffLine*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_old_lineno"
              c:identifier="ggit_diff_line_get_old_lineno">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-line.c"
             line="121">Gets the line number in old file or -1 for added line.</doc>
        <source-position filename="libgit2-glib/ggit-diff-line.h" line="42"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff-line.c"
               line="127">the line's old line number.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="line" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-line.c"
                 line="123">a #GgitDiffLine.</doc>
            <type name="DiffLine" c:type="GgitDiffLine*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_origin" c:identifier="ggit_diff_line_get_origin">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-line.c"
             line="105">Gets the #GgitDiffLineType value.</doc>
        <source-position filename="libgit2-glib/ggit-diff-line.h" line="41"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff-line.c"
               line="111">the #GgitDiffLineType value.</doc>
          <type name="DiffLineType" c:type="GgitDiffLineType"/>
        </return-value>
        <parameters>
          <instance-parameter name="line" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-line.c"
                 line="107">a #GgitDiffLine.</doc>
            <type name="DiffLine" c:type="GgitDiffLine*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_text" c:identifier="ggit_diff_line_get_text">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-line.c"
             line="192">Get the content of the diff line as UTF-8 encoded text.</doc>
        <source-position filename="libgit2-glib/ggit-diff-line.h" line="49"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff-line.c"
               line="198">the content in utf-8 encoding or %NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="line" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-line.c"
                 line="194">a #GgitDiffLine.</doc>
            <type name="DiffLine" c:type="GgitDiffLine*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="ggit_diff_line_ref">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-line.c"
             line="66">Atomically increments the reference count of @line by one.
This function is MT-safe and may be called from any thread.</doc>
        <source-position filename="libgit2-glib/ggit-diff-line.h" line="38"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff-line.c"
               line="73">a #GgitDiffLine or %NULL.</doc>
          <type name="DiffLine" c:type="GgitDiffLine*"/>
        </return-value>
        <parameters>
          <instance-parameter name="line" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-line.c"
                 line="68">a #GgitDiffLine.</doc>
            <type name="DiffLine" c:type="GgitDiffLine*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="ggit_diff_line_unref">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-line.c"
             line="85">Atomically decrements the reference count of @line by one.
If the reference count drops to 0, @line is freed.</doc>
        <source-position filename="libgit2-glib/ggit-diff-line.h" line="39"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="line" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-line.c"
                 line="87">a #GgitDiffLine.</doc>
            <type name="DiffLine" c:type="GgitDiffLine*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <callback name="DiffLineCallback" c:type="GgitDiffLineCallback">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="1103">Called for each line.</doc>
      <source-position filename="libgit2-glib/ggit-types.h" line="1114"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="1112">0 to go continue or a #GgitError in case there was an error.</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="delta" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-types.h"
               line="1105">a #GgitDiffDelta.</doc>
          <type name="DiffDelta" c:type="GgitDiffDelta*"/>
        </parameter>
        <parameter name="hunk"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-types.h"
               line="1106">a #GgitDiffHunk.</doc>
          <type name="DiffHunk" c:type="GgitDiffHunk*"/>
        </parameter>
        <parameter name="line" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-types.h"
               line="1107">a #GgitDiffLine.</doc>
          <type name="DiffLine" c:type="GgitDiffLine*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="3">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-types.h"
               line="1108">user-supplied data.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <enumeration name="DiffLineType"
                 glib:type-name="GgitDiffLineType"
                 glib:get-type="ggit_diff_line_type_get_type"
                 c:type="GgitDiffLineType">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="481">These values describe where a line came from and will be passed to
the #GgitDiffLineCallback when iterating over a diff.

The #GGIT_DIFF_LINE_FILE_HDR, #GGIT_DIFF_LINE_HUNK_HDR and
#GGIT_DIFF_LINE_BINARY values are only sent when the diff is being printed.</doc>
      <member name="context"
              value="32"
              c:identifier="GGIT_DIFF_LINE_CONTEXT"
              glib:nick="context"
              glib:name="GGIT_DIFF_LINE_CONTEXT">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="483">line is part of the context.</doc>
      </member>
      <member name="addition"
              value="43"
              c:identifier="GGIT_DIFF_LINE_ADDITION"
              glib:nick="addition"
              glib:name="GGIT_DIFF_LINE_ADDITION">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="484">line that was added.</doc>
      </member>
      <member name="deletion"
              value="45"
              c:identifier="GGIT_DIFF_LINE_DELETION"
              glib:nick="deletion"
              glib:name="GGIT_DIFF_LINE_DELETION">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="485">line that was removed.</doc>
      </member>
      <member name="context_eofnl"
              value="61"
              c:identifier="GGIT_DIFF_LINE_CONTEXT_EOFNL"
              glib:nick="context-eofnl"
              glib:name="GGIT_DIFF_LINE_CONTEXT_EOFNL">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="486">Both files have no LF at end.</doc>
      </member>
      <member name="add_eofnl"
              value="62"
              c:identifier="GGIT_DIFF_LINE_ADD_EOFNL"
              glib:nick="add-eofnl"
              glib:name="GGIT_DIFF_LINE_ADD_EOFNL">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="487">LF was added at end of file.</doc>
      </member>
      <member name="del_eofnl"
              value="60"
              c:identifier="GGIT_DIFF_LINE_DEL_EOFNL"
              glib:nick="del-eofnl"
              glib:name="GGIT_DIFF_LINE_DEL_EOFNL">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="488">LF was removed at end of file.</doc>
      </member>
      <member name="file_hdr"
              value="70"
              c:identifier="GGIT_DIFF_LINE_FILE_HDR"
              glib:nick="file-hdr"
              glib:name="GGIT_DIFF_LINE_FILE_HDR">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="489">the file header.</doc>
      </member>
      <member name="hunk_hdr"
              value="72"
              c:identifier="GGIT_DIFF_LINE_HUNK_HDR"
              glib:nick="hunk-hdr"
              glib:name="GGIT_DIFF_LINE_HUNK_HDR">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="490">the hunk header.</doc>
      </member>
      <member name="binary"
              value="66"
              c:identifier="GGIT_DIFF_LINE_BINARY"
              glib:nick="binary"
              glib:name="GGIT_DIFF_LINE_BINARY">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="491">is binary.</doc>
      </member>
    </enumeration>
    <bitfield name="DiffOption"
              glib:type-name="GgitDiffOption"
              glib:get-type="ggit_diff_option_get_type"
              c:type="GgitDiffOption">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="403">How the diff should be generated.</doc>
      <member name="normal"
              value="0"
              c:identifier="GGIT_DIFF_NORMAL"
              glib:nick="normal"
              glib:name="GGIT_DIFF_NORMAL">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="405">normal.</doc>
      </member>
      <member name="reverse"
              value="1"
              c:identifier="GGIT_DIFF_REVERSE"
              glib:nick="reverse"
              glib:name="GGIT_DIFF_REVERSE">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="406">reverse the sides of the diff.</doc>
      </member>
      <member name="include_ignored"
              value="2"
              c:identifier="GGIT_DIFF_INCLUDE_IGNORED"
              glib:nick="include-ignored"
              glib:name="GGIT_DIFF_INCLUDE_IGNORED">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="407">include ignored files.</doc>
      </member>
      <member name="recurse_ignored_dirs"
              value="4"
              c:identifier="GGIT_DIFF_RECURSE_IGNORED_DIRS"
              glib:nick="recurse-ignored-dirs"
              glib:name="GGIT_DIFF_RECURSE_IGNORED_DIRS">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="408">also add all files under ignored dirs.</doc>
      </member>
      <member name="include_untracked"
              value="8"
              c:identifier="GGIT_DIFF_INCLUDE_UNTRACKED"
              glib:nick="include-untracked"
              glib:name="GGIT_DIFF_INCLUDE_UNTRACKED">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="409">include untracked files.</doc>
      </member>
      <member name="recurse_untracked_dirs"
              value="16"
              c:identifier="GGIT_DIFF_RECURSE_UNTRACKED_DIRS"
              glib:nick="recurse-untracked-dirs"
              glib:name="GGIT_DIFF_RECURSE_UNTRACKED_DIRS">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="410">recurse to untracked directories.</doc>
      </member>
      <member name="include_unmodified"
              value="32"
              c:identifier="GGIT_DIFF_INCLUDE_UNMODIFIED"
              glib:nick="include-unmodified"
              glib:name="GGIT_DIFF_INCLUDE_UNMODIFIED">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="411">include unmodified files.</doc>
      </member>
      <member name="include_typechange"
              value="64"
              c:identifier="GGIT_DIFF_INCLUDE_TYPECHANGE"
              glib:nick="include-typechange"
              glib:name="GGIT_DIFF_INCLUDE_TYPECHANGE">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="412">enable generation of typechange detal records.</doc>
      </member>
      <member name="include_typechange_trees"
              value="128"
              c:identifier="GGIT_DIFF_INCLUDE_TYPECHANGE_TREES"
              glib:nick="include-typechange-trees"
              glib:name="GGIT_DIFF_INCLUDE_TYPECHANGE_TREES">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="413">try to label tree transitions as type changes.</doc>
      </member>
      <member name="ignore_file_mode"
              value="256"
              c:identifier="GGIT_DIFF_IGNORE_FILE_MODE"
              glib:nick="ignore-file-mode"
              glib:name="GGIT_DIFF_IGNORE_FILE_MODE">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="414">ignore file mode changes.</doc>
      </member>
      <member name="ignore_submodules"
              value="512"
              c:identifier="GGIT_DIFF_IGNORE_SUBMODULES"
              glib:nick="ignore-submodules"
              glib:name="GGIT_DIFF_IGNORE_SUBMODULES">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="415">ignore submodules.</doc>
      </member>
      <member name="ignore_case"
              value="1024"
              c:identifier="GGIT_DIFF_IGNORE_CASE"
              glib:nick="ignore-case"
              glib:name="GGIT_DIFF_IGNORE_CASE">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="416">use case insensitive filename comparison.</doc>
      </member>
      <member name="disable_pathspec_match"
              value="4096"
              c:identifier="GGIT_DIFF_DISABLE_PATHSPEC_MATCH"
              glib:nick="disable-pathspec-match"
              glib:name="GGIT_DIFF_DISABLE_PATHSPEC_MATCH">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="417">use exact path matching.</doc>
      </member>
      <member name="skip_binary_check"
              value="8192"
              c:identifier="GGIT_DIFF_SKIP_BINARY_CHECK"
              glib:nick="skip-binary-check"
              glib:name="GGIT_DIFF_SKIP_BINARY_CHECK">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="418">disable updating the binary flag in delta records.</doc>
      </member>
      <member name="enable_fast_untracked_dirs"
              value="16384"
              c:identifier="GGIT_DIFF_ENABLE_FAST_UNTRACKED_DIRS"
              glib:nick="enable-fast-untracked-dirs"
              glib:name="GGIT_DIFF_ENABLE_FAST_UNTRACKED_DIRS">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="419">immediately label untracked directories as
untracked, without checking inside.</doc>
      </member>
      <member name="force_text"
              value="1048576"
              c:identifier="GGIT_DIFF_FORCE_TEXT"
              glib:nick="force-text"
              glib:name="GGIT_DIFF_FORCE_TEXT">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="421">force text.</doc>
      </member>
      <member name="force_binary"
              value="2097152"
              c:identifier="GGIT_DIFF_FORCE_BINARY"
              glib:nick="force-binary"
              glib:name="GGIT_DIFF_FORCE_BINARY">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="422">treat all files as binary, disabling text diffs.</doc>
      </member>
      <member name="ignore_whitespace"
              value="4194304"
              c:identifier="GGIT_DIFF_IGNORE_WHITESPACE"
              glib:nick="ignore-whitespace"
              glib:name="GGIT_DIFF_IGNORE_WHITESPACE">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="423">ignore whitespace.</doc>
      </member>
      <member name="ignore_whitespace_change"
              value="8388608"
              c:identifier="GGIT_DIFF_IGNORE_WHITESPACE_CHANGE"
              glib:nick="ignore-whitespace-change"
              glib:name="GGIT_DIFF_IGNORE_WHITESPACE_CHANGE">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="424">ignore whitespace change.</doc>
      </member>
      <member name="ignore_whitespace_eol"
              value="16777216"
              c:identifier="GGIT_DIFF_IGNORE_WHITESPACE_EOL"
              glib:nick="ignore-whitespace-eol"
              glib:name="GGIT_DIFF_IGNORE_WHITESPACE_EOL">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="425">ignore whitespace at end-of-line.</doc>
      </member>
      <member name="show_untracked_content"
              value="33554432"
              c:identifier="GGIT_DIFF_SHOW_UNTRACKED_CONTENT"
              glib:nick="show-untracked-content"
              glib:name="GGIT_DIFF_SHOW_UNTRACKED_CONTENT">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="426">include content of untracked files.
this implies GGIT_DIFF_INCLUDE_UNTRACKED but not GGIT_DIFF_RECURSE_UNTRACKED_DIRS.</doc>
      </member>
      <member name="show_unmodified"
              value="67108864"
              c:identifier="GGIT_DIFF_SHOW_UNMODIFIED"
              glib:nick="show-unmodified"
              glib:name="GGIT_DIFF_SHOW_UNMODIFIED">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="428">show unmodified files.</doc>
      </member>
      <member name="patience"
              value="268435456"
              c:identifier="GGIT_DIFF_PATIENCE"
              glib:nick="patience"
              glib:name="GGIT_DIFF_PATIENCE">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="429">generate using the "patience diff" algorithm.</doc>
      </member>
      <member name="minimal"
              value="536870912"
              c:identifier="GGIT_DIFF_MINIMAL"
              glib:nick="minimal"
              glib:name="GGIT_DIFF_MINIMAL">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="430">take extra time to find minimal diff.</doc>
      </member>
      <member name="show_binary"
              value="1073741824"
              c:identifier="GGIT_DIFF_SHOW_BINARY"
              glib:nick="show-binary"
              glib:name="GGIT_DIFF_SHOW_BINARY">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="431">include deflate/delta information for binary files.</doc>
      </member>
    </bitfield>
    <class name="DiffOptions"
           c:symbol-prefix="diff_options"
           c:type="GgitDiffOptions"
           parent="GObject.Object"
           glib:type-name="GgitDiffOptions"
           glib:get-type="ggit_diff_options_get_type"
           glib:type-struct="DiffOptionsClass">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-diff-options.c"
           line="27">Represents the options used when creating a #GgitDiff.</doc>
      <source-position filename="libgit2-glib/ggit-diff-options.h" line="37"/>
      <constructor name="new" c:identifier="ggit_diff_options_new">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-options.c"
             line="239">Create a new diff options object.</doc>
        <source-position filename="libgit2-glib/ggit-diff-options.h"
                         line="42"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff-options.c"
               line="244">a #GgitDiffOptions or %NULL.</doc>
          <type name="DiffOptions" c:type="GgitDiffOptions*"/>
        </return-value>
      </constructor>
      <method name="get_flags"
              c:identifier="ggit_diff_options_get_flags"
              glib:get-property="flags">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-options.c"
             line="271">Get the diff flags.</doc>
        <source-position filename="libgit2-glib/ggit-diff-options.h"
                         line="44"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff-options.c"
               line="277">a #GgitDiffOption.</doc>
          <type name="DiffOption" c:type="GgitDiffOption"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-options.c"
                 line="273">a #GgitDiffOptions.</doc>
            <type name="DiffOptions" c:type="GgitDiffOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_n_context_lines"
              c:identifier="ggit_diff_options_get_n_context_lines"
              glib:get-property="n-context-lines">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-options.c"
             line="314">Get the number of context lines to include in the diff.</doc>
        <source-position filename="libgit2-glib/ggit-diff-options.h"
                         line="48"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff-options.c"
               line="320">the number of context lines.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-options.c"
                 line="316">a #GgitDiffOptions.</doc>
            <type name="DiffOptions" c:type="GgitDiffOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_n_interhunk_lines"
              c:identifier="ggit_diff_options_get_n_interhunk_lines"
              glib:get-property="n-interhunk-lines">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-options.c"
             line="357">Get the number of interhunk lines to include in the diff.</doc>
        <source-position filename="libgit2-glib/ggit-diff-options.h"
                         line="52"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff-options.c"
               line="363">the number of lines.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-options.c"
                 line="359">a #GgitDiffOptions.</doc>
            <type name="DiffOptions" c:type="GgitDiffOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_new_prefix"
              c:identifier="ggit_diff_options_get_new_prefix"
              glib:get-property="new-prefix">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-options.c"
             line="446">Get the diff new-prefix string.</doc>
        <source-position filename="libgit2-glib/ggit-diff-options.h"
                         line="60"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff-options.c"
               line="452">the new-prefix string or %NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-options.c"
                 line="448">a #GgitDiffOptions.</doc>
            <type name="DiffOptions" c:type="GgitDiffOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_old_prefix"
              c:identifier="ggit_diff_options_get_old_prefix"
              glib:get-property="old-prefix">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-options.c"
             line="400">Get the diff old-prefix string.</doc>
        <source-position filename="libgit2-glib/ggit-diff-options.h"
                         line="56"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff-options.c"
               line="406">the old-prefix string or %NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-options.c"
                 line="402">a #GgitDiffOptions.</doc>
            <type name="DiffOptions" c:type="GgitDiffOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pathspec"
              c:identifier="ggit_diff_options_get_pathspec"
              glib:get-property="pathspec">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-options.c"
             line="492">Get the pathspec.</doc>
        <source-position filename="libgit2-glib/ggit-diff-options.h"
                         line="64"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff-options.c"
               line="498">the pathspec or %NULL.</doc>
          <array c:type="const gchar**">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-options.c"
                 line="494">a #GgitDiffOptions.</doc>
            <type name="DiffOptions" c:type="GgitDiffOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_flags"
              c:identifier="ggit_diff_options_set_flags"
              glib:set-property="flags">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-options.c"
             line="292">Set the diff flags.</doc>
        <source-position filename="libgit2-glib/ggit-diff-options.h"
                         line="45"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-options.c"
                 line="294">a #GgitDiffOptions.</doc>
            <type name="DiffOptions" c:type="GgitDiffOptions*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-options.c"
                 line="295">a #GgitDiffOption.</doc>
            <type name="DiffOption" c:type="GgitDiffOption"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_n_context_lines"
              c:identifier="ggit_diff_options_set_n_context_lines"
              glib:set-property="n-context-lines">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-options.c"
             line="335">Set the number of context lines to include in the diff.</doc>
        <source-position filename="libgit2-glib/ggit-diff-options.h"
                         line="49"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-options.c"
                 line="337">a #GgitDiffOptions.</doc>
            <type name="DiffOptions" c:type="GgitDiffOptions*"/>
          </instance-parameter>
          <parameter name="n" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-options.c"
                 line="338">the number of lines.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_n_interhunk_lines"
              c:identifier="ggit_diff_options_set_n_interhunk_lines"
              glib:set-property="n-interhunk-lines">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-options.c"
             line="378">Set the number of interhunk lines to include in the diff.</doc>
        <source-position filename="libgit2-glib/ggit-diff-options.h"
                         line="53"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-options.c"
                 line="380">a #GgitDiffOptions.</doc>
            <type name="DiffOptions" c:type="GgitDiffOptions*"/>
          </instance-parameter>
          <parameter name="n" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-options.c"
                 line="381">the number of lines.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_new_prefix"
              c:identifier="ggit_diff_options_set_new_prefix"
              glib:set-property="new-prefix">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-options.c"
             line="467">Set the diff new-prefix string.</doc>
        <source-position filename="libgit2-glib/ggit-diff-options.h"
                         line="61"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-options.c"
                 line="469">a #GgitDiffOptions.</doc>
            <type name="DiffOptions" c:type="GgitDiffOptions*"/>
          </instance-parameter>
          <parameter name="prefix" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-options.c"
                 line="470">the prefix.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_old_prefix"
              c:identifier="ggit_diff_options_set_old_prefix"
              glib:set-property="old-prefix">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-options.c"
             line="421">Get the diff old-prefix string.</doc>
        <source-position filename="libgit2-glib/ggit-diff-options.h"
                         line="57"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-options.c"
                 line="423">a #GgitDiffOptions.</doc>
            <type name="DiffOptions" c:type="GgitDiffOptions*"/>
          </instance-parameter>
          <parameter name="prefix" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-options.c"
                 line="424">the prefix.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_pathspec"
              c:identifier="ggit_diff_options_set_pathspec"
              glib:set-property="pathspec">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-options.c"
             line="513">Set the pathspec.</doc>
        <source-position filename="libgit2-glib/ggit-diff-options.h"
                         line="65"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-options.c"
                 line="515">a #GgitDiffOptions.</doc>
            <type name="DiffOptions" c:type="GgitDiffOptions*"/>
          </instance-parameter>
          <parameter name="pathspec"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-options.c"
                 line="516">the pathspec.</doc>
            <array c:type="const gchar**">
              <type name="utf8" c:type="gchar*"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <property name="flags"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_flags"
                getter="get_flags"
                default-value="GGIT_DIFF_NORMAL">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-options.c"
             line="158">The diff option flags.</doc>
        <type name="DiffOption"/>
      </property>
      <property name="n-context-lines"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_n_context_lines"
                getter="get_n_context_lines"
                default-value="3">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="n-interhunk-lines"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_n_interhunk_lines"
                getter="get_n_interhunk_lines"
                default-value="0">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="new-prefix"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_new_prefix"
                getter="get_new_prefix"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="old-prefix"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_old_prefix"
                getter="get_old_prefix"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="pathspec"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_pathspec"
                getter="get_pathspec">
        <array>
          <type name="utf8"/>
        </array>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="DiffOptionsClass"
            c:type="GgitDiffOptionsClass"
            glib:is-gtype-struct-for="DiffOptions">
      <source-position filename="libgit2-glib/ggit-diff-options.h" line="37"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="DiffSimilarityMetric"
            c:type="GgitDiffSimilarityMetric"
            opaque="1"
            glib:type-name="GgitDiffSimilarityMetric"
            glib:get-type="ggit_diff_similarity_metric_get_type"
            c:symbol-prefix="diff_similarity_metric">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="112">Represents a similarity metric.</doc>
      <source-position filename="libgit2-glib/ggit-types.h" line="117"/>
      <constructor name="new" c:identifier="ggit_diff_similarity_metric_new">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-similarity-metric.c"
             line="145">Creates a new #GgitDiffSimilarityMetric.</doc>
        <source-position filename="libgit2-glib/ggit-diff-similarity-metric.h"
                         line="43"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff-similarity-metric.c"
               line="155">a newly allocated #GgitDiffSimilarityMetric.</doc>
          <type name="DiffSimilarityMetric"
                c:type="GgitDiffSimilarityMetric*"/>
        </return-value>
        <parameters>
          <parameter name="file_signature"
                     transfer-ownership="none"
                     scope="call">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-similarity-metric.c"
                 line="147">a #GgitDiffSimilarityMetricFileSignature.</doc>
            <type name="DiffSimilarityMetricFileSignatureCallback"
                  c:type="GgitDiffSimilarityMetricFileSignatureCallback"/>
          </parameter>
          <parameter name="buffer_signature"
                     transfer-ownership="none"
                     scope="call">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-similarity-metric.c"
                 line="148">a #GgitDiffSimilarityMetricBufferSignature.</doc>
            <type name="DiffSimilarityMetricBufferSignatureCallback"
                  c:type="GgitDiffSimilarityMetricBufferSignatureCallback"/>
          </parameter>
          <parameter name="free_signature"
                     transfer-ownership="none"
                     scope="call">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-similarity-metric.c"
                 line="149">a #GgitDiffSimilarityMetricFreeSignature.</doc>
            <type name="DiffSimilarityMetricFreeSignatureCallback"
                  c:type="GgitDiffSimilarityMetricFreeSignatureCallback"/>
          </parameter>
          <parameter name="similarity"
                     transfer-ownership="none"
                     scope="call"
                     closure="4">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-similarity-metric.c"
                 line="150">a #GgitDiffSimilarityMetricSimilarity.</doc>
            <type name="DiffSimilarityMetricSimilarityCallback"
                  c:type="GgitDiffSimilarityMetricSimilarityCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-similarity-metric.c"
                 line="151">passed as user_data to the previous parameters.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="copy" c:identifier="ggit_diff_similarity_metric_copy">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-similarity-metric.c"
             line="50">Copies @metric into a newly allocated #GgitDiffSimilarityMetric.</doc>
        <source-position filename="libgit2-glib/ggit-diff-similarity-metric.h"
                         line="40"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-diff-similarity-metric.c"
               line="56">a newly allocated #GgitDiffSimilarityMetric or %NULL.</doc>
          <type name="DiffSimilarityMetric"
                c:type="GgitDiffSimilarityMetric*"/>
        </return-value>
        <parameters>
          <instance-parameter name="metric" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-similarity-metric.c"
                 line="52">a #GgitDiffSimilarityMetric.</doc>
            <type name="DiffSimilarityMetric"
                  c:type="GgitDiffSimilarityMetric*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="ggit_diff_similarity_metric_free">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-diff-similarity-metric.c"
             line="76">Frees @metric.</doc>
        <source-position filename="libgit2-glib/ggit-diff-similarity-metric.h"
                         line="41"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="metric" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-diff-similarity-metric.c"
                 line="78">a #GgitDiffSimilarityMetric.</doc>
            <type name="DiffSimilarityMetric"
                  c:type="GgitDiffSimilarityMetric*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <callback name="DiffSimilarityMetricBufferSignatureCallback"
              c:type="GgitDiffSimilarityMetricBufferSignatureCallback">
      <source-position filename="libgit2-glib/ggit-types.h" line="1128"/>
      <return-value transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="file" transfer-ownership="none">
          <type name="DiffFile" c:type="GgitDiffFile*"/>
        </parameter>
        <parameter name="buf" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="buflen" transfer-ownership="none">
          <type name="gsize" c:type="gsize"/>
        </parameter>
        <parameter name="out"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="4">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="DiffSimilarityMetricFileSignatureCallback"
              c:type="GgitDiffSimilarityMetricFileSignatureCallback">
      <source-position filename="libgit2-glib/ggit-types.h" line="1122"/>
      <return-value transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="file" transfer-ownership="none">
          <type name="DiffFile" c:type="GgitDiffFile*"/>
        </parameter>
        <parameter name="fullpath" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="out"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="3">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="DiffSimilarityMetricFreeSignatureCallback"
              c:type="GgitDiffSimilarityMetricFreeSignatureCallback">
      <source-position filename="libgit2-glib/ggit-types.h" line="1134"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="signature"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="DiffSimilarityMetricSimilarityCallback"
              c:type="GgitDiffSimilarityMetricSimilarityCallback">
      <source-position filename="libgit2-glib/ggit-types.h" line="1137"/>
      <return-value transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="score" transfer-ownership="none">
          <type name="gint" c:type="gint*"/>
        </parameter>
        <parameter name="signature_a"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="signature_b"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="3">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <enumeration name="Direction"
                 glib:type-name="GgitDirection"
                 glib:get-type="ggit_direction_get_type"
                 c:type="GgitDirection">
      <member name="fetch"
              value="0"
              c:identifier="GGIT_DIRECTION_FETCH"
              glib:nick="fetch"
              glib:name="GGIT_DIRECTION_FETCH">
      </member>
      <member name="push"
              value="1"
              c:identifier="GGIT_DIRECTION_PUSH"
              glib:nick="push"
              glib:name="GGIT_DIRECTION_PUSH">
      </member>
    </enumeration>
    <function-macro name="ENCODE_VERSION"
                    c:identifier="GGIT_ENCODE_VERSION"
                    introspectable="0">
      <source-position filename="libgit2-glib/ggit-version.h" line="40"/>
      <parameters>
        <parameter name="major">
        </parameter>
        <parameter name="minor">
        </parameter>
        <parameter name="micro">
        </parameter>
      </parameters>
    </function-macro>
    <enumeration name="Error"
                 glib:type-name="GgitError"
                 glib:get-type="ggit_error_get_type"
                 c:type="GgitError"
                 glib:error-domain="ggit-error">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="512">Error codes for the %GGIT_ERROR error domain.</doc>
      <member name="git_error"
              value="-1"
              c:identifier="GGIT_ERROR_GIT_ERROR"
              glib:nick="git-error"
              glib:name="GGIT_ERROR_GIT_ERROR">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="514">A generic error for when an operation fails.</doc>
      </member>
      <member name="notfound"
              value="-3"
              c:identifier="GGIT_ERROR_NOTFOUND"
              glib:nick="notfound"
              glib:name="GGIT_ERROR_NOTFOUND">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="515">Input does not exist in the scope searched.</doc>
      </member>
      <member name="exists"
              value="-4"
              c:identifier="GGIT_ERROR_EXISTS"
              glib:nick="exists"
              glib:name="GGIT_ERROR_EXISTS">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="516">A reference with this name already exists.</doc>
      </member>
      <member name="ambiguous"
              value="-5"
              c:identifier="GGIT_ERROR_AMBIGUOUS"
              glib:nick="ambiguous"
              glib:name="GGIT_ERROR_AMBIGUOUS">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="517">The given error is ambiguous.</doc>
      </member>
      <member name="bufs"
              value="-6"
              c:identifier="GGIT_ERROR_BUFS"
              glib:nick="bufs"
              glib:name="GGIT_ERROR_BUFS">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="518">The buffer is too short.</doc>
      </member>
      <member name="passthrough"
              value="-30"
              c:identifier="GGIT_ERROR_PASSTHROUGH"
              glib:nick="passthrough"
              glib:name="GGIT_ERROR_PASSTHROUGH">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="519">Skip and passthrough the given ODB backend.</doc>
      </member>
      <member name="iterover"
              value="-31"
              c:identifier="GGIT_ERROR_ITEROVER"
              glib:nick="iterover"
              glib:name="GGIT_ERROR_ITEROVER">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="520">The iteration has finished.</doc>
      </member>
      <function name="quark" c:identifier="ggit_error_quark">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-error.c"
             line="27">Error domain for Ggit functions.
Errors in this domain will be from the GgitError enumeration.
See #GError for information on error domains.</doc>
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
    </enumeration>
    <function-macro name="FETCH_OPTIONS"
                    c:identifier="GGIT_FETCH_OPTIONS"
                    introspectable="0">
      <source-position filename="libgit2-glib/ggit-fetch-options.h" line="32"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <bitfield name="FeatureFlags"
              glib:type-name="GgitFeatureFlags"
              glib:get-type="ggit_feature_flags_get_type"
              c:type="GgitFeatureFlags">
      <member name="threads"
              value="1"
              c:identifier="GGIT_FEATURE_THREADS"
              glib:nick="threads"
              glib:name="GGIT_FEATURE_THREADS">
      </member>
      <member name="https"
              value="2"
              c:identifier="GGIT_FEATURE_HTTPS"
              glib:nick="https"
              glib:name="GGIT_FEATURE_HTTPS">
      </member>
      <member name="ssh"
              value="4"
              c:identifier="GGIT_FEATURE_SSH"
              glib:nick="ssh"
              glib:name="GGIT_FEATURE_SSH">
      </member>
    </bitfield>
    <record name="FetchOptions"
            c:type="GgitFetchOptions"
            opaque="1"
            glib:type-name="GgitFetchOptions"
            glib:get-type="ggit_fetch_options_get_type"
            c:symbol-prefix="fetch_options">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="126">Represents a git fetch options.</doc>
      <source-position filename="libgit2-glib/ggit-types.h" line="131"/>
      <constructor name="new" c:identifier="ggit_fetch_options_new">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-fetch-options.c"
             line="101">Creates a new #GgitFetchOptions.</doc>
        <source-position filename="libgit2-glib/ggit-fetch-options.h"
                         line="41"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-fetch-options.c"
               line="106">a newly allocated #GgitFetchOptions.</doc>
          <type name="FetchOptions" c:type="GgitFetchOptions*"/>
        </return-value>
      </constructor>
      <method name="copy" c:identifier="ggit_fetch_options_copy">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-fetch-options.c"
             line="50">Copies @fetch_options into a newly allocated #GgitFetchOptions.</doc>
        <source-position filename="libgit2-glib/ggit-fetch-options.h"
                         line="38"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-fetch-options.c"
               line="56">a newly allocated #GgitFetchOptions or %NULL.</doc>
          <type name="FetchOptions" c:type="GgitFetchOptions*"/>
        </return-value>
        <parameters>
          <instance-parameter name="fetch_options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-fetch-options.c"
                 line="52">a #GgitFetchOptions.</doc>
            <type name="FetchOptions" c:type="GgitFetchOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="ggit_fetch_options_free">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-fetch-options.c"
             line="86">Frees @fetch_options.</doc>
        <source-position filename="libgit2-glib/ggit-fetch-options.h"
                         line="39"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="fetch_options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-fetch-options.c"
                 line="88">a #GgitFetchOptions.</doc>
            <type name="FetchOptions" c:type="GgitFetchOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_download_tags"
              c:identifier="ggit_fetch_options_get_download_tags">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-fetch-options.c"
             line="162">Get how tags are being handled when fetching/downloading.</doc>
        <source-position filename="libgit2-glib/ggit-fetch-options.h"
                         line="47"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-fetch-options.c"
               line="168">a #GgitRemoteDownloadTagsType.</doc>
          <type name="RemoteDownloadTagsType"
                c:type="GgitRemoteDownloadTagsType"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-fetch-options.c"
                 line="164">a #GgitFetchOptions.</doc>
            <type name="FetchOptions" c:type="GgitFetchOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_remote_callbacks"
              c:identifier="ggit_fetch_options_get_remote_callbacks">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-fetch-options.c"
             line="120">Get the remote callbacks object or %NULL if not set.</doc>
        <source-position filename="libgit2-glib/ggit-fetch-options.h"
                         line="43"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-fetch-options.c"
               line="126">the remote callbacks or %NULL.</doc>
          <type name="RemoteCallbacks" c:type="GgitRemoteCallbacks*"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-fetch-options.c"
                 line="122">a #GgitFetchOptions.</doc>
            <type name="FetchOptions" c:type="GgitFetchOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_download_tags"
              c:identifier="ggit_fetch_options_set_download_tags">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-fetch-options.c"
             line="178">Set how tags are being handled when fetching/downloading.</doc>
        <source-position filename="libgit2-glib/ggit-fetch-options.h"
                         line="48"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-fetch-options.c"
                 line="180">a #GgitFetchOptions.</doc>
            <type name="FetchOptions" c:type="GgitFetchOptions*"/>
          </instance-parameter>
          <parameter name="download_tags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-fetch-options.c"
                 line="181">a #GgitRemoteDownloadTagsType.</doc>
            <type name="RemoteDownloadTagsType"
                  c:type="GgitRemoteDownloadTagsType"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_remote_callbacks"
              c:identifier="ggit_fetch_options_set_remote_callbacks">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-fetch-options.c"
             line="135">Set the fetch options object.</doc>
        <source-position filename="libgit2-glib/ggit-fetch-options.h"
                         line="44"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-fetch-options.c"
                 line="137">a #GgitFetchOptions.</doc>
            <type name="FetchOptions" c:type="GgitFetchOptions*"/>
          </instance-parameter>
          <parameter name="callbacks"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-fetch-options.c"
                 line="138">a #GgitRemoteCallbacks or %NULL.</doc>
            <type name="RemoteCallbacks" c:type="GgitRemoteCallbacks*"/>
          </parameter>
        </parameters>
      </method>
    </record>
    <enumeration name="FileMode"
                 glib:type-name="GgitFileMode"
                 glib:get-type="ggit_file_mode_get_type"
                 c:type="GgitFileMode">
      <member name="unreadable"
              value="0"
              c:identifier="GGIT_FILE_MODE_UNREADABLE"
              glib:nick="unreadable"
              glib:name="GGIT_FILE_MODE_UNREADABLE">
      </member>
      <member name="tree"
              value="16384"
              c:identifier="GGIT_FILE_MODE_TREE"
              glib:nick="tree"
              glib:name="GGIT_FILE_MODE_TREE">
      </member>
      <member name="blob"
              value="33188"
              c:identifier="GGIT_FILE_MODE_BLOB"
              glib:nick="blob"
              glib:name="GGIT_FILE_MODE_BLOB">
      </member>
      <member name="blob_executable"
              value="33261"
              c:identifier="GGIT_FILE_MODE_BLOB_EXECUTABLE"
              glib:nick="blob-executable"
              glib:name="GGIT_FILE_MODE_BLOB_EXECUTABLE">
      </member>
      <member name="link"
              value="40960"
              c:identifier="GGIT_FILE_MODE_LINK"
              glib:nick="link"
              glib:name="GGIT_FILE_MODE_LINK">
      </member>
      <member name="commit"
              value="57344"
              c:identifier="GGIT_FILE_MODE_COMMIT"
              glib:nick="commit"
              glib:name="GGIT_FILE_MODE_COMMIT">
      </member>
    </enumeration>
    <function-macro name="INDEX_ENTRIES"
                    c:identifier="GGIT_INDEX_ENTRIES"
                    introspectable="0">
      <source-position filename="libgit2-glib/ggit-index-entry.h" line="38"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="INDEX_ENTRIES_RESOLVE_UNDO"
                    c:identifier="GGIT_INDEX_ENTRIES_RESOLVE_UNDO"
                    introspectable="0">
      <source-position filename="libgit2-glib/ggit-index-entry-resolve-undo.h"
                       line="36"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="INDEX_ENTRY"
                    c:identifier="GGIT_INDEX_ENTRY"
                    introspectable="0">
      <source-position filename="libgit2-glib/ggit-index-entry.h" line="35"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="INDEX_ENTRY_RESOLVE_UNDO"
                    c:identifier="GGIT_INDEX_ENTRY_RESOLVE_UNDO"
                    introspectable="0">
      <source-position filename="libgit2-glib/ggit-index-entry-resolve-undo.h"
                       line="33"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_REPOSITORY"
                    c:identifier="GGIT_IS_REPOSITORY"
                    introspectable="0">
      <source-position filename="libgit2-glib/ggit-repository.h" line="52"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_REPOSITORY_CLASS"
                    c:identifier="GGIT_IS_REPOSITORY_CLASS"
                    introspectable="0">
      <source-position filename="libgit2-glib/ggit-repository.h" line="53"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <class name="Index"
           c:symbol-prefix="index"
           c:type="GgitIndex"
           parent="Native"
           glib:type-name="GgitIndex"
           glib:get-type="ggit_index_get_type"
           glib:type-struct="IndexClass">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-index.c"
           line="28">Represents an index object.</doc>
      <source-position filename="libgit2-glib/ggit-index.h" line="33"/>
      <implements name="Gio.Initable"/>
      <function name="open" c:identifier="ggit_index_open" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-index.c"
             line="214">Create a new bare Git index object as a memory representation of the Git
index file in @file, without a repository to back it.</doc>
        <source-position filename="libgit2-glib/ggit-index.h" line="38"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-index.c"
               line="222">a #GgitIndex or %NULL if an error occurred.</doc>
          <type name="Index" c:type="GgitIndex*"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index.c"
                 line="216">a #GFile.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </function>
      <method name="add" c:identifier="ggit_index_add" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-index.c"
             line="366">Add a file to the index.</doc>
        <source-position filename="libgit2-glib/ggit-index.h" line="60"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-index.c"
               line="374">%TRUE if the file was successfully added, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index.c"
                 line="368">a #GgitIndex.</doc>
            <type name="Index" c:type="GgitIndex*"/>
          </instance-parameter>
          <parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index.c"
                 line="369">a #GgitIndexEntry.</doc>
            <type name="IndexEntry" c:type="GgitIndexEntry*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_file" c:identifier="ggit_index_add_file" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-index.c"
             line="434">Add a file to the index. The specified file must be in the working directory
and must exist and be readable.</doc>
        <source-position filename="libgit2-glib/ggit-index.h" line="64"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-index.c"
               line="443">%TRUE if the file was added to the index or %FALSE if there was an error.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index.c"
                 line="436">a #GgitIndex.</doc>
            <type name="Index" c:type="GgitIndex*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index.c"
                 line="437">file to add.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_path" c:identifier="ggit_index_add_path" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-index.c"
             line="489">Add a file to the index by path. You can specify both relative paths
(to the working directory) and absolute paths. Absolute paths however must
reside in the working directory. The specified path must exist and must be
readable.</doc>
        <source-position filename="libgit2-glib/ggit-index.h" line="68"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-index.c"
               line="500">%TRUE if the file was added to the index or %FALSE if there was an error.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index.c"
                 line="491">a #GgitIndex.</doc>
            <type name="Index" c:type="GgitIndex*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index.c"
                 line="492">path to the file to add.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_entries" c:identifier="ggit_index_get_entries">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-index.c"
             line="400">Get the index entries enumerator.</doc>
        <source-position filename="libgit2-glib/ggit-index.h" line="76"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-index.c"
               line="406">a #GgitIndexEntries or %NULL.</doc>
          <type name="IndexEntries" c:type="GgitIndexEntries*"/>
        </return-value>
        <parameters>
          <instance-parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index.c"
                 line="402">a #GgitIndex.</doc>
            <type name="Index" c:type="GgitIndex*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_entries_resolve_undo"
              c:identifier="ggit_index_get_entries_resolve_undo">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-index.c"
             line="417">Get the resolve undo entries enumerator.</doc>
        <source-position filename="libgit2-glib/ggit-index.h" line="78"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-index.c"
               line="423">a #GgitIndexEntriesResolveUndo or %NULL.</doc>
          <type name="IndexEntriesResolveUndo"
                c:type="GgitIndexEntriesResolveUndo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index.c"
                 line="419">a #GgitIndex.</doc>
            <type name="Index" c:type="GgitIndex*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_owner" c:identifier="ggit_index_get_owner">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-index.c"
             line="540">Get the #GgitRepository that owns the index.</doc>
        <source-position filename="libgit2-glib/ggit-index.h" line="72"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-index.c"
               line="546">the #GgitRepository that owns this index or %NULL.</doc>
          <type name="Repository" c:type="GgitRepository*"/>
        </return-value>
        <parameters>
          <instance-parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index.c"
                 line="542">a #GgitIndex.</doc>
            <type name="Index" c:type="GgitIndex*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_conflicts" c:identifier="ggit_index_has_conflicts">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-index.c"
             line="560">Get whether the index has any conflicts.</doc>
        <source-position filename="libgit2-glib/ggit-index.h" line="74"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-index.c"
               line="566">%TRUE if the index has any conflicts, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index.c"
                 line="562">a #GgitIndex.</doc>
            <type name="Index" c:type="GgitIndex*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="read" c:identifier="ggit_index_read" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-index.c"
             line="237">Update the contents of an existing index object in memory by reading from
the hard disk.

If @force is true, this performs a "hard" read that discards in-memory
changes and always reloads the on-disk index data. If there is no on-disk
version, the index will be cleared.

If @force is false, this does a "soft" read that reloads the index data from
disk only if it has changed since the last time it was loaded. Purely
in-memory index data will be untouched. Be aware: if there are changes on
disk, unwritten in-memory changes are discarded.</doc>
        <source-position filename="libgit2-glib/ggit-index.h" line="41"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-index.c"
               line="255">%TRUE if the index could be read from the file associated with the
         index, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index.c"
                 line="239">a #GgitIndex.</doc>
            <type name="Index" c:type="GgitIndex*"/>
          </instance-parameter>
          <parameter name="force" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index.c"
                 line="240">force read even if there are in-memory changes.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove" c:identifier="ggit_index_remove" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-index.c"
             line="311">Remove a file from the index (specified by position).</doc>
        <source-position filename="libgit2-glib/ggit-index.h" line="55"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-index.c"
               line="320">%TRUE if the file was successfully removed, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index.c"
                 line="313">a #GgitIndex.</doc>
            <type name="Index" c:type="GgitIndex*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index.c"
                 line="314">the file to search.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="stage" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index.c"
                 line="315">the stage to search.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="write" c:identifier="ggit_index_write" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-index.c"
             line="280">Write an existing index object from memory back to disk using an atomic file
lock.</doc>
        <source-position filename="libgit2-glib/ggit-index.h" line="45"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-index.c"
               line="288">%TRUE if the index was successfully written to disk, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index.c"
                 line="282">a #GgitIndex.</doc>
            <type name="Index" c:type="GgitIndex*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="write_tree"
              c:identifier="ggit_index_write_tree"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-index.c"
             line="577">Write a new tree object to disk containing a representation of the current
state of the index. The index must be associated to an existing repository
and must not contain any files in conflict. You can use the resulting tree
to for instance create a commit.</doc>
        <source-position filename="libgit2-glib/ggit-index.h" line="48"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-index.c"
               line="587">a #GgitOId or %NULL in case of an error.</doc>
          <type name="OId" c:type="GgitOId*"/>
        </return-value>
        <parameters>
          <instance-parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index.c"
                 line="579">a #GgitIndex.</doc>
            <type name="Index" c:type="GgitIndex*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="write_tree_to"
              c:identifier="ggit_index_write_tree_to"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-index.c"
             line="611">Write a new tree object to @repository containing a representation of the current
state of the index. The index must not contain any files in conflict. You can use
the resulting tree to for instance create a commit.</doc>
        <source-position filename="libgit2-glib/ggit-index.h" line="51"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-index.c"
               line="621">a #GgitOId or %NULL in case of an error.</doc>
          <type name="OId" c:type="GgitOId*"/>
        </return-value>
        <parameters>
          <instance-parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index.c"
                 line="613">a #GgitIndex.</doc>
            <type name="Index" c:type="GgitIndex*"/>
          </instance-parameter>
          <parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index.c"
                 line="614">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </parameter>
        </parameters>
      </method>
      <property name="file"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Gio.File"/>
      </property>
    </class>
    <record name="IndexClass"
            c:type="GgitIndexClass"
            glib:is-gtype-struct-for="Index">
      <source-position filename="libgit2-glib/ggit-index.h" line="33"/>
      <field name="parent_class">
        <type name="NativeClass" c:type="GgitNativeClass"/>
      </field>
    </record>
    <record name="IndexEntries"
            c:type="GgitIndexEntries"
            opaque="1"
            glib:type-name="GgitIndexEntries"
            glib:get-type="ggit_index_entries_get_type"
            c:symbol-prefix="index_entries">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="133">Represents the entries in an index object.</doc>
      <source-position filename="libgit2-glib/ggit-types.h" line="138"/>
      <method name="get_by_index"
              c:identifier="ggit_index_entries_get_by_index">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-index-entry.c"
             line="178">Get a #GgitIndexEntry by index. Note that the returned #GgitIndexEntry is
_only_ valid as long as:

1) The associated index has been closed
2) The entry has not been removed (see ggit_index_remove())
3) The index has not been refreshed (see ggit_index_read())

Changes to the #GgitIndexEntry will be reflected in the index once written
back to disk using ggit_index_write().</doc>
        <source-position filename="libgit2-glib/ggit-index-entry.h" line="45"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-index-entry.c"
               line="193">a #GgitIndexEntry or %NULL if out of bounds.</doc>
          <type name="IndexEntry" c:type="GgitIndexEntry*"/>
        </return-value>
        <parameters>
          <instance-parameter name="entries" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry.c"
                 line="180">a #GgitIndexEntries.</doc>
            <type name="IndexEntries" c:type="GgitIndexEntries*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry.c"
                 line="181">the index of the entry.</doc>
            <type name="gsize" c:type="gsize"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_by_path" c:identifier="ggit_index_entries_get_by_path">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-index-entry.c"
             line="218">Get a #GgitIndexEntry by index. Note that the returned #GgitIndexEntry is
_only_ valid as long as:

1) The associated index has not been closed
2) The entry has not been removed (see ggit_index_remove())
3) The index has not been refreshed (see ggit_index_read())

Changes to the #GgitIndexEntry will be reflected in the index once written
back to disk using ggit_index_write().

@stage indicates the stage to search the file for. Stages are used in the
index when merge conflicts occur, such that multiple versions of the same
file can be represented in the index. Stage 0 is associated with the working
tree, while stages 1 to 3 are associated with the various versions of the
file in a merge conflict. The special value -1 can be used to match the first
file encountered in any stage.</doc>
        <source-position filename="libgit2-glib/ggit-index-entry.h" line="48"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-index-entry.c"
               line="241">a #GgitIndexEntry or %NULL if it was not found.</doc>
          <type name="IndexEntry" c:type="GgitIndexEntry*"/>
        </return-value>
        <parameters>
          <instance-parameter name="entries" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry.c"
                 line="220">a #GgitIndexEntries.</doc>
            <type name="IndexEntries" c:type="GgitIndexEntries*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry.c"
                 line="221">the path to search.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="stage" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry.c"
                 line="222">stage to search.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="ggit_index_entries_ref">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-index-entry.c"
             line="140">Atomically increments the reference count of @entries by one.
This function is MT-safe and may be called from any thread.</doc>
        <source-position filename="libgit2-glib/ggit-index-entry.h" line="42"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-index-entry.c"
               line="147">a #GgitIndexEntries or %NULL.</doc>
          <type name="IndexEntries" c:type="GgitIndexEntries*"/>
        </return-value>
        <parameters>
          <instance-parameter name="entries" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry.c"
                 line="142">a #GgitIndexEntries.</doc>
            <type name="IndexEntries" c:type="GgitIndexEntries*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="size" c:identifier="ggit_index_entries_size">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-index-entry.c"
             line="283">Get the number of #GgitIndexEntry entries.</doc>
        <source-position filename="libgit2-glib/ggit-index-entry.h" line="52"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-index-entry.c"
               line="289">the number of entries.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="entries" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry.c"
                 line="285">a #GgitIndexEntries.</doc>
            <type name="IndexEntries" c:type="GgitIndexEntries*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="ggit_index_entries_unref">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-index-entry.c"
             line="159">Atomically decrements the reference count of @entries by one.
If the reference count drops to 0, @entries is freed.</doc>
        <source-position filename="libgit2-glib/ggit-index-entry.h" line="43"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="entries" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry.c"
                 line="161">a #GgitIndexEntries.</doc>
            <type name="IndexEntries" c:type="GgitIndexEntries*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <record name="IndexEntriesResolveUndo"
            c:type="GgitIndexEntriesResolveUndo"
            opaque="1"
            glib:type-name="GgitIndexEntriesResolveUndo"
            glib:get-type="ggit_index_entries_resolve_undo_get_type"
            c:symbol-prefix="index_entries_resolve_undo">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="147">Represents the resolve undo entries in an index object.</doc>
      <source-position filename="libgit2-glib/ggit-types.h" line="152"/>
      <method name="get" c:identifier="ggit_index_entries_resolve_undo_get">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-index-entry-resolve-undo.c"
             line="147">Get a #GgitIndexEntryResolveUndo by index. Note that the returned
#GgitIndexEntryResolveUndo is _only_ valid as long as:

1) The associated index has been closed
2) The entry has not been removed (see ggit_index_remove())
3) The index has not been refreshed (see ggit_index_read())</doc>
        <source-position filename="libgit2-glib/ggit-index-entry-resolve-undo.h"
                         line="42"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-index-entry-resolve-undo.c"
               line="159">a #GgitIndexEntryResolveUndo or %NULL.</doc>
          <type name="IndexEntryResolveUndo"
                c:type="GgitIndexEntryResolveUndo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="entries" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry-resolve-undo.c"
                 line="149">a #GgitIndexEntriesResolveUndo.</doc>
            <type name="IndexEntriesResolveUndo"
                  c:type="GgitIndexEntriesResolveUndo*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry-resolve-undo.c"
                 line="150">the index of the entry.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_by_file"
              c:identifier="ggit_index_entries_resolve_undo_get_by_file">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-index-entry-resolve-undo.c"
             line="198">Get an resolve_undo entry specified by path. The returned entry is read
only and should not be modified by the caller. If the entry could not be
found, %NULL is returned.</doc>
        <source-position filename="libgit2-glib/ggit-index-entry-resolve-undo.h"
                         line="46"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-index-entry-resolve-undo.c"
               line="207">a #GgitIndexEntryResolveUndo or %NULL.</doc>
          <type name="IndexEntryResolveUndo"
                c:type="GgitIndexEntryResolveUndo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="entries" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry-resolve-undo.c"
                 line="200">a #GgitIndexEntriesResolveUndo.</doc>
            <type name="IndexEntriesResolveUndo"
                  c:type="GgitIndexEntriesResolveUndo*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry-resolve-undo.c"
                 line="201">a #GFile.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="ggit_index_entries_resolve_undo_ref">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-index-entry-resolve-undo.c"
             line="108">Atomically increments the reference count of @entries by one.
This function is MT-safe and may be called from any thread.</doc>
        <source-position filename="libgit2-glib/ggit-index-entry-resolve-undo.h"
                         line="52"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-index-entry-resolve-undo.c"
               line="115">a #GgitIndexEntriesResolveUndo or %NULL.</doc>
          <type name="IndexEntriesResolveUndo"
                c:type="GgitIndexEntriesResolveUndo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="entries" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry-resolve-undo.c"
                 line="110">a #GgitIndexEntriesResolveUndo.</doc>
            <type name="IndexEntriesResolveUndo"
                  c:type="GgitIndexEntriesResolveUndo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="size" c:identifier="ggit_index_entries_resolve_undo_size">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-index-entry-resolve-undo.c"
             line="177">Get the number of #GgitIndexEntryResolveUndo entries.</doc>
        <source-position filename="libgit2-glib/ggit-index-entry-resolve-undo.h"
                         line="54"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-index-entry-resolve-undo.c"
               line="183">the number of entries.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="entries" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry-resolve-undo.c"
                 line="179">a #GgitIndexEntriesResolveUndo.</doc>
            <type name="IndexEntriesResolveUndo"
                  c:type="GgitIndexEntriesResolveUndo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref"
              c:identifier="ggit_index_entries_resolve_undo_unref">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-index-entry-resolve-undo.c"
             line="128">Atomically decrements the reference count of @entries by one.
If the reference count drops to 0, @entries is freed.</doc>
        <source-position filename="libgit2-glib/ggit-index-entry-resolve-undo.h"
                         line="53"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="entries" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry-resolve-undo.c"
                 line="130">a #GgitIndexEntriesResolveUndo.</doc>
            <type name="IndexEntriesResolveUndo"
                  c:type="GgitIndexEntriesResolveUndo*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <record name="IndexEntry"
            c:type="GgitIndexEntry"
            opaque="1"
            glib:type-name="GgitIndexEntry"
            glib:get-type="ggit_index_entry_get_type"
            c:symbol-prefix="index_entry">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="140">Represents an index entry object.</doc>
      <source-position filename="libgit2-glib/ggit-types.h" line="145"/>
      <method name="get_dev" c:identifier="ggit_index_entry_get_dev">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-index-entry.c"
             line="304">Get the dev of the index entry.</doc>
        <source-position filename="libgit2-glib/ggit-index-entry.h" line="61"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-index-entry.c"
               line="310">the dev.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry.c"
                 line="306">a #GgitIndexEntry.</doc>
            <type name="IndexEntry" c:type="GgitIndexEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_file_size"
              c:identifier="ggit_index_entry_get_file_size">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-index-entry.c"
             line="479">Get the file size of the index entry.</doc>
        <source-position filename="libgit2-glib/ggit-index-entry.h" line="81"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-index-entry.c"
               line="485">the file size.</doc>
          <type name="gint64" c:type="goffset"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry.c"
                 line="481">a #GgitIndexEntry.</doc>
            <type name="IndexEntry" c:type="GgitIndexEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_flags" c:identifier="ggit_index_entry_get_flags">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-index-entry.c"
             line="556">Get the flags of the index entry.</doc>
        <source-position filename="libgit2-glib/ggit-index-entry.h" line="89"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-index-entry.c"
               line="562">the flags.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry.c"
                 line="558">a #GgitIndexEntry.</doc>
            <type name="IndexEntry" c:type="GgitIndexEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_flags_extended"
              c:identifier="ggit_index_entry_get_flags_extended">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-index-entry.c"
             line="591">Get the extended flags of the index entry.</doc>
        <source-position filename="libgit2-glib/ggit-index-entry.h" line="93"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-index-entry.c"
               line="597">the extended flags.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry.c"
                 line="593">a #GgitIndexEntry.</doc>
            <type name="IndexEntry" c:type="GgitIndexEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_gid" c:identifier="ggit_index_entry_get_gid">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-index-entry.c"
             line="444">Get the gid of the index entry.</doc>
        <source-position filename="libgit2-glib/ggit-index-entry.h" line="77"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-index-entry.c"
               line="450">the gid.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry.c"
                 line="446">a #GgitIndexEntry.</doc>
            <type name="IndexEntry" c:type="GgitIndexEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_id" c:identifier="ggit_index_entry_get_id">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-index-entry.c"
             line="514">Get the oid of the index entry.</doc>
        <source-position filename="libgit2-glib/ggit-index-entry.h" line="85"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-index-entry.c"
               line="520">the oid or %NULL.</doc>
          <type name="OId" c:type="GgitOId*"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry.c"
                 line="516">a #GgitIndexEntry.</doc>
            <type name="IndexEntry" c:type="GgitIndexEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_ino" c:identifier="ggit_index_entry_get_ino">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-index-entry.c"
             line="339">Get the ino of the index entry.</doc>
        <source-position filename="libgit2-glib/ggit-index-entry.h" line="65"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-index-entry.c"
               line="345">the ino.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry.c"
                 line="341">a #GgitIndexEntry.</doc>
            <type name="IndexEntry" c:type="GgitIndexEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mode" c:identifier="ggit_index_entry_get_mode">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-index-entry.c"
             line="374">Get the mode of the index entry.</doc>
        <source-position filename="libgit2-glib/ggit-index-entry.h" line="69"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-index-entry.c"
               line="380">the mode.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry.c"
                 line="376">a #GgitIndexEntry.</doc>
            <type name="IndexEntry" c:type="GgitIndexEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_path" c:identifier="ggit_index_entry_get_path">
        <source-position filename="libgit2-glib/ggit-index-entry.h" line="97"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <type name="IndexEntry" c:type="GgitIndexEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_uid" c:identifier="ggit_index_entry_get_uid">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-index-entry.c"
             line="409">Get the uid of the index entry.</doc>
        <source-position filename="libgit2-glib/ggit-index-entry.h" line="73"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-index-entry.c"
               line="415">the uid.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry.c"
                 line="411">a #GgitIndexEntry.</doc>
            <type name="IndexEntry" c:type="GgitIndexEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_conflict" c:identifier="ggit_index_entry_is_conflict">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-index-entry.c"
             line="815">Get whether the entry represents a conflict.</doc>
        <source-position filename="libgit2-glib/ggit-index-entry.h"
                         line="108"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-index-entry.c"
               line="821">%TRUE if the entry is a conflict, or %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry.c"
                 line="817">a #GgitIndexEntry.</doc>
            <type name="IndexEntry" c:type="GgitIndexEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="ggit_index_entry_ref">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-index-entry.c"
             line="97">Atomically increments the reference count of @entry by one.
This function is MT-safe and may be called from any thread.</doc>
        <source-position filename="libgit2-glib/ggit-index-entry.h" line="58"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-index-entry.c"
               line="104">a #GgitIndexEntry or %NULL.</doc>
          <type name="IndexEntry" c:type="GgitIndexEntry*"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry.c"
                 line="99">a #GgitIndexEntry.</doc>
            <type name="IndexEntry" c:type="GgitIndexEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_commit" c:identifier="ggit_index_entry_set_commit">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-index-entry.c"
             line="780">Set the index entry to point to a given commit. This sets the index entry
id to the commit id, changes the mode to #GGIT_FILE_MODE_COMMIT and updates
the timestamps to when the commit was made.</doc>
        <source-position filename="libgit2-glib/ggit-index-entry.h"
                         line="105"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry.c"
                 line="782">a #GgitIndexEntry.</doc>
            <type name="IndexEntry" c:type="GgitIndexEntry*"/>
          </instance-parameter>
          <parameter name="commit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry.c"
                 line="783">a #GgitCommit.</doc>
            <type name="Commit" c:type="GgitCommit*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_dev" c:identifier="ggit_index_entry_set_dev">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-index-entry.c"
             line="321">Set the dev of the index entry.</doc>
        <source-position filename="libgit2-glib/ggit-index-entry.h" line="62"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry.c"
                 line="323">a #GgitIndexEntry.</doc>
            <type name="IndexEntry" c:type="GgitIndexEntry*"/>
          </instance-parameter>
          <parameter name="dev" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry.c"
                 line="324">the dev.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_file_size"
              c:identifier="ggit_index_entry_set_file_size">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-index-entry.c"
             line="496">Set the file size of the index entry.</doc>
        <source-position filename="libgit2-glib/ggit-index-entry.h" line="82"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry.c"
                 line="498">a #GgitIndexEntry.</doc>
            <type name="IndexEntry" c:type="GgitIndexEntry*"/>
          </instance-parameter>
          <parameter name="file_size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry.c"
                 line="499">the file size.</doc>
            <type name="gint64" c:type="goffset"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_flags" c:identifier="ggit_index_entry_set_flags">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-index-entry.c"
             line="573">Set the flags of the index entry.</doc>
        <source-position filename="libgit2-glib/ggit-index-entry.h" line="90"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry.c"
                 line="575">a #GgitIndexEntry.</doc>
            <type name="IndexEntry" c:type="GgitIndexEntry*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry.c"
                 line="576">the flags.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_flags_extended"
              c:identifier="ggit_index_entry_set_flags_extended">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-index-entry.c"
             line="608">Set the extended flags of the index entry.</doc>
        <source-position filename="libgit2-glib/ggit-index-entry.h" line="94"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry.c"
                 line="610">a #GgitIndexEntry.</doc>
            <type name="IndexEntry" c:type="GgitIndexEntry*"/>
          </instance-parameter>
          <parameter name="flags_extended" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry.c"
                 line="611">the extended flags.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_gid" c:identifier="ggit_index_entry_set_gid">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-index-entry.c"
             line="461">Set the gid of the index entry.</doc>
        <source-position filename="libgit2-glib/ggit-index-entry.h" line="78"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry.c"
                 line="463">a #GgitIndexEntry.</doc>
            <type name="IndexEntry" c:type="GgitIndexEntry*"/>
          </instance-parameter>
          <parameter name="gid" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry.c"
                 line="464">the gid.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_id" c:identifier="ggit_index_entry_set_id">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-index-entry.c"
             line="531">Set the oid of the index entry.</doc>
        <source-position filename="libgit2-glib/ggit-index-entry.h" line="86"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry.c"
                 line="533">a #GgitIndexEntry.</doc>
            <type name="IndexEntry" c:type="GgitIndexEntry*"/>
          </instance-parameter>
          <parameter name="id"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry.c"
                 line="534">the oid.</doc>
            <type name="OId" c:type="GgitOId*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_ino" c:identifier="ggit_index_entry_set_ino">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-index-entry.c"
             line="356">Set the ino of the index entry.</doc>
        <source-position filename="libgit2-glib/ggit-index-entry.h" line="66"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry.c"
                 line="358">a #GgitIndexEntry.</doc>
            <type name="IndexEntry" c:type="GgitIndexEntry*"/>
          </instance-parameter>
          <parameter name="ino" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry.c"
                 line="359">the ino.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_mode" c:identifier="ggit_index_entry_set_mode">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-index-entry.c"
             line="391">Set the mode of the index entry.</doc>
        <source-position filename="libgit2-glib/ggit-index-entry.h" line="70"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry.c"
                 line="393">a #GgitIndexEntry.</doc>
            <type name="IndexEntry" c:type="GgitIndexEntry*"/>
          </instance-parameter>
          <parameter name="mode" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry.c"
                 line="394">the mode.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_path" c:identifier="ggit_index_entry_set_path">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-index-entry.c"
             line="644">Set the path of the index entry. The path should be relative to the working
directory.</doc>
        <source-position filename="libgit2-glib/ggit-index-entry.h" line="98"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry.c"
                 line="646">a #GgitIndexEntry.</doc>
            <type name="IndexEntry" c:type="GgitIndexEntry*"/>
          </instance-parameter>
          <parameter name="path"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry.c"
                 line="647">the path.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_uid" c:identifier="ggit_index_entry_set_uid">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-index-entry.c"
             line="426">Set the uid of the index entry.</doc>
        <source-position filename="libgit2-glib/ggit-index-entry.h" line="74"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry.c"
                 line="428">a #GgitIndexEntry.</doc>
            <type name="IndexEntry" c:type="GgitIndexEntry*"/>
          </instance-parameter>
          <parameter name="uid" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry.c"
                 line="429">the uid.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="stat" c:identifier="ggit_index_entry_stat" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-index-entry.c"
             line="697">Fill the entry fields from statting @file.</doc>
        <source-position filename="libgit2-glib/ggit-index-entry.h"
                         line="101"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-index-entry.c"
               line="705">%TRUE if the entry was filled from statting @file successfully, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry.c"
                 line="699">a #GgitIndexEntry.</doc>
            <type name="IndexEntry" c:type="GgitIndexEntry*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry.c"
                 line="700">the file to stat.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="ggit_index_entry_unref">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-index-entry.c"
             line="116">Atomically decrements the reference count of @entry by one.
If the reference count drops to 0, @entry is freed.</doc>
        <source-position filename="libgit2-glib/ggit-index-entry.h" line="59"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry.c"
                 line="118">a #GgitIndexEntry.</doc>
            <type name="IndexEntry" c:type="GgitIndexEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <record name="IndexEntryResolveUndo"
            c:type="GgitIndexEntryResolveUndo"
            opaque="1"
            glib:type-name="GgitIndexEntryResolveUndo"
            glib:get-type="ggit_index_entry_resolve_undo_get_type"
            c:symbol-prefix="index_entry_resolve_undo">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="154">Represents an resolve undo index entry object.</doc>
      <source-position filename="libgit2-glib/ggit-types.h" line="159"/>
      <method name="get_file"
              c:identifier="ggit_index_entry_resolve_undo_get_file">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-index-entry-resolve-undo.c"
             line="280">Get the file of the index entry.</doc>
        <source-position filename="libgit2-glib/ggit-index-entry-resolve-undo.h"
                         line="70"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-index-entry-resolve-undo.c"
               line="286">a #GFile or %NULL.</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry-resolve-undo.c"
                 line="282">a #GgitIndexEntryResolveUndo.</doc>
            <type name="IndexEntryResolveUndo"
                  c:type="GgitIndexEntryResolveUndo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_id"
              c:identifier="ggit_index_entry_resolve_undo_get_id">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-index-entry-resolve-undo.c"
             line="260">Get the oid of the index entry.</doc>
        <source-position filename="libgit2-glib/ggit-index-entry-resolve-undo.h"
                         line="67"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-index-entry-resolve-undo.c"
               line="267">the oid or %NULL.</doc>
          <type name="OId" c:type="GgitOId*"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry-resolve-undo.c"
                 line="262">a #GgitIndexEntryResolveUndo.</doc>
            <type name="IndexEntryResolveUndo"
                  c:type="GgitIndexEntryResolveUndo*"/>
          </instance-parameter>
          <parameter name="stage" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry-resolve-undo.c"
                 line="263">the stage (0, 1 or 2).</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_mode"
              c:identifier="ggit_index_entry_resolve_undo_get_mode">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-index-entry-resolve-undo.c"
             line="239">Get the mode of the index entry. The returned mode contains the modes from
stage 1, 2 and 3.</doc>
        <source-position filename="libgit2-glib/ggit-index-entry-resolve-undo.h"
                         line="64"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-index-entry-resolve-undo.c"
               line="247">the mode.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry-resolve-undo.c"
                 line="241">a #GgitIndexEntryResolveUndo.</doc>
            <type name="IndexEntryResolveUndo"
                  c:type="GgitIndexEntryResolveUndo*"/>
          </instance-parameter>
          <parameter name="stage" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry-resolve-undo.c"
                 line="242">the stage (0, 1 or 2).</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="ggit_index_entry_resolve_undo_ref">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-index-entry-resolve-undo.c"
             line="71">Atomically increments the reference count of @entry by one.
This function is MT-safe and may be called from any thread.</doc>
        <source-position filename="libgit2-glib/ggit-index-entry-resolve-undo.h"
                         line="61"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-index-entry-resolve-undo.c"
               line="78">a #GgitIndexEntryResolveUndo or %NULL.</doc>
          <type name="IndexEntryResolveUndo"
                c:type="GgitIndexEntryResolveUndo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry-resolve-undo.c"
                 line="73">a #GgitIndexEntryResolveUndo.</doc>
            <type name="IndexEntryResolveUndo"
                  c:type="GgitIndexEntryResolveUndo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="ggit_index_entry_resolve_undo_unref">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-index-entry-resolve-undo.c"
             line="90">Atomically decrements the reference count of @entry by one.
If the reference count drops to 0, @entry is freed.</doc>
        <source-position filename="libgit2-glib/ggit-index-entry-resolve-undo.h"
                         line="62"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-index-entry-resolve-undo.c"
                 line="92">a #GgitIndexEntryResolveUndo.</doc>
            <type name="IndexEntryResolveUndo"
                  c:type="GgitIndexEntryResolveUndo*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <constant name="MAJOR_VERSION" value="1" c:type="GGIT_MAJOR_VERSION">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-version.h"
           line="19">libgit2-glib major version component (e.g. 1 if %GGIT_VERSION is 1.2.3)</doc>
      <source-position filename="libgit2-glib/ggit-version.h" line="24"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <function-macro name="MERGE_OPTIONS"
                    c:identifier="GGIT_MERGE_OPTIONS"
                    introspectable="0">
      <source-position filename="libgit2-glib/ggit-merge-options.h" line="33"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <constant name="MICRO_VERSION" value="1" c:type="GGIT_MICRO_VERSION">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-version.h"
           line="33">libgit2-glib micro version component (e.g. 3 if %GGIT_VERSION is 1.2.3)</doc>
      <source-position filename="libgit2-glib/ggit-version.h" line="38"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="MINOR_VERSION" value="2" c:type="GGIT_MINOR_VERSION">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-version.h"
           line="26">libgit2-glib minor version component (e.g. 2 if %GGIT_VERSION is 1.2.3)</doc>
      <source-position filename="libgit2-glib/ggit-version.h" line="31"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <class name="Mailmap"
           c:symbol-prefix="mailmap"
           c:type="GgitMailmap"
           parent="Native"
           glib:type-name="GgitMailmap"
           glib:get-type="ggit_mailmap_get_type"
           glib:type-struct="MailmapClass">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-mailmap.c"
           line="27">Represents a mailmap.</doc>
      <source-position filename="libgit2-glib/ggit-mailmap.h" line="33"/>
      <constructor name="new" c:identifier="ggit_mailmap_new" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-mailmap.c"
             line="115">Creates a new #GgitMailmap.</doc>
        <source-position filename="libgit2-glib/ggit-mailmap.h" line="38"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-mailmap.c"
               line="121">a newly allocated #GgitMailmap or %NULL.</doc>
          <type name="Mailmap" c:type="GgitMailmap*"/>
        </return-value>
      </constructor>
      <constructor name="new_from_repository"
                   c:identifier="ggit_mailmap_new_from_repository"
                   throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-mailmap.c"
             line="145">Creates a new #GgitMailmap and loads mailmap files according to the
configuration of @repository.</doc>
        <source-position filename="libgit2-glib/ggit-mailmap.h" line="39"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-mailmap.c"
               line="153">a newly allocated #GgitMailmap or %NULL.</doc>
          <type name="Mailmap" c:type="GgitMailmap*"/>
        </return-value>
        <parameters>
          <parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-mailmap.c"
                 line="147">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="add_entry"
              c:identifier="ggit_mailmap_add_entry"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-mailmap.c"
             line="180">Adds a new entry to @mailmap, replacing @replace_name and @replace_email
with @real_name and @real_email respectively.  If @replace_name is %NULL,
it is ignored during matching.  If either @real_name or @real_email is %NULL,
the respective field is not replaced.</doc>
        <source-position filename="libgit2-glib/ggit-mailmap.h" line="42"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="mailmap" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-mailmap.c"
                 line="182">the mailmap to add the entry in.</doc>
            <type name="Mailmap" c:type="GgitMailmap*"/>
          </instance-parameter>
          <parameter name="real_name"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-mailmap.c"
                 line="183">the real name of the person.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="real_email"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-mailmap.c"
                 line="184">the real email of the person.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="replace_name"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-mailmap.c"
                 line="185">the name to replace.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="replace_email" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-mailmap.c"
                 line="186">the email to replace.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="resolve" c:identifier="ggit_mailmap_resolve" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-mailmap.c"
             line="214">Resolves @replace_name and @replace_email to @real_name and @real_email.
If @mailmap is #NULL, no substitution is performed.</doc>
        <source-position filename="libgit2-glib/ggit-mailmap.h" line="49"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="mailmap"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-mailmap.c"
                 line="216">the mailmap to search for replacements in.</doc>
            <type name="Mailmap" c:type="GgitMailmap*"/>
          </instance-parameter>
          <parameter name="real_name"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-mailmap.c"
                 line="217">the real name of the person.</doc>
            <type name="utf8" c:type="const gchar**"/>
          </parameter>
          <parameter name="real_email"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-mailmap.c"
                 line="218">the real email of the person.</doc>
            <type name="utf8" c:type="const gchar**"/>
          </parameter>
          <parameter name="replace_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-mailmap.c"
                 line="219">the name to replace.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="replace_email" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-mailmap.c"
                 line="220">the email to replace.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="resolve_signature"
              c:identifier="ggit_mailmap_resolve_signature"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-mailmap.c"
             line="247">Resolves @signature to use the real name and email according to @mailmap.
If @mailmap is #NULL, no substitution is performed, but a new signature is
still allocated and returned.</doc>
        <source-position filename="libgit2-glib/ggit-mailmap.h" line="57"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-mailmap.c"
               line="257">The corrected signature or %NULL.</doc>
          <type name="Signature" c:type="GgitSignature*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mailmap"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-mailmap.c"
                 line="249">the mailmap to resolve names and emails with.</doc>
            <type name="Mailmap" c:type="GgitMailmap*"/>
          </instance-parameter>
          <parameter name="signature" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-mailmap.c"
                 line="250">the commit signature as recorded.</doc>
            <type name="Signature" c:type="GgitSignature*"/>
          </parameter>
        </parameters>
      </method>
    </class>
    <record name="MailmapClass"
            c:type="GgitMailmapClass"
            glib:is-gtype-struct-for="Mailmap">
      <source-position filename="libgit2-glib/ggit-mailmap.h" line="33"/>
      <field name="parent_class">
        <type name="NativeClass" c:type="GgitNativeClass"/>
      </field>
    </record>
    <enumeration name="MergeFileFavor"
                 glib:type-name="GgitMergeFileFavor"
                 glib:get-type="ggit_merge_file_favor_get_type"
                 c:type="GgitMergeFileFavor">
      <member name="normal"
              value="0"
              c:identifier="GGIT_MERGE_FILE_FAVOR_NORMAL"
              glib:nick="normal"
              glib:name="GGIT_MERGE_FILE_FAVOR_NORMAL">
      </member>
      <member name="ours"
              value="1"
              c:identifier="GGIT_MERGE_FILE_FAVOR_OURS"
              glib:nick="ours"
              glib:name="GGIT_MERGE_FILE_FAVOR_OURS">
      </member>
      <member name="theirs"
              value="2"
              c:identifier="GGIT_MERGE_FILE_FAVOR_THEIRS"
              glib:nick="theirs"
              glib:name="GGIT_MERGE_FILE_FAVOR_THEIRS">
      </member>
      <member name="union"
              value="3"
              c:identifier="GGIT_MERGE_FILE_FAVOR_UNION"
              glib:nick="union"
              glib:name="GGIT_MERGE_FILE_FAVOR_UNION">
      </member>
    </enumeration>
    <bitfield name="MergeFileFlags"
              glib:type-name="GgitMergeFileFlags"
              glib:get-type="ggit_merge_file_flags_get_type"
              c:type="GgitMergeFileFlags">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="568">GGIT_MERGE_FILE_DEFAULT: Defaults.
GGIT_MERGE_FILE_STYLE_MERGE: Create standard conflicted merge files.
GGIT_MERGE_FILE_STYLE_DIFF3: Create diff3-style files.
GGIT_MERGE_FILE_SIMPLIFY_ALNUM: Condense non-alphanumeric regions for simplified diff file.
GGIT_MERGE_FILE_IGNORE_WHITESPACE: Ignore all whitespace.
GGIT_MERGE_FILE_IGNORE_WHITESPACE_CHANGE: Ignore changes in amount of whitespace.
GGIT_MERGE_FILE_IGNORE_WHITESPACE_EOL: Ignore whitespace at end of line.
GGIT_MERGE_FILE_DIFF_PATIENCE: Use the "patience diff" algorithm.
GGIT_MERGE_FILE_DIFF_MINIMAL: Take extra time to find minimal diff.</doc>
      <member name="default"
              value="0"
              c:identifier="GGIT_MERGE_FILE_DEFAULT"
              glib:nick="default"
              glib:name="GGIT_MERGE_FILE_DEFAULT">
      </member>
      <member name="style_merge"
              value="1"
              c:identifier="GGIT_MERGE_FILE_STYLE_MERGE"
              glib:nick="style-merge"
              glib:name="GGIT_MERGE_FILE_STYLE_MERGE">
      </member>
      <member name="style_diff3"
              value="2"
              c:identifier="GGIT_MERGE_FILE_STYLE_DIFF3"
              glib:nick="style-diff3"
              glib:name="GGIT_MERGE_FILE_STYLE_DIFF3">
      </member>
      <member name="simplify_alnum"
              value="4"
              c:identifier="GGIT_MERGE_FILE_SIMPLIFY_ALNUM"
              glib:nick="simplify-alnum"
              glib:name="GGIT_MERGE_FILE_SIMPLIFY_ALNUM">
      </member>
      <member name="ignore_whitespace"
              value="8"
              c:identifier="GGIT_MERGE_FILE_IGNORE_WHITESPACE"
              glib:nick="ignore-whitespace"
              glib:name="GGIT_MERGE_FILE_IGNORE_WHITESPACE">
      </member>
      <member name="ignore_whitespace_change"
              value="16"
              c:identifier="GGIT_MERGE_FILE_IGNORE_WHITESPACE_CHANGE"
              glib:nick="ignore-whitespace-change"
              glib:name="GGIT_MERGE_FILE_IGNORE_WHITESPACE_CHANGE">
      </member>
      <member name="ignore_whitespace_eol"
              value="32"
              c:identifier="GGIT_MERGE_FILE_IGNORE_WHITESPACE_EOL"
              glib:nick="ignore-whitespace-eol"
              glib:name="GGIT_MERGE_FILE_IGNORE_WHITESPACE_EOL">
      </member>
      <member name="diff_patience"
              value="64"
              c:identifier="GGIT_MERGE_FILE_DIFF_PATIENCE"
              glib:nick="diff-patience"
              glib:name="GGIT_MERGE_FILE_DIFF_PATIENCE">
      </member>
      <member name="diff_minimal"
              value="128"
              c:identifier="GGIT_MERGE_FILE_DIFF_MINIMAL"
              glib:nick="diff-minimal"
              glib:name="GGIT_MERGE_FILE_DIFF_MINIMAL">
      </member>
    </bitfield>
    <bitfield name="MergeFlags"
              glib:type-name="GgitMergeFlags"
              glib:get-type="ggit_merge_flags_get_type"
              c:type="GgitMergeFlags">
      <member name="find_renames"
              value="1"
              c:identifier="GGIT_MERGE_FIND_RENAMES"
              glib:nick="find-renames"
              glib:name="GGIT_MERGE_FIND_RENAMES">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="594">detect renames that occur between the common
ancestor and the "ours" side or the common ancestor and the "theirs" side.
This will enable the ability to merge between a modified and renamed file.</doc>
      </member>
      <member name="fail_on_conflict"
              value="2"
              c:identifier="GGIT_MERGE_FAIL_ON_CONFLICT"
              glib:nick="fail-on-conflict"
              glib:name="GGIT_MERGE_FAIL_ON_CONFLICT">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="597">If a conflict occurs, exit immediately instead
of attempting to continue resolving conflicts.  The merge operation will
fail with @GGIT_EMERGECONFLICT and no index will be returned.</doc>
      </member>
      <member name="skip_reuc"
              value="4"
              c:identifier="GGIT_MERGE_SKIP_REUC"
              glib:nick="skip-reuc"
              glib:name="GGIT_MERGE_SKIP_REUC">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="600">do not write the REUC extension on the generated index.</doc>
      </member>
      <member name="no_recursive"
              value="8"
              c:identifier="GGIT_MERGE_NO_RECURSIVE"
              glib:nick="no-recursive"
              glib:name="GGIT_MERGE_NO_RECURSIVE">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="601">If the commits being merged have multiple merge bases,
do not build a recursive merge base (by merging the multiple merge bases),
instead simply use the first base.  This flag provides a similar
merge base to `git-merge-resolve`.</doc>
      </member>
    </bitfield>
    <record name="MergeOptions"
            c:type="GgitMergeOptions"
            opaque="1"
            glib:type-name="GgitMergeOptions"
            glib:get-type="ggit_merge_options_get_type"
            c:symbol-prefix="merge_options">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="161">Represents the options used when merging.</doc>
      <source-position filename="libgit2-glib/ggit-types.h" line="166"/>
      <constructor name="new" c:identifier="ggit_merge_options_new">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-merge-options.c"
             line="91">Creates a new #GgitMergeOptions.</doc>
        <source-position filename="libgit2-glib/ggit-merge-options.h"
                         line="43"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-merge-options.c"
               line="96">a newly allocated #GgitMergeOptions.</doc>
          <type name="MergeOptions" c:type="GgitMergeOptions*"/>
        </return-value>
      </constructor>
      <method name="copy" c:identifier="ggit_merge_options_copy">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-merge-options.c"
             line="47">Copies @merge_options into a newly allocated #GgitMergeOptions.</doc>
        <source-position filename="libgit2-glib/ggit-merge-options.h"
                         line="40"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-merge-options.c"
               line="53">a newly allocated #GgitMergeOptions or %NULL.</doc>
          <type name="MergeOptions" c:type="GgitMergeOptions*"/>
        </return-value>
        <parameters>
          <instance-parameter name="merge_options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-merge-options.c"
                 line="49">a #GgitMergeOptions.</doc>
            <type name="MergeOptions" c:type="GgitMergeOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="ggit_merge_options_free">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-merge-options.c"
             line="71">Frees @merge_options.</doc>
        <source-position filename="libgit2-glib/ggit-merge-options.h"
                         line="41"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="merge_options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-merge-options.c"
                 line="73">a #GgitMergeOptions.</doc>
            <type name="MergeOptions" c:type="GgitMergeOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_file_favor"
              c:identifier="ggit_merge_options_get_file_favor">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-merge-options.c"
             line="271">Get flags for handling conflicting content.</doc>
        <source-position filename="libgit2-glib/ggit-merge-options.h"
                         line="69"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-merge-options.c"
               line="277">the file favor.</doc>
          <type name="MergeFileFavor" c:type="GgitMergeFileFavor"/>
        </return-value>
        <parameters>
          <instance-parameter name="merge_options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-merge-options.c"
                 line="273">a #GgitMergeOptions.</doc>
            <type name="MergeOptions" c:type="GgitMergeOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_file_flags"
              c:identifier="ggit_merge_options_get_file_flags">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-merge-options.c"
             line="303">Get file merging flags.</doc>
        <source-position filename="libgit2-glib/ggit-merge-options.h"
                         line="74"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-merge-options.c"
               line="309">the file merging flags.</doc>
          <type name="MergeFileFlags" c:type="GgitMergeFileFlags"/>
        </return-value>
        <parameters>
          <instance-parameter name="merge_options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-merge-options.c"
                 line="305">a #GgitMergeOptions.</doc>
            <type name="MergeOptions" c:type="GgitMergeOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_flags" c:identifier="ggit_merge_options_get_flags">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-merge-options.c"
             line="126">Get the tree flags to use for merging.</doc>
        <source-position filename="libgit2-glib/ggit-merge-options.h"
                         line="48"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-merge-options.c"
               line="132">the flags.</doc>
          <type name="MergeFlags" c:type="GgitMergeFlags"/>
        </return-value>
        <parameters>
          <instance-parameter name="merge_options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-merge-options.c"
                 line="128">a #GgitMergeOptions.</doc>
            <type name="MergeOptions" c:type="GgitMergeOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_rename_threshold"
              c:identifier="ggit_merge_options_get_rename_threshold">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-merge-options.c"
             line="161">Get the rename threshold (defaults to 50). If %GGIT_MERGE_TREE_FIND_RENAMES
is enabled, added files will be compared with deleted files to
determine their similarity. Files that are more similar than the rename
threshold (percentage-wise) will be treated as a rename.</doc>
        <source-position filename="libgit2-glib/ggit-merge-options.h"
                         line="53"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-merge-options.c"
               line="170">the rename threshold.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="merge_options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-merge-options.c"
                 line="163">a #GgitMergeOptions.</doc>
            <type name="MergeOptions" c:type="GgitMergeOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_similarity_metric"
              c:identifier="ggit_merge_options_get_similarity_metric">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-merge-options.c"
             line="239">Get the similarity metric.</doc>
        <source-position filename="libgit2-glib/ggit-merge-options.h"
                         line="64"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-merge-options.c"
               line="245">the similarity metric, or %NULL.</doc>
          <type name="DiffSimilarityMetric"
                c:type="GgitDiffSimilarityMetric*"/>
        </return-value>
        <parameters>
          <instance-parameter name="merge_options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-merge-options.c"
                 line="241">a #GgitMergeOptions.</doc>
            <type name="MergeOptions" c:type="GgitMergeOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_target_limit"
              c:identifier="ggit_merge_options_get_target_limit">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-merge-options.c"
             line="198">Get the maximum number of similarity sources to examine for renames (defaults to 200).
If the number of rename candidates (add / delete pairs) is greater than
this value, inexact rename detection is aborted.</doc>
        <source-position filename="libgit2-glib/ggit-merge-options.h"
                         line="58"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-merge-options.c"
               line="206">the target limit.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="merge_options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-merge-options.c"
                 line="200">a #GgitMergeOptions.</doc>
            <type name="MergeOptions" c:type="GgitMergeOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_file_favor"
              c:identifier="ggit_merge_options_set_file_favor">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-merge-options.c"
             line="255">Set flags for handling conflicting content.</doc>
        <source-position filename="libgit2-glib/ggit-merge-options.h"
                         line="66"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="merge_options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-merge-options.c"
                 line="257">a #GgitMergeOptions.</doc>
            <type name="MergeOptions" c:type="GgitMergeOptions*"/>
          </instance-parameter>
          <parameter name="file_favor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-merge-options.c"
                 line="258">the file favor.</doc>
            <type name="MergeFileFavor" c:type="GgitMergeFileFavor"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_file_flags"
              c:identifier="ggit_merge_options_set_file_flags">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-merge-options.c"
             line="287">Set file merging flags.</doc>
        <source-position filename="libgit2-glib/ggit-merge-options.h"
                         line="71"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="merge_options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-merge-options.c"
                 line="289">a #GgitMergeOptions.</doc>
            <type name="MergeOptions" c:type="GgitMergeOptions*"/>
          </instance-parameter>
          <parameter name="file_flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-merge-options.c"
                 line="290">the file flags.</doc>
            <type name="MergeFileFlags" c:type="GgitMergeFileFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_flags" c:identifier="ggit_merge_options_set_flags">
        <source-position filename="libgit2-glib/ggit-merge-options.h"
                         line="45"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="merge_options" transfer-ownership="none">
            <type name="MergeOptions" c:type="GgitMergeOptions*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <type name="MergeFlags" c:type="GgitMergeFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_rename_threshold"
              c:identifier="ggit_merge_options_set_rename_threshold">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-merge-options.c"
             line="142">Set the rename threshold (defaults to 50). If %GGIT_MERGE_TREE_FIND_RENAMES
is enabled, added files will be compared with deleted files to
determine their similarity. Files that are more similar than the rename
threshold (percentage-wise) will be treated as a rename.</doc>
        <source-position filename="libgit2-glib/ggit-merge-options.h"
                         line="50"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="merge_options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-merge-options.c"
                 line="144">a #GgitMergeOptions.</doc>
            <type name="MergeOptions" c:type="GgitMergeOptions*"/>
          </instance-parameter>
          <parameter name="rename_threshold" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-merge-options.c"
                 line="145">similarity to consider a file renamed.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_similarity_metric"
              c:identifier="ggit_merge_options_set_similarity_metric">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-merge-options.c"
             line="216">Set the similarity metric, or %NULL for the default similarity metric.</doc>
        <source-position filename="libgit2-glib/ggit-merge-options.h"
                         line="60"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="merge_options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-merge-options.c"
                 line="218">a #GgitMergeOptions.</doc>
            <type name="MergeOptions" c:type="GgitMergeOptions*"/>
          </instance-parameter>
          <parameter name="metric" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-merge-options.c"
                 line="219">a #GgitSimilarityMetric.</doc>
            <type name="DiffSimilarityMetric"
                  c:type="GgitDiffSimilarityMetric*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_target_limit"
              c:identifier="ggit_merge_options_set_target_limit">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-merge-options.c"
             line="180">Set the maximum number of similarity sources to examine for renames (defaults to 200).
If the number of rename candidates (add / delete pairs) is greater than
this value, inexact rename detection is aborted.</doc>
        <source-position filename="libgit2-glib/ggit-merge-options.h"
                         line="55"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="merge_options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-merge-options.c"
                 line="182">a #GgitMergeOptions.</doc>
            <type name="MergeOptions" c:type="GgitMergeOptions*"/>
          </instance-parameter>
          <parameter name="target_limit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-merge-options.c"
                 line="183">maximum similarity source to examine for renames.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
    </record>
    <function-macro name="NOTE" c:identifier="GGIT_NOTE" introspectable="0">
      <source-position filename="libgit2-glib/ggit-note.h" line="32"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <class name="Native"
           c:symbol-prefix="native"
           c:type="GgitNative"
           parent="ObjectFactoryBase"
           abstract="1"
           glib:type-name="GgitNative"
           glib:get-type="ggit_native_get_type"
           glib:type-struct="NativeClass">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-native.c"
           line="23">Represents a generic native object.</doc>
      <source-position filename="libgit2-glib/ggit-native.h" line="42"/>
      <property name="native"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gpointer" c:type="gpointer"/>
      </property>
      <field name="parent_instance">
        <type name="ObjectFactoryBase" c:type="GgitObjectFactoryBase"/>
      </field>
    </class>
    <record name="NativeClass"
            c:type="GgitNativeClass"
            glib:is-gtype-struct-for="Native">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-native.h"
           line="32">The class structure for #GgitNativeClass.</doc>
      <source-position filename="libgit2-glib/ggit-native.h" line="42"/>
      <field name="parent_class" readable="0" private="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-native.h"
             line="34">The parent class.</doc>
        <type name="ObjectFactoryBaseClass"
              c:type="GgitObjectFactoryBaseClass"/>
      </field>
    </record>
    <record name="Note"
            c:type="GgitNote"
            opaque="1"
            glib:type-name="GgitNote"
            glib:get-type="ggit_note_get_type"
            c:symbol-prefix="note">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="168">Represents a note object.</doc>
      <source-position filename="libgit2-glib/ggit-types.h" line="173"/>
      <method name="get_id" c:identifier="ggit_note_get_id">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-note.c"
             line="105">Gets the note object's id.</doc>
        <source-position filename="libgit2-glib/ggit-note.h" line="43"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-note.c"
               line="111">the object's id or %NULL.</doc>
          <type name="OId" c:type="GgitOId*"/>
        </return-value>
        <parameters>
          <instance-parameter name="note" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-note.c"
                 line="107">a #GgitNote.</doc>
            <type name="Note" c:type="GgitNote*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_message" c:identifier="ggit_note_get_message">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-note.c"
             line="89">Gets the note message.</doc>
        <source-position filename="libgit2-glib/ggit-note.h" line="41"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-note.c"
               line="95">the note message or %NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="note" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-note.c"
                 line="91">a #GgitNote.</doc>
            <type name="Note" c:type="GgitNote*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="ggit_note_ref">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-note.c"
             line="50">Atomically increments the reference count of @note by one.
This function is MT-safe and may be called from any thread.</doc>
        <source-position filename="libgit2-glib/ggit-note.h" line="38"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-note.c"
               line="57">a #GgitNote or %NULL.</doc>
          <type name="Note" c:type="GgitNote*"/>
        </return-value>
        <parameters>
          <instance-parameter name="note" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-note.c"
                 line="52">a #GgitNote.</doc>
            <type name="Note" c:type="GgitNote*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="ggit_note_unref">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-note.c"
             line="69">Atomically decrements the reference count of @note by one.
If the reference count drops to 0, @note is freed.</doc>
        <source-position filename="libgit2-glib/ggit-note.h" line="39"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="note" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-note.c"
                 line="71">a #GgitNote.</doc>
            <type name="Note" c:type="GgitNote*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <callback name="NoteCallback" c:type="GgitNoteCallback">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="1142">When iterating over all the notes, callback that will be
issued per note. See ggit_repository_note_foreach().</doc>
      <source-position filename="libgit2-glib/ggit-types.h" line="1153"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="1151">0 to go continue or a #GgitError in case there was an error.</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="blob_id" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-types.h"
               line="1144">id of the blob containing the message.</doc>
          <type name="OId" c:type="GgitOId*"/>
        </parameter>
        <parameter name="annotated_object_id" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-types.h"
               line="1145">id of the git object being annotated.</doc>
          <type name="OId" c:type="GgitOId*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="2">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-types.h"
               line="1146">user-suplied data.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <function-macro name="OID" c:identifier="GGIT_OID" introspectable="0">
      <source-position filename="libgit2-glib/ggit-oid.h" line="33"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <record name="OId"
            c:type="GgitOId"
            opaque="1"
            glib:type-name="GgitOId"
            glib:get-type="ggit_oid_get_type"
            c:symbol-prefix="oid">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="175">Represents a unique ID of any object.</doc>
      <source-position filename="libgit2-glib/ggit-types.h" line="180"/>
      <constructor name="new_from_raw" c:identifier="ggit_oid_new_from_raw">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-oid.c"
             line="105">Creates a new #GgitOId from a raw oid.</doc>
        <source-position filename="libgit2-glib/ggit-oid.h" line="46"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-oid.c"
               line="111">a newly allocated #GgitOId or %NULL on error.</doc>
          <type name="OId" c:type="GgitOId*"/>
        </return-value>
        <parameters>
          <parameter name="raw" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-oid.c"
                 line="107">the raw input bytes to be copied.</doc>
            <array c:type="const guchar*">
              <type name="guint8"/>
            </array>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_from_string"
                   c:identifier="ggit_oid_new_from_string">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-oid.c"
             line="79">Parses a hex formatted object id into a #GgitOId.</doc>
        <source-position filename="libgit2-glib/ggit-oid.h" line="44"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-oid.c"
               line="87">a newly allocated #GgitOId or %NULL on error.</doc>
          <type name="OId" c:type="GgitOId*"/>
        </return-value>
        <parameters>
          <parameter name="str" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-oid.c"
                 line="81">input hex string; must be pointing at the start of
      the hex sequence and have at least the number of bytes
      needed for an oid encoded in hex (40 bytes).</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="compare" c:identifier="ggit_oid_compare">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-oid.c"
             line="125">Compare two #GgitOId structures.</doc>
        <source-position filename="libgit2-glib/ggit-oid.h" line="48"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-oid.c"
               line="132">&lt;0, 0, &gt;0 if a &lt; b, a == b, a &gt; b.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="a" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-oid.c"
                 line="127">first #GgitOId.</doc>
            <type name="OId" c:type="GgitOId*"/>
          </instance-parameter>
          <parameter name="b" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-oid.c"
                 line="128">second #GgitOId.</doc>
            <type name="OId" c:type="GgitOId*"/>
          </parameter>
        </parameters>
      </method>
      <method name="copy" c:identifier="ggit_oid_copy">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-oid.c"
             line="49">Copies @oid into a newly allocated #GgitOId.</doc>
        <source-position filename="libgit2-glib/ggit-oid.h" line="41"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-oid.c"
               line="55">a newly allocated #GgitOId.</doc>
          <type name="OId" c:type="GgitOId*"/>
        </return-value>
        <parameters>
          <instance-parameter name="oid" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-oid.c"
                 line="51">a #GgitOId.</doc>
            <type name="OId" c:type="GgitOId*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="equal" c:identifier="ggit_oid_equal">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-oid.c"
             line="195">Compares two #GgitOId for equality.</doc>
        <source-position filename="libgit2-glib/ggit-oid.h" line="54"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-oid.c"
               line="202">%TRUE if @a and @b are equal, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="a" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-oid.c"
                 line="197">a #GgitOId.</doc>
            <type name="OId" c:type="const GgitOId*"/>
          </instance-parameter>
          <parameter name="b" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-oid.c"
                 line="198">a #GgitOId.</doc>
            <type name="OId" c:type="const GgitOId*"/>
          </parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="ggit_oid_free">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-oid.c"
             line="65">Frees @oid.</doc>
        <source-position filename="libgit2-glib/ggit-oid.h" line="42"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="oid" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-oid.c"
                 line="67">a #GgitOId.</doc>
            <type name="OId" c:type="GgitOId*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_prefix" c:identifier="ggit_oid_has_prefix">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-oid.c"
             line="258">Check whether the object id has a given prefix. Note that the prefix is
specified in hexadecimal ASCII.</doc>
        <source-position filename="libgit2-glib/ggit-oid.h" line="59"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-oid.c"
               line="266">%TRUE if the id has the given prefix, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="oid" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-oid.c"
                 line="260">a #GgitOId.</doc>
            <type name="OId" c:type="GgitOId*"/>
          </instance-parameter>
          <parameter name="prefix" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-oid.c"
                 line="261">a prefix.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="hash" c:identifier="ggit_oid_hash">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-oid.c"
             line="164">Computes a hash value for a git object identifier.</doc>
        <source-position filename="libgit2-glib/ggit-oid.h" line="53"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-oid.c"
               line="170">the hash value</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="oid" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-oid.c"
                 line="166">a #GgitOId.</doc>
            <type name="OId" c:type="const GgitOId*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_zero" c:identifier="ggit_oid_is_zero">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-oid.c"
             line="221">Get whether the oid contains only zeros.</doc>
        <source-position filename="libgit2-glib/ggit-oid.h" line="57"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-oid.c"
               line="227">%TRUE if the oid contains only zeros, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="oid" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-oid.c"
                 line="223">a #GgitOId.</doc>
            <type name="OId" c:type="const GgitOId*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="to_string" c:identifier="ggit_oid_to_string">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-oid.c"
             line="144">Converts @oid into a readable string.</doc>
        <source-position filename="libgit2-glib/ggit-oid.h" line="51"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-oid.c"
               line="150">a newly allocated string representing @oid or %NULL.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="oid" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-oid.c"
                 line="146">a #GgitOId.</doc>
            <type name="OId" c:type="GgitOId*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <class name="Object"
           c:symbol-prefix="object"
           c:type="GgitObject"
           parent="Native"
           abstract="1"
           glib:type-name="GgitObject"
           glib:get-type="ggit_object_get_type"
           glib:type-struct="ObjectClass">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-object.c"
           line="26">Represents a generic object in a repository.</doc>
      <source-position filename="libgit2-glib/ggit-object.h" line="46"/>
      <method name="get_id" c:identifier="ggit_object_get_id">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-object.c"
             line="44">Gets the #GgitOId of @object.</doc>
        <source-position filename="libgit2-glib/ggit-object.h" line="48"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-object.c"
               line="50">the #GgitOId of the object or %NULL.</doc>
          <type name="OId" c:type="GgitOId*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-object.c"
                 line="46">a #GgitObject.</doc>
            <type name="Object" c:type="GgitObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_owner" c:identifier="ggit_object_get_owner">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-object.c"
             line="64">Gets the #GgitRepository that owns @object.</doc>
        <source-position filename="libgit2-glib/ggit-object.h" line="50"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-object.c"
               line="70">the #GgitRepository that owns this object or %NULL.
The returned value must be free'd calling g_object_unref().</doc>
          <type name="Repository" c:type="GgitRepository*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-object.c"
                 line="66">a #GgitObject.</doc>
            <type name="Object" c:type="GgitObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="Native" c:type="GgitNative"/>
      </field>
    </class>
    <record name="ObjectClass"
            c:type="GgitObjectClass"
            glib:is-gtype-struct-for="Object">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-object.h"
           line="36">The class structure for #GgitObjectClass.</doc>
      <source-position filename="libgit2-glib/ggit-object.h" line="46"/>
      <field name="parent_class" readable="0" private="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-object.h"
             line="38">The parent class.</doc>
        <type name="NativeClass" c:type="GgitNativeClass"/>
      </field>
    </record>
    <class name="ObjectFactory"
           c:symbol-prefix="object_factory"
           c:type="GgitObjectFactory"
           parent="GObject.Object"
           glib:type-name="GgitObjectFactory"
           glib:get-type="ggit_object_factory_get_type"
           glib:type-struct="ObjectFactoryClass">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-object-factory.c"
           line="30">Represents an object factory.</doc>
      <source-position filename="libgit2-glib/ggit-object-factory.h"
                       line="31"/>
      <function name="get_default"
                c:identifier="ggit_object_factory_get_default">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-object-factory.c"
             line="113">Get the default type factory instance.</doc>
        <source-position filename="libgit2-glib/ggit-object-factory.h"
                         line="33"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-object-factory.c"
               line="118">a #GgitObjectFactory.</doc>
          <type name="ObjectFactory" c:type="GgitObjectFactory*"/>
        </return-value>
      </function>
      <method name="construct" c:identifier="ggit_object_factory_construct">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-object-factory.c"
             line="188">Construct a new object.</doc>
        <source-position filename="libgit2-glib/ggit-object-factory.h"
                         line="43"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-object-factory.c"
               line="198">a #GObject or %NULL.</doc>
          <type name="GObject.Object" c:type="GObject*"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-object-factory.c"
                 line="190">a #GgitObjectFactory.</doc>
            <type name="ObjectFactory" c:type="GgitObjectFactory*"/>
          </instance-parameter>
          <parameter name="parent_class" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-object-factory.c"
                 line="191">a #GObjectClass.</doc>
            <type name="GObject.ObjectClass" c:type="GObjectClass*"/>
          </parameter>
          <parameter name="basetype" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-object-factory.c"
                 line="192">a #GType.</doc>
            <type name="GType" c:type="GType"/>
          </parameter>
          <parameter name="n_construct_properties" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-object-factory.c"
                 line="193">number of construct properties.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="construct_properties" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-object-factory.c"
                 line="194">a list of #GObjectConstructParam.</doc>
            <array length="2"
                   zero-terminated="0"
                   c:type="GObjectConstructParam*">
              <type name="GObject.ObjectConstructParam"
                    c:type="GObjectConstructParam"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <method name="register" c:identifier="ggit_object_factory_register">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-object-factory.c"
             line="135">Register @subtype as the instantiation class for @basetype. Each time an
object of type @basetype is going to be created, an instance of @subtype
is created instead. @basetype must be subclassed from #GgitObjectFactoryBase.</doc>
        <source-position filename="libgit2-glib/ggit-object-factory.h"
                         line="35"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-object-factory.c"
                 line="137">a #GgitObjectFactory.</doc>
            <type name="ObjectFactory" c:type="GgitObjectFactory*"/>
          </instance-parameter>
          <parameter name="basetype" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-object-factory.c"
                 line="138">a #GType.</doc>
            <type name="GType" c:type="GType"/>
          </parameter>
          <parameter name="subtype" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-object-factory.c"
                 line="139">a #GType.</doc>
            <type name="GType" c:type="GType"/>
          </parameter>
        </parameters>
      </method>
      <method name="unregister" c:identifier="ggit_object_factory_unregister">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-object-factory.c"
             line="160">Unregister a subtype from the factory.</doc>
        <source-position filename="libgit2-glib/ggit-object-factory.h"
                         line="39"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-object-factory.c"
                 line="162">a #GgitObjectFactory.</doc>
            <type name="ObjectFactory" c:type="GgitObjectFactory*"/>
          </instance-parameter>
          <parameter name="basetype" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-object-factory.c"
                 line="163">a #GType.</doc>
            <type name="GType" c:type="GType"/>
          </parameter>
          <parameter name="subtype" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-object-factory.c"
                 line="164">a #GType.</doc>
            <type name="GType" c:type="GType"/>
          </parameter>
        </parameters>
      </method>
    </class>
    <class name="ObjectFactoryBase"
           c:symbol-prefix="object_factory_base"
           c:type="GgitObjectFactoryBase"
           parent="GObject.Object"
           abstract="1"
           glib:type-name="GgitObjectFactoryBase"
           glib:get-type="ggit_object_factory_base_get_type"
           glib:type-struct="ObjectFactoryBaseClass">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-object-factory-base.c"
           line="24">Represents the base type for objects created by an object factory.</doc>
      <source-position filename="libgit2-glib/ggit-object-factory-base.h"
                       line="43"/>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="ObjectFactoryBaseClass"
            c:type="GgitObjectFactoryBaseClass"
            glib:is-gtype-struct-for="ObjectFactoryBase">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-object-factory-base.h"
           line="33">The class structure for #GgitObjectFactoryBaseClass.</doc>
      <source-position filename="libgit2-glib/ggit-object-factory-base.h"
                       line="43"/>
      <field name="parent_class" readable="0" private="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-object-factory-base.h"
             line="35">The parent class.</doc>
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="ObjectFactoryClass"
            c:type="GgitObjectFactoryClass"
            glib:is-gtype-struct-for="ObjectFactory">
      <source-position filename="libgit2-glib/ggit-object-factory.h"
                       line="31"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <function-macro name="PATCH" c:identifier="GGIT_PATCH" introspectable="0">
      <source-position filename="libgit2-glib/ggit-patch.h" line="34"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <enumeration name="PackbuilderStage"
                 glib:type-name="GgitPackbuilderStage"
                 glib:get-type="ggit_packbuilder_stage_get_type"
                 c:type="GgitPackbuilderStage">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="959">Valid stages for pack building.</doc>
      <member name="adding_objects"
              value="0"
              c:identifier="GGIT_PACKBUILDER_STAGE_ADDING_OBJECTS"
              glib:nick="adding-objects"
              glib:name="GGIT_PACKBUILDER_STAGE_ADDING_OBJECTS">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="961">adding objects.</doc>
      </member>
      <member name="deltafication"
              value="1"
              c:identifier="GGIT_PACKBUILDER_STAGE_DELTAFICATION"
              glib:nick="deltafication"
              glib:name="GGIT_PACKBUILDER_STAGE_DELTAFICATION">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="962">deltafication.</doc>
      </member>
    </enumeration>
    <record name="Patch"
            c:type="GgitPatch"
            opaque="1"
            glib:type-name="GgitPatch"
            glib:get-type="ggit_patch_get_type"
            c:symbol-prefix="patch">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="182">Represents a patch object.</doc>
      <source-position filename="libgit2-glib/ggit-types.h" line="187"/>
      <constructor name="new_from_blobs"
                   c:identifier="ggit_patch_new_from_blobs"
                   throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-patch.c"
             line="122">Directly generate a patch from the difference between two blobs.

This is just like ggit_diff_blobs() except it generates a patch object
for the difference instead of directly making callbacks.  You can use the
standard ggit_patch accessor functions to read the patch data, and
you must call ggit_patch_unref on the patch when done.</doc>
        <source-position filename="libgit2-glib/ggit-patch.h" line="48"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-patch.c"
               line="138">a newly created #GgitPatch or %NULL.</doc>
          <type name="Patch" c:type="GgitPatch*"/>
        </return-value>
        <parameters>
          <parameter name="old_blob"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-patch.c"
                 line="124">a #GgitBlob to diff from.</doc>
            <type name="Blob" c:type="GgitBlob*"/>
          </parameter>
          <parameter name="old_as_path"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-patch.c"
                 line="125">treat @old_blob as if it had this filename, or %NULL,</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="new_blob"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-patch.c"
                 line="126">a #GgitBlob to diff to.</doc>
            <type name="Blob" c:type="GgitBlob*"/>
          </parameter>
          <parameter name="new_as_path"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-patch.c"
                 line="127">treat @new_blob as if it had this filename, or %NULL,</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="diff_options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-patch.c"
                 line="128">a #GgitDiffOptions, or %NULL.</doc>
            <type name="DiffOptions" c:type="GgitDiffOptions*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_from_diff"
                   c:identifier="ggit_patch_new_from_diff"
                   throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-patch.c"
             line="87">The #GgitPatch is a newly created object contains the text diffs
for the delta.  You have to call ggit_patch_unref() when you are
done with it.  You can use the patch object to loop over all the hunks
and lines in the diff of the one delta.</doc>
        <source-position filename="libgit2-glib/ggit-patch.h" line="44"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-patch.c"
               line="98">a newly created #GgitPatch or %NULL.</doc>
          <type name="Patch" c:type="GgitPatch*"/>
        </return-value>
        <parameters>
          <parameter name="diff" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-patch.c"
                 line="89">a #GgitDiff.</doc>
            <type name="Diff" c:type="GgitDiff*"/>
          </parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-patch.c"
                 line="90">index into diff list.</doc>
            <type name="gsize" c:type="gsize"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_delta" c:identifier="ggit_patch_get_delta">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-patch.c"
             line="373">Get the diff delta corresponding to the patch.</doc>
        <source-position filename="libgit2-glib/ggit-patch.h" line="74"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-patch.c"
               line="379">the #GgitDiffDelta of the patch or %NULL.</doc>
          <type name="DiffDelta" c:type="GgitDiffDelta*"/>
        </return-value>
        <parameters>
          <instance-parameter name="patch" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-patch.c"
                 line="375">a #GgitPatch.</doc>
            <type name="Patch" c:type="GgitPatch*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_hunk" c:identifier="ggit_patch_get_hunk" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-patch.c"
             line="389">Get the @idx'th hunk in the patch.</doc>
        <source-position filename="libgit2-glib/ggit-patch.h" line="76"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-patch.c"
               line="397">a new #GgitDiffHunk or %NULL on error.</doc>
          <type name="DiffHunk" c:type="GgitDiffHunk*"/>
        </return-value>
        <parameters>
          <instance-parameter name="patch" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-patch.c"
                 line="391">a #GgitPatch</doc>
            <type name="Patch" c:type="GgitPatch*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-patch.c"
                 line="392">the hunk index.</doc>
            <type name="gsize" c:type="gsize"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_line_stats"
              c:identifier="ggit_patch_get_line_stats"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-patch.c"
             line="283">Get the line statistics of the patch.</doc>
        <source-position filename="libgit2-glib/ggit-patch.h" line="62"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-patch.c"
               line="293">%TRUE if successfull, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="patch" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-patch.c"
                 line="285">a #GgitPatch.</doc>
            <type name="Patch" c:type="GgitPatch*"/>
          </instance-parameter>
          <parameter name="total_context"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-patch.c"
                 line="286">return value for the number of context lines.</doc>
            <type name="gsize" c:type="gsize*"/>
          </parameter>
          <parameter name="total_additions"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-patch.c"
                 line="287">return value for the number of added lines.</doc>
            <type name="gsize" c:type="gsize*"/>
          </parameter>
          <parameter name="total_deletions"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-patch.c"
                 line="288">return value for the number of deleted lines.</doc>
            <type name="gsize" c:type="gsize*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_num_hunks" c:identifier="ggit_patch_get_num_hunks">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-patch.c"
             line="337">Get the number of hunks in the patch.</doc>
        <source-position filename="libgit2-glib/ggit-patch.h" line="68"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-patch.c"
               line="343">the number of hunks.</doc>
          <type name="gsize" c:type="gsize"/>
        </return-value>
        <parameters>
          <instance-parameter name="patch" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-patch.c"
                 line="339">a #GgitPatch.</doc>
            <type name="Patch" c:type="GgitPatch*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_num_lines_in_hunk"
              c:identifier="ggit_patch_get_num_lines_in_hunk">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-patch.c"
             line="354">Get the number of lines in @hunk.</doc>
        <source-position filename="libgit2-glib/ggit-patch.h" line="70"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-patch.c"
               line="361">the number of lines.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="patch" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-patch.c"
                 line="356">a #GgitPatch.</doc>
            <type name="Patch" c:type="GgitPatch*"/>
          </instance-parameter>
          <parameter name="hunk" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-patch.c"
                 line="357">the hunk index.</doc>
            <type name="gsize" c:type="gsize"/>
          </parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="ggit_patch_ref">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-patch.c"
             line="49">Atomically increments the reference count of @patch by one.
This function is MT-safe and may be called from any thread.</doc>
        <source-position filename="libgit2-glib/ggit-patch.h" line="40"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-patch.c"
               line="56">a #GgitPatch or %NULL.</doc>
          <type name="Patch" c:type="GgitPatch*"/>
        </return-value>
        <parameters>
          <instance-parameter name="patch" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-patch.c"
                 line="51">a #GgitPatch.</doc>
            <type name="Patch" c:type="GgitPatch*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="to_stream" c:identifier="ggit_patch_to_stream" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-patch.c"
             line="240">Write the contents of a patch to the provided stream.</doc>
        <source-position filename="libgit2-glib/ggit-patch.h" line="58"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-patch.c"
               line="248">%TRUE if the patch was written successfully, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="patch" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-patch.c"
                 line="242">a #GgitPatch.</doc>
            <type name="Patch" c:type="GgitPatch*"/>
          </instance-parameter>
          <parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-patch.c"
                 line="243">a #GOutputStream.</doc>
            <type name="Gio.OutputStream" c:type="GOutputStream*"/>
          </parameter>
        </parameters>
      </method>
      <method name="to_string" c:identifier="ggit_patch_to_string" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-patch.c"
             line="172">Gets the content of a patch as a single diff text.</doc>
        <source-position filename="libgit2-glib/ggit-patch.h" line="55"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-patch.c"
               line="179">the content of a patch as a single diff text or %NULL.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="patch" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-patch.c"
                 line="174">a #GgitPatch.</doc>
            <type name="Patch" c:type="GgitPatch*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="ggit_patch_unref">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-patch.c"
             line="68">Atomically decrements the reference count of @patch by one.
If the reference count drops to 0, @patch is freed.</doc>
        <source-position filename="libgit2-glib/ggit-patch.h" line="42"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="patch" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-patch.c"
                 line="70">a #GgitPatch.</doc>
            <type name="Patch" c:type="GgitPatch*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <class name="ProxyOptions"
           c:symbol-prefix="proxy_options"
           c:type="GgitProxyOptions"
           parent="GObject.Object"
           glib:type-name="GgitProxyOptions"
           glib:get-type="ggit_proxy_options_get_type"
           glib:type-struct="ProxyOptionsClass">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-proxy-options.c"
           line="23">Represents a git proxy options.</doc>
      <source-position filename="libgit2-glib/ggit-proxy-options.h" line="37"/>
      <constructor name="new" c:identifier="ggit_proxy_options_new">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-proxy-options.c"
             line="88">Create a new proxy options object.</doc>
        <source-position filename="libgit2-glib/ggit-proxy-options.h"
                         line="42"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-proxy-options.c"
               line="93">a #GgitProxyOptions.</doc>
          <type name="ProxyOptions" c:type="GgitProxyOptions*"/>
        </return-value>
      </constructor>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="ProxyOptionsClass"
            c:type="GgitProxyOptionsClass"
            glib:is-gtype-struct-for="ProxyOptions">
      <source-position filename="libgit2-glib/ggit-proxy-options.h" line="37"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <enumeration name="ProxyType"
                 glib:type-name="GgitProxyType"
                 glib:get-type="ggit_proxy_type_get_type"
                 c:type="GgitProxyType">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="613">The type of proxy to use.</doc>
      <member name="none"
              value="0"
              c:identifier="GGIT_PROXY_NONE"
              glib:nick="none"
              glib:name="GGIT_PROXY_NONE">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="615">Do not attempt to connect through a proxy.</doc>
      </member>
      <member name="auto"
              value="1"
              c:identifier="GGIT_PROXY_AUTO"
              glib:nick="auto"
              glib:name="GGIT_PROXY_AUTO">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="616">Try to auto-detect the proxy from the git configuration.</doc>
      </member>
      <member name="specified"
              value="2"
              c:identifier="GGIT_PROXY_SPECIFIED"
              glib:nick="specified"
              glib:name="GGIT_PROXY_SPECIFIED">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="617">Connect via the URL given in the options.</doc>
      </member>
    </enumeration>
    <class name="PushOptions"
           c:symbol-prefix="push_options"
           c:type="GgitPushOptions"
           parent="GObject.Object"
           glib:type-name="GgitPushOptions"
           glib:get-type="ggit_push_options_get_type"
           glib:type-struct="PushOptionsClass">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-push-options.c"
           line="23">Represents a git push options.</doc>
      <source-position filename="libgit2-glib/ggit-push-options.h" line="38"/>
      <constructor name="new" c:identifier="ggit_push_options_new">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-push-options.c"
             line="133">Create a new push options object.</doc>
        <source-position filename="libgit2-glib/ggit-push-options.h"
                         line="43"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-push-options.c"
               line="138">a #GgitPushOptions or %NULL.</doc>
          <type name="PushOptions" c:type="GgitPushOptions*"/>
        </return-value>
      </constructor>
      <method name="get_parallelism"
              c:identifier="ggit_push_options_get_parallelism"
              glib:get-property="parallelism">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-push-options.c"
             line="164">Get the number of parallel threads to use when creating the pack file
to push. The special value 0 indicates that the number of threads will
be automatically detected.</doc>
        <source-position filename="libgit2-glib/ggit-push-options.h"
                         line="45"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-push-options.c"
               line="172">the number of parallel threads, or 0 for auto-detect.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-push-options.c"
                 line="166">a #GgitPushOptions.</doc>
            <type name="PushOptions" c:type="GgitPushOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_remote_callbacks"
              c:identifier="ggit_push_options_get_remote_callbacks">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-push-options.c"
             line="238">gets the remote callbacks object</doc>
        <source-position filename="libgit2-glib/ggit-push-options.h"
                         line="49"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-push-options.c"
               line="244">the object's id or %NULL.</doc>
          <type name="RemoteCallbacks" c:type="GgitRemoteCallbacks*"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-push-options.c"
                 line="240">a #GgitPushOptions.</doc>
            <type name="PushOptions" c:type="GgitPushOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_parallelism"
              c:identifier="ggit_push_options_set_parallelism"
              glib:set-property="parallelism">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-push-options.c"
             line="187">Set the number of parallel threads to use when creating the pack file
to push. The special value 0 can be specified for @parallelism indicating that
the number of threads will be automatically detected.</doc>
        <source-position filename="libgit2-glib/ggit-push-options.h"
                         line="46"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-push-options.c"
                 line="189">a #GgitPushOptions.</doc>
            <type name="PushOptions" c:type="GgitPushOptions*"/>
          </instance-parameter>
          <parameter name="parallelism" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-push-options.c"
                 line="190">the number of threads, or 0 for auto-detect.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_remote_callbacks"
              c:identifier="ggit_push_options_set_remote_callbacks">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-push-options.c"
             line="212">Set the remote callbacks for the push options</doc>
        <source-position filename="libgit2-glib/ggit-push-options.h"
                         line="50"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-push-options.c"
                 line="214">a #GgitPushOptions.</doc>
            <type name="PushOptions" c:type="GgitPushOptions*"/>
          </instance-parameter>
          <parameter name="callbacks" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-push-options.c"
                 line="215">the #GgitRemoteCallbacks</doc>
            <type name="RemoteCallbacks" c:type="GgitRemoteCallbacks*"/>
          </parameter>
        </parameters>
      </method>
      <property name="callbacks" writable="1" transfer-ownership="none">
        <type name="RemoteCallbacks"/>
      </property>
      <property name="parallelism"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_parallelism"
                getter="get_parallelism"
                default-value="1">
        <type name="gint" c:type="gint"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="PushOptionsClass"
            c:type="GgitPushOptionsClass"
            glib:is-gtype-struct-for="PushOptions">
      <source-position filename="libgit2-glib/ggit-push-options.h" line="38"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <function-macro name="REBASE_OPERATION"
                    c:identifier="GGIT_REBASE_OPERATION"
                    introspectable="0">
      <source-position filename="libgit2-glib/ggit-rebase-operation.h"
                       line="33"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="REBASE_OPTIONS"
                    c:identifier="GGIT_REBASE_OPTIONS"
                    introspectable="0">
      <source-position filename="libgit2-glib/ggit-rebase-options.h"
                       line="34"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="REFLOG"
                    c:identifier="GGIT_REFLOG"
                    introspectable="0">
      <source-position filename="libgit2-glib/ggit-reflog.h" line="33"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="REFLOG_ENTRY"
                    c:identifier="GGIT_REFLOG_ENTRY"
                    introspectable="0">
      <source-position filename="libgit2-glib/ggit-reflog-entry.h" line="32"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="REF_SPEC"
                    c:identifier="GGIT_REF_SPEC"
                    introspectable="0">
      <source-position filename="libgit2-glib/ggit-ref-spec.h" line="32"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="REMOTE_HEAD"
                    c:identifier="GGIT_REMOTE_HEAD"
                    introspectable="0">
      <source-position filename="libgit2-glib/ggit-remote.h" line="45"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="REPOSITORY"
                    c:identifier="GGIT_REPOSITORY"
                    introspectable="0">
      <source-position filename="libgit2-glib/ggit-repository.h" line="50"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="REPOSITORY_CLASS"
                    c:identifier="GGIT_REPOSITORY_CLASS"
                    introspectable="0">
      <source-position filename="libgit2-glib/ggit-repository.h" line="51"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="REPOSITORY_GET_CLASS"
                    c:identifier="GGIT_REPOSITORY_GET_CLASS"
                    introspectable="0">
      <source-position filename="libgit2-glib/ggit-repository.h" line="54"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="REVERT_OPTIONS"
                    c:identifier="GGIT_REVERT_OPTIONS"
                    introspectable="0">
      <source-position filename="libgit2-glib/ggit-revert-options.h"
                       line="34"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <class name="Rebase"
           c:symbol-prefix="rebase"
           c:type="GgitRebase"
           parent="Native"
           glib:type-name="GgitRebase"
           glib:get-type="ggit_rebase_get_type"
           glib:type-struct="RebaseClass">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-rebase.c"
           line="30">Represents a rebase object.</doc>
      <source-position filename="libgit2-glib/ggit-rebase.h" line="35"/>
      <method name="abort" c:identifier="ggit_rebase_abort" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-rebase.c"
             line="206">Aborts a rebase that is currently in progress, resetting the repository
and working directory to their state before rebase began.</doc>
        <source-position filename="libgit2-glib/ggit-rebase.h" line="58"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="rebase" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-rebase.c"
                 line="208">a #GgitRebase.</doc>
            <type name="Rebase" c:type="GgitRebase*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="commit" c:identifier="ggit_rebase_commit" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-rebase.c"
             line="159">Commits the current patch.  You must have resolved any conflicts that
were introduced during the patch application from the ggit_rebase_next()
invocation.</doc>
        <source-position filename="libgit2-glib/ggit-rebase.h" line="52"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-rebase.c"
               line="173">a #GgitOId of the newly created commit or %NULL.</doc>
          <type name="OId" c:type="GgitOId*"/>
        </return-value>
        <parameters>
          <instance-parameter name="rebase" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-rebase.c"
                 line="161">a #GgitRebase.</doc>
            <type name="Rebase" c:type="GgitRebase*"/>
          </instance-parameter>
          <parameter name="author"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-rebase.c"
                 line="162">a #GgitSignature or %NULL to keep the author from
the original commit.</doc>
            <type name="Signature" c:type="GgitSignature*"/>
          </parameter>
          <parameter name="committer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-rebase.c"
                 line="164">a #GgitSignature.</doc>
            <type name="Signature" c:type="GgitSignature*"/>
          </parameter>
          <parameter name="message"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-rebase.c"
                 line="165">the message for this commit, or %NULL to use
the message from the original commit.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="finish" c:identifier="ggit_rebase_finish" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-rebase.c"
             line="231">Finishes a rebase that is currently in progress once all patches have
been applied.</doc>
        <source-position filename="libgit2-glib/ggit-rebase.h" line="61"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="rebase" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-rebase.c"
                 line="233">a #GgitRebase.</doc>
            <type name="Rebase" c:type="GgitRebase*"/>
          </instance-parameter>
          <parameter name="signature"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-rebase.c"
                 line="234">the identity that is finishing the rebase or %NULL.</doc>
            <type name="Signature" c:type="GgitSignature*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_operation_by_index"
              c:identifier="ggit_rebase_get_operation_by_index">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-rebase.c"
             line="102">Gets the rebase operation specified by @idx.</doc>
        <source-position filename="libgit2-glib/ggit-rebase.h" line="46"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-rebase.c"
               line="109">The rebase operation or %NULL if @idx was out of bounds.</doc>
          <type name="RebaseOperation" c:type="GgitRebaseOperation*"/>
        </return-value>
        <parameters>
          <instance-parameter name="rebase" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-rebase.c"
                 line="104">a #GgitRebase.</doc>
            <type name="Rebase" c:type="GgitRebase*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-rebase.c"
                 line="105">The index of the rebase operation to retrieve.</doc>
            <type name="gsize" c:type="gsize"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_operation_entry_count"
              c:identifier="ggit_rebase_get_operation_entry_count">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-rebase.c"
             line="67">Gets the count of rebase operations that are to be applied.</doc>
        <source-position filename="libgit2-glib/ggit-rebase.h" line="42"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-rebase.c"
               line="73">the count of rebase operations that are to be applied.</doc>
          <type name="gsize" c:type="gsize"/>
        </return-value>
        <parameters>
          <instance-parameter name="rebase" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-rebase.c"
                 line="69">a #GgitRebase.</doc>
            <type name="Rebase" c:type="GgitRebase*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_operation_index"
              c:identifier="ggit_rebase_get_operation_index">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-rebase.c"
             line="83">Gets the index of the rebase operation that is currently being applied.
If the first operation has not yet been applied (because you have
called ggit_repository_rebase_init() but not yet ggit_rebase_next())
then this returns @GGIT_REBASE_NO_OPERATION.</doc>
        <source-position filename="libgit2-glib/ggit-rebase.h" line="44"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-rebase.c"
               line="92">The index of the rebase operation currently being applied.</doc>
          <type name="gsize" c:type="gsize"/>
        </return-value>
        <parameters>
          <instance-parameter name="rebase" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-rebase.c"
                 line="85">a #GgitRebase.</doc>
            <type name="Rebase" c:type="GgitRebase*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="next" c:identifier="ggit_rebase_next" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-rebase.c"
             line="124">Performs the next rebase operation and returns the information about it.
If the operation is one that applies a patch (which is any operation except
@GGIT_REBASE_OPERATION_EXEC) then the patch will be applied and the index and
working directory will be updated with the changes. If there are conflicts,
you will need to address those before committing the changes.</doc>
        <source-position filename="libgit2-glib/ggit-rebase.h" line="49"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-rebase.c"
               line="135">the rebase operation that is to be performed next or %NULL.</doc>
          <type name="RebaseOperation" c:type="GgitRebaseOperation*"/>
        </return-value>
        <parameters>
          <instance-parameter name="rebase" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-rebase.c"
                 line="126">a #GgitRebase.</doc>
            <type name="Rebase" c:type="GgitRebase*"/>
          </instance-parameter>
        </parameters>
      </method>
    </class>
    <record name="RebaseClass"
            c:type="GgitRebaseClass"
            glib:is-gtype-struct-for="Rebase">
      <source-position filename="libgit2-glib/ggit-rebase.h" line="35"/>
      <field name="parent_class">
        <type name="NativeClass" c:type="GgitNativeClass"/>
      </field>
    </record>
    <record name="RebaseOperation"
            c:type="GgitRebaseOperation"
            opaque="1"
            glib:type-name="GgitRebaseOperation"
            glib:get-type="ggit_rebase_operation_get_type"
            c:symbol-prefix="rebase_operation">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="189">Represents a rebase operation.</doc>
      <source-position filename="libgit2-glib/ggit-types.h" line="194"/>
      <method name="get_exec" c:identifier="ggit_rebase_operation_get_exec">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-rebase-operation.c"
             line="124">Gets the executable the user has requested be run.  This will only
be populated for operations of type @GGIT_REBASE_OPERATION_EXEC.</doc>
        <source-position filename="libgit2-glib/ggit-rebase-operation.h"
                         line="48"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-rebase-operation.c"
               line="131">the executable the user has requested be run or %NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="rebase_operation"
                              transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-rebase-operation.c"
                 line="126">a #GgitRebaseOperation.</doc>
            <type name="RebaseOperation" c:type="GgitRebaseOperation*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_id" c:identifier="ggit_rebase_operation_get_id">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-rebase-operation.c"
             line="107">Gets the commit ID being cherry-picked. This will be populated for
all operations except those of type @GGIT_REBASE_OPERATION_EXEC.</doc>
        <source-position filename="libgit2-glib/ggit-rebase-operation.h"
                         line="46"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-rebase-operation.c"
               line="114">the commit ID being cherry-picked or %NULL.</doc>
          <type name="OId" c:type="GgitOId*"/>
        </return-value>
        <parameters>
          <instance-parameter name="rebase_operation"
                              transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-rebase-operation.c"
                 line="109">a #GgitRebaseOperation.</doc>
            <type name="RebaseOperation" c:type="GgitRebaseOperation*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_operation_type"
              c:identifier="ggit_rebase_operation_get_operation_type">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-rebase-operation.c"
             line="91">Gets the type of rebase operation.</doc>
        <source-position filename="libgit2-glib/ggit-rebase-operation.h"
                         line="44"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-rebase-operation.c"
               line="97">a #GgitRebaseOperationType.</doc>
          <type name="RebaseOperationType" c:type="GgitRebaseOperationType"/>
        </return-value>
        <parameters>
          <instance-parameter name="rebase_operation"
                              transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-rebase-operation.c"
                 line="93">a #GgitRebaseOperation.</doc>
            <type name="RebaseOperation" c:type="GgitRebaseOperation*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="ggit_rebase_operation_ref">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-rebase-operation.c"
             line="54">Atomically increments the reference count of @rebase_operation by one.
This function is MT-safe and may be called from any thread.</doc>
        <source-position filename="libgit2-glib/ggit-rebase-operation.h"
                         line="41"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-rebase-operation.c"
               line="61">a newly allocated #GgitRebaseOperation or %NULL.</doc>
          <type name="RebaseOperation" c:type="GgitRebaseOperation*"/>
        </return-value>
        <parameters>
          <instance-parameter name="rebase_operation"
                              transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-rebase-operation.c"
                 line="56">a #GgitRebaseOperation.</doc>
            <type name="RebaseOperation" c:type="GgitRebaseOperation*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="ggit_rebase_operation_unref">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-rebase-operation.c"
             line="73">Atomically decrements the reference count of @rebase_operation by one.
If the reference count drops to 0, @rebase_operation is freed.</doc>
        <source-position filename="libgit2-glib/ggit-rebase-operation.h"
                         line="42"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="rebase_operation"
                              transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-rebase-operation.c"
                 line="75">a #GgitRebaseOperation.</doc>
            <type name="RebaseOperation" c:type="GgitRebaseOperation*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <enumeration name="RebaseOperationType"
                 glib:type-name="GgitRebaseOperationType"
                 glib:get-type="ggit_rebase_operation_type_get_type"
                 c:type="GgitRebaseOperationType">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="627">Type of rebase operation in-progress.</doc>
      <member name="pick"
              value="0"
              c:identifier="GGIT_REBASE_OPERATION_PICK"
              glib:nick="pick"
              glib:name="GGIT_REBASE_OPERATION_PICK">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="629">The given commit is to be cherry-picked.
The client should commit the changes and continue if there are no conflicts.</doc>
      </member>
      <member name="reword"
              value="1"
              c:identifier="GGIT_REBASE_OPERATION_REWORD"
              glib:nick="reword"
              glib:name="GGIT_REBASE_OPERATION_REWORD">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="631">The given commit is to be cherry-picked,
but the client should prompt the user to provide an updated commit message.</doc>
      </member>
      <member name="edit"
              value="2"
              c:identifier="GGIT_REBASE_OPERATION_EDIT"
              glib:nick="edit"
              glib:name="GGIT_REBASE_OPERATION_EDIT">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="633">The given commit is to be cherry-picked,
but the client should stop to allow the user to edit the changes before
committing them.</doc>
      </member>
      <member name="squash"
              value="3"
              c:identifier="GGIT_REBASE_OPERATION_SQUASH"
              glib:nick="squash"
              glib:name="GGIT_REBASE_OPERATION_SQUASH">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="636">The given commit is to be squashed into
the previous commit. The commit message will be merged with the previous message.</doc>
      </member>
      <member name="fixup"
              value="4"
              c:identifier="GGIT_REBASE_OPERATION_FIXUP"
              glib:nick="fixup"
              glib:name="GGIT_REBASE_OPERATION_FIXUP">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="638">The given commit is to be squashed into the
previous commit. The commit message from this commit will be discarded.</doc>
      </member>
      <member name="exec"
              value="5"
              c:identifier="GGIT_REBASE_OPERATION_EXEC"
              glib:nick="exec"
              glib:name="GGIT_REBASE_OPERATION_EXEC">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="640">No commit will be cherry-picked.
The client should run the given command and (if successful) continue.</doc>
      </member>
    </enumeration>
    <record name="RebaseOptions"
            c:type="GgitRebaseOptions"
            opaque="1"
            glib:type-name="GgitRebaseOptions"
            glib:get-type="ggit_rebase_options_get_type"
            c:symbol-prefix="rebase_options">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="196">Represents the options used when rebasing.</doc>
      <source-position filename="libgit2-glib/ggit-types.h" line="201"/>
      <constructor name="new" c:identifier="ggit_rebase_options_new">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-rebase-options.c"
             line="91">Creates a new #GgitRebaseOptions.</doc>
        <source-position filename="libgit2-glib/ggit-rebase-options.h"
                         line="44"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-rebase-options.c"
               line="96">a newly allocated #GgitRebaseOptions.</doc>
          <type name="RebaseOptions" c:type="GgitRebaseOptions*"/>
        </return-value>
      </constructor>
      <method name="copy" c:identifier="ggit_rebase_options_copy">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-rebase-options.c"
             line="47">Copies @rebase_options into a newly allocated #GgitRebaseOptions.</doc>
        <source-position filename="libgit2-glib/ggit-rebase-options.h"
                         line="41"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-rebase-options.c"
               line="53">a newly allocated #GgitRebaseOptions or %NULL.</doc>
          <type name="RebaseOptions" c:type="GgitRebaseOptions*"/>
        </return-value>
        <parameters>
          <instance-parameter name="rebase_options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-rebase-options.c"
                 line="49">a #GgitRebaseOptions.</doc>
            <type name="RebaseOptions" c:type="GgitRebaseOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="ggit_rebase_options_free">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-rebase-options.c"
             line="75">Frees @rebase_options.</doc>
        <source-position filename="libgit2-glib/ggit-rebase-options.h"
                         line="42"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="rebase_options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-rebase-options.c"
                 line="77">a #GgitRebaseOptions.</doc>
            <type name="RebaseOptions" c:type="GgitRebaseOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_checkout_options"
              c:identifier="ggit_rebase_options_get_checkout_options">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-rebase-options.c"
             line="186">Get the checkout options object or %NULL if not set.</doc>
        <source-position filename="libgit2-glib/ggit-rebase-options.h"
                         line="54"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-rebase-options.c"
               line="192">the checkout options or %NULL.</doc>
          <type name="CheckoutOptions" c:type="GgitCheckoutOptions*"/>
        </return-value>
        <parameters>
          <instance-parameter name="rebase_options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-rebase-options.c"
                 line="188">a #GgitRebaseOptions.</doc>
            <type name="RebaseOptions" c:type="GgitRebaseOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_quiet" c:identifier="ggit_rebase_options_get_quiet">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-rebase-options.c"
             line="110">Gets whether you want a quiet rebase experience.</doc>
        <source-position filename="libgit2-glib/ggit-rebase-options.h"
                         line="46"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-rebase-options.c"
               line="116">returns whether you want a quiet rebase experience.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="rebase_options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-rebase-options.c"
                 line="112">a #GgitRebaseOptions.</doc>
            <type name="RebaseOptions" c:type="GgitRebaseOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_rewrite_notes_ref"
              c:identifier="ggit_rebase_options_get_rewrite_notes_ref">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-rebase-options.c"
             line="146">Gets the the name of the notes reference used to rewrite notes for rebased
commits when finishing the rebase or %NULL if not set.</doc>
        <source-position filename="libgit2-glib/ggit-rebase-options.h"
                         line="50"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-rebase-options.c"
               line="153">the name of the notes reference or %NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="rebase_options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-rebase-options.c"
                 line="148">a #GgitRebaseOptions.</doc>
            <type name="RebaseOptions" c:type="GgitRebaseOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_checkout_options"
              c:identifier="ggit_rebase_options_set_checkout_options">
        <source-position filename="libgit2-glib/ggit-rebase-options.h"
                         line="55"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="rebase_options" transfer-ownership="none">
            <type name="RebaseOptions" c:type="GgitRebaseOptions*"/>
          </instance-parameter>
          <parameter name="checkout_options" transfer-ownership="none">
            <type name="CheckoutOptions" c:type="GgitCheckoutOptions*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_quiet" c:identifier="ggit_rebase_options_set_quiet">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-rebase-options.c"
             line="126">Used by ggit_rebase_init(), this will instruct other clients working
on this rebase that you want a quiet rebase experience, which they
may choose to provide in an application-specific manner.  This has no
effect upon libgit2-glib directly, but is provided for interoperability
between Git tools.</doc>
        <source-position filename="libgit2-glib/ggit-rebase-options.h"
                         line="47"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="rebase_options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-rebase-options.c"
                 line="128">a #GgitRebaseOptions.</doc>
            <type name="RebaseOptions" c:type="GgitRebaseOptions*"/>
          </instance-parameter>
          <parameter name="quiet" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-rebase-options.c"
                 line="129">whether you want a quiet rebase experience.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_rewrite_notes_ref"
              c:identifier="ggit_rebase_options_set_rewrite_notes_ref">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-rebase-options.c"
             line="163">Used by ggit_rebase_finish(), this is the name of the notes reference
used to rewrite notes for rebased commits when finishing the rebase;
if %NULL, the contents of the configuration option `notes.rewriteRef`
is examined, unless the configuration option `notes.rewrite.rebase`
is set to false.  If `notes.rewriteRef` is also %NULL, notes will
not be rewritten.</doc>
        <source-position filename="libgit2-glib/ggit-rebase-options.h"
                         line="51"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="rebase_options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-rebase-options.c"
                 line="165">a #GgitRebaseOptions.</doc>
            <type name="RebaseOptions" c:type="GgitRebaseOptions*"/>
          </instance-parameter>
          <parameter name="rewrite_notes_ref" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-rebase-options.c"
                 line="166">the name of the notes reference.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
    </record>
    <class name="Ref"
           c:symbol-prefix="ref"
           c:type="GgitRef"
           parent="Native"
           glib:type-name="GgitRef"
           glib:get-type="ggit_ref_get_type"
           glib:type-struct="RefClass">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="203">Reprensents a git reference.</doc>
      <source-position filename="libgit2-glib/ggit-ref.h" line="45"/>
      <function name="is_valid_name" c:identifier="ggit_ref_is_valid_name">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-ref.c"
             line="72">Check if the given @name is a valid name for a reference. Note that @name
should be the full ref name (including prefixes).

Valid toplevel names can contain only capital letters and underscores
and must start and end with a letter (e.g. HEAD, ORIG_HEAD).

Valid refs/ names may contain any characters, except '~', '^', ':', '\', '?',
'[', '*', ".." and "@{", because they are interpreted by revparse.</doc>
        <source-position filename="libgit2-glib/ggit-ref.h" line="50"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-ref.c"
               line="85">%TRUE if @name is valid, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-ref.c"
                 line="74">the name to validate.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <method name="delete" c:identifier="ggit_ref_delete" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-ref.c"
             line="412">Deletes @ref.

This method works for both direct and symbolic references.

The reference will be immediately removed on disk and from
memory. The given reference pointer will no longer be valid.</doc>
        <source-position filename="libgit2-glib/ggit-ref.h" line="83"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="ref" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-ref.c"
                 line="414">a #GgitRef.</doc>
            <type name="Ref" c:type="GgitRef*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="delete_log" c:identifier="ggit_ref_delete_log" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-ref.c"
             line="546">Deletes the log for @ref, on error @error is set.</doc>
        <source-position filename="libgit2-glib/ggit-ref.h" line="94"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="ref" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-ref.c"
                 line="548">a #GgitRef.</doc>
            <type name="Ref" c:type="GgitRef*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_log" c:identifier="ggit_ref_get_log" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-ref.c"
             line="510">Gets the #GgitReflog for @ref. The reflog will be created if it doesn't exist
yet.</doc>
        <source-position filename="libgit2-glib/ggit-ref.h" line="91"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-ref.c"
               line="518">the reflog or %NULL.</doc>
          <type name="Reflog" c:type="GgitReflog*"/>
        </return-value>
        <parameters>
          <instance-parameter name="ref" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-ref.c"
                 line="512">a #GgitRef.</doc>
            <type name="Ref" c:type="GgitRef*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="ggit_ref_get_name">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-ref.c"
             line="158">Gets the full name of @ref.</doc>
        <source-position filename="libgit2-glib/ggit-ref.h" line="58"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-ref.c"
               line="164">the full name of a reference or %NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="ref" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-ref.c"
                 line="160">a #GgitRef.</doc>
            <type name="Ref" c:type="GgitRef*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_owner" c:identifier="ggit_ref_get_owner">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-ref.c"
             line="245">Gets the repository where @ref resides.</doc>
        <source-position filename="libgit2-glib/ggit-ref.h" line="65"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-ref.c"
               line="251">the repository where a reference resides or %NULL.</doc>
          <type name="Repository" c:type="GgitRepository*"/>
        </return-value>
        <parameters>
          <instance-parameter name="ref" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-ref.c"
                 line="247">a #GgitRef.</doc>
            <type name="Ref" c:type="GgitRef*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_reference_type"
              c:identifier="ggit_ref_get_reference_type">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-ref.c"
             line="141">Gets the type of @ref. Either direct (#GGIT_REF_OID) or
symbolic (#GGIT_REF_SYMBOLIC).</doc>
        <source-position filename="libgit2-glib/ggit-ref.h" line="56"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-ref.c"
               line="148">the type of a reference.</doc>
          <type name="RefType" c:type="GgitRefType"/>
        </return-value>
        <parameters>
          <instance-parameter name="ref" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-ref.c"
                 line="143">a #GgitRef.</doc>
            <type name="Ref" c:type="GgitRef*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_shorthand" c:identifier="ggit_ref_get_shorthand">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-ref.c"
             line="174">Gets the shorthand name of @ref.</doc>
        <source-position filename="libgit2-glib/ggit-ref.h" line="59"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-ref.c"
               line="180">the shorthand name of a reference or %NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="ref" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-ref.c"
                 line="176">a #GgitRef</doc>
            <type name="Ref" c:type="GgitRef*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_symbolic_target"
              c:identifier="ggit_ref_get_symbolic_target">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-ref.c"
             line="124">Get full name to the reference pointed to by a symbolic reference.
Only available if the reference is symbolic.</doc>
        <source-position filename="libgit2-glib/ggit-ref.h" line="54"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-ref.c"
               line="131">the name if available, %NULL otherwise.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="ref" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-ref.c"
                 line="126">a #GgitRef.</doc>
            <type name="Ref" c:type="GgitRef*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_target" c:identifier="ggit_ref_get_target">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-ref.c"
             line="96">Get the OID pointed to by a direct reference.
Only available if the reference is direct (i.e. an object id reference,
not a symbolic one).</doc>
        <source-position filename="libgit2-glib/ggit-ref.h" line="52"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-ref.c"
               line="104">a new oid if available, %NULL otherwise.</doc>
          <type name="OId" c:type="GgitOId*"/>
        </return-value>
        <parameters>
          <instance-parameter name="ref" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-ref.c"
                 line="98">a #GgitRef.</doc>
            <type name="Ref" c:type="GgitRef*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_log" c:identifier="ggit_ref_has_log">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-ref.c"
             line="488">Get whether @ref has an existing log.</doc>
        <source-position filename="libgit2-glib/ggit-ref.h" line="89"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-ref.c"
               line="494">%TRUE if @ref has a log, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="ref" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-ref.c"
                 line="490">a #GgitRef.</doc>
            <type name="Ref" c:type="GgitRef*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_branch" c:identifier="ggit_ref_is_branch">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-ref.c"
             line="608">Check whether the reference is a branch.</doc>
        <source-position filename="libgit2-glib/ggit-ref.h" line="99"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-ref.c"
               line="614">%TRUE if the reference is a branch, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="ref" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-ref.c"
                 line="610">a #GgitRef.</doc>
            <type name="Ref" c:type="GgitRef*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_note" c:identifier="ggit_ref_is_note">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-ref.c"
             line="625">Check whether the reference is a note.</doc>
        <source-position filename="libgit2-glib/ggit-ref.h" line="100"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-ref.c"
               line="631">%TRUE if the reference is a note, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="ref" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-ref.c"
                 line="627">a #GgitRef.</doc>
            <type name="Ref" c:type="GgitRef*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_remote" c:identifier="ggit_ref_is_remote">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-ref.c"
             line="591">Check whether the reference is a remote.</doc>
        <source-position filename="libgit2-glib/ggit-ref.h" line="98"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-ref.c"
               line="597">%TRUE if the reference is a remote, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="ref" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-ref.c"
                 line="593">a #GgitRef.</doc>
            <type name="Ref" c:type="GgitRef*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_tag" c:identifier="ggit_ref_is_tag">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-ref.c"
             line="574">Check whether the reference is a tag.</doc>
        <source-position filename="libgit2-glib/ggit-ref.h" line="97"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-ref.c"
               line="580">%TRUE if the reference is a tag, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="ref" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-ref.c"
                 line="576">a #GgitRef.</doc>
            <type name="Ref" c:type="GgitRef*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="lookup" c:identifier="ggit_ref_lookup" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-ref.c"
             line="441">Convenient method to resolve a reference to an object.</doc>
        <source-position filename="libgit2-glib/ggit-ref.h" line="86"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-ref.c"
               line="448">a #GgitObject or %NULL.</doc>
          <type name="Object" c:type="GgitObject*"/>
        </return-value>
        <parameters>
          <instance-parameter name="ref" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-ref.c"
                 line="443">a #GgitRef.</doc>
            <type name="Ref" c:type="GgitRef*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="rename" c:identifier="ggit_ref_rename" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-ref.c"
             line="351">Rename an existing reference.

This method works for both direct and symbolic references.

The new name will be checked for validity.
See `ggit_ref_create_symbolic()` for rules about valid names.

If not error, @ref will be deleted from disk and a
new #GgitRef will be returned.

The reference will be immediately renamed in-memory and on disk.

If the `force` flag is not enabled, and there's already
a reference with the given name, the renaming will fail.

IMPORTANT:
The user needs to write a proper reflog entry if the
reflog is enabled for the repository. We only rename
the reflog if it exists.</doc>
        <source-position filename="libgit2-glib/ggit-ref.h" line="77"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-ref.c"
               line="379">a newly created #GgitRef or %NULL.</doc>
          <type name="Ref" c:type="GgitRef*"/>
        </return-value>
        <parameters>
          <instance-parameter name="ref" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-ref.c"
                 line="353">a #GgitRef.</doc>
            <type name="Ref" c:type="GgitRef*"/>
          </instance-parameter>
          <parameter name="new_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-ref.c"
                 line="354">the new name.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="force" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-ref.c"
                 line="355">%TRUE to force the renaming.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="log_message" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-ref.c"
                 line="356">The one line long message to be appended to the reflog.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="resolve" c:identifier="ggit_ref_resolve" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-ref.c"
             line="205">Resolves a symbolic reference.

This method iteratively peels a symbolic reference
until it resolves to a direct reference to an OID.

If a direct reference is passed as an argument,
that reference is returned immediately.</doc>
        <source-position filename="libgit2-glib/ggit-ref.h" line="62"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-ref.c"
               line="218">the resolved reference to the peeled one or %NULL.</doc>
          <type name="Ref" c:type="GgitRef*"/>
        </return-value>
        <parameters>
          <instance-parameter name="ref" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-ref.c"
                 line="207">a #GgitRef.</doc>
            <type name="Ref" c:type="GgitRef*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_symbolic_target"
              c:identifier="ggit_ref_set_symbolic_target"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-ref.c"
             line="262">Create a new reference with the same name as the given reference but a
different symbolic target. The reference must be a symbolic reference,
otherwise this will fail.

The new reference will be written to disk, overwriting the given reference.

The target name will be checked for validity.
See `ggit_ref_create_symbolic()` for rules about valid names.</doc>
        <source-position filename="libgit2-glib/ggit-ref.h" line="67"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-ref.c"
               line="279">the newly created #GgitRef or %NULL.</doc>
          <type name="Ref" c:type="GgitRef*"/>
        </return-value>
        <parameters>
          <instance-parameter name="ref" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-ref.c"
                 line="264">a #GgitRef.</doc>
            <type name="Ref" c:type="GgitRef*"/>
          </instance-parameter>
          <parameter name="target" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-ref.c"
                 line="265">The new target for the reference.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="log_message"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-ref.c"
                 line="266">The one line long message to be appended to the
reflog.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_target" c:identifier="ggit_ref_set_target" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-ref.c"
             line="308">Create a new reference with the same name as the given reference but a
different OID target. The reference must be a direct reference, otherwise
this will fail.

The new reference will be written to disk, overwriting the given reference.</doc>
        <source-position filename="libgit2-glib/ggit-ref.h" line="72"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-ref.c"
               line="322">the newly created #GgitRef or %NULL.</doc>
          <type name="Ref" c:type="GgitRef*"/>
        </return-value>
        <parameters>
          <instance-parameter name="ref" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-ref.c"
                 line="310">a #GgitRef.</doc>
            <type name="Ref" c:type="GgitRef*"/>
          </instance-parameter>
          <parameter name="oid" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-ref.c"
                 line="311">a #GgitOId.</doc>
            <type name="OId" c:type="GgitOId*"/>
          </parameter>
          <parameter name="log_message"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-ref.c"
                 line="312">The one line long message to be appended to the
reflog.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="to_string" c:identifier="ggit_ref_to_string">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-ref.c"
             line="190">Get a string representation of the ref.</doc>
        <source-position filename="libgit2-glib/ggit-ref.h" line="60"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-ref.c"
               line="196">a string representation of the ref or %NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="ref" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-ref.c"
                 line="192">a #GgitRef.</doc>
            <type name="Ref" c:type="GgitRef*"/>
          </instance-parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="Native" c:type="GgitNative"/>
      </field>
    </class>
    <record name="RefClass"
            c:type="GgitRefClass"
            glib:is-gtype-struct-for="Ref">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-ref.h"
           line="35">The class structure for #GgitRefClass.</doc>
      <source-position filename="libgit2-glib/ggit-ref.h" line="45"/>
      <field name="parent_class" readable="0" private="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-ref.h"
             line="37">The parent class.</doc>
        <type name="NativeClass" c:type="GgitNativeClass"/>
      </field>
    </record>
    <record name="RefSpec"
            c:type="GgitRefSpec"
            opaque="1"
            glib:type-name="GgitRefSpec"
            glib:get-type="ggit_ref_spec_get_type"
            c:symbol-prefix="ref_spec">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="210">Reprensents a git reference specification.</doc>
      <source-position filename="libgit2-glib/ggit-types.h" line="215"/>
      <method name="get_destination"
              c:identifier="ggit_ref_spec_get_destination">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-ref-spec.c"
             line="103">Gets the @refspec's destination.</doc>
        <source-position filename="libgit2-glib/ggit-ref-spec.h" line="42"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-ref-spec.c"
               line="109">the refspec's destination or %NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="refspec" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-ref-spec.c"
                 line="105">a #GgitRefSpec.</doc>
            <type name="RefSpec" c:type="GgitRefSpec*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_source" c:identifier="ggit_ref_spec_get_source">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-ref-spec.c"
             line="87">Gets the @refspec's source.</doc>
        <source-position filename="libgit2-glib/ggit-ref-spec.h" line="41"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-ref-spec.c"
               line="93">the refspec's source or %NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="refspec" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-ref-spec.c"
                 line="89">a #GgitRefSpec.</doc>
            <type name="RefSpec" c:type="GgitRefSpec*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_forced" c:identifier="ggit_ref_spec_is_forced">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-ref-spec.c"
             line="119">Whether updating is done forcefully.</doc>
        <source-position filename="libgit2-glib/ggit-ref-spec.h" line="43"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-ref-spec.c"
               line="125">if updating is done forcefully.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="refspec" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-ref-spec.c"
                 line="121">a #GgitRefSpec.</doc>
            <type name="RefSpec" c:type="GgitRefSpec*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="ggit_ref_spec_ref">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-ref-spec.c"
             line="50">Atomically increments the reference count of @refspec by one.
This function is MT-safe and may be called from any thread.</doc>
        <source-position filename="libgit2-glib/ggit-ref-spec.h" line="38"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-ref-spec.c"
               line="57">a #GgitRefSpec or %NULL.</doc>
          <type name="RefSpec" c:type="GgitRefSpec*"/>
        </return-value>
        <parameters>
          <instance-parameter name="refspec" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-ref-spec.c"
                 line="52">a #GgitRefSpec.</doc>
            <type name="RefSpec" c:type="GgitRefSpec*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="ggit_ref_spec_unref">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-ref-spec.c"
             line="69">Atomically decrements the reference count of @refspec by one.
If the reference count drops to 0, @refspec is freed.</doc>
        <source-position filename="libgit2-glib/ggit-ref-spec.h" line="39"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="refspec" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-ref-spec.c"
                 line="71">a #GgitRefSpec.</doc>
            <type name="RefSpec" c:type="GgitRefSpec*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <enumeration name="RefType"
                 glib:type-name="GgitRefType"
                 glib:get-type="ggit_ref_type_get_type"
                 c:type="GgitRefType">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="690">Describes the type a reference is.</doc>
      <member name="invalid"
              value="0"
              c:identifier="GGIT_REF_INVALID"
              glib:nick="invalid"
              glib:name="GGIT_REF_INVALID">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="692">An invalid reference.</doc>
      </member>
      <member name="oid"
              value="1"
              c:identifier="GGIT_REF_OID"
              glib:nick="oid"
              glib:name="GGIT_REF_OID">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="693">A reference which points at an object id.</doc>
      </member>
      <member name="symbolic"
              value="2"
              c:identifier="GGIT_REF_SYMBOLIC"
              glib:nick="symbolic"
              glib:name="GGIT_REF_SYMBOLIC">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="694">A reference which points at another reference.</doc>
      </member>
      <member name="listall"
              value="3"
              c:identifier="GGIT_REF_LISTALL"
              glib:nick="listall"
              glib:name="GGIT_REF_LISTALL">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="695">All reference types.</doc>
      </member>
    </enumeration>
    <callback name="ReferencesCallback" c:type="GgitReferencesCallback">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="1170">The type of the callback functions for retrieving the references
in a #GgitRepository. See ggit_repository_references_foreach().</doc>
      <source-position filename="libgit2-glib/ggit-types.h" line="1180"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="1178">0 to go for the next references or a #GgitError in case there was an error.</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="reference" transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-types.h"
               line="1172">the reference.</doc>
          <type name="Ref" c:type="GgitRef*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-types.h"
               line="1173">user-supplied data.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="ReferencesNameCallback"
              c:type="GgitReferencesNameCallback">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="1157">The type of the callback functions for retrieving the references
in a #GgitRepository. See ggit_repository_references_foreach_name().</doc>
      <source-position filename="libgit2-glib/ggit-types.h" line="1167"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="1165">0 to go for the next references or a #GgitError in case there was an error.</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-types.h"
               line="1159">the name of the reference</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-types.h"
               line="1160">user-supplied data.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <record name="Reflog"
            c:type="GgitReflog"
            opaque="1"
            glib:type-name="GgitReflog"
            glib:get-type="ggit_reflog_get_type"
            c:symbol-prefix="reflog">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="217">Represents a reflog.</doc>
      <source-position filename="libgit2-glib/ggit-types.h" line="222"/>
      <method name="append" c:identifier="ggit_reflog_append" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-reflog.c"
             line="201">Creates a reflog entry.</doc>
        <source-position filename="libgit2-glib/ggit-reflog.h" line="54"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-reflog.c"
               line="211">%TRUE if the reflog was successfully created, or %FALSE if error is set.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="reflog" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-reflog.c"
                 line="203">a #GgitReflog.</doc>
            <type name="Reflog" c:type="GgitReflog*"/>
          </instance-parameter>
          <parameter name="oid" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-reflog.c"
                 line="204">a #GgitOId.</doc>
            <type name="OId" c:type="GgitOId*"/>
          </parameter>
          <parameter name="committer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-reflog.c"
                 line="205">a #GgitSignature.</doc>
            <type name="Signature" c:type="GgitSignature*"/>
          </parameter>
          <parameter name="message" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-reflog.c"
                 line="206">the message.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_entry_count"
              c:identifier="ggit_reflog_get_entry_count">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-reflog.c"
             line="122">Gets the number of log entries in @reflog.</doc>
        <source-position filename="libgit2-glib/ggit-reflog.h" line="43"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-reflog.c"
               line="128">the number of log entries.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="reflog" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-reflog.c"
                 line="124">a #GgitReflog.</doc>
            <type name="Reflog" c:type="GgitReflog*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_entry_from_index"
              c:identifier="ggit_reflog_get_entry_from_index">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-reflog.c"
             line="138">Gets the #GgitReflogEntry at @idx in @reflog, or %NULL if not found.</doc>
        <source-position filename="libgit2-glib/ggit-reflog.h" line="44"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-reflog.c"
               line="145">the reflog entry at the index, or %NULL if not found.</doc>
          <type name="ReflogEntry" c:type="GgitReflogEntry*"/>
        </return-value>
        <parameters>
          <instance-parameter name="reflog" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-reflog.c"
                 line="140">a #GgitReflog.</doc>
            <type name="Reflog" c:type="GgitReflog*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-reflog.c"
                 line="141">the position to lookup.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="ggit_reflog_ref">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-reflog.c"
             line="52">Atomically increments the reference count of @reflog by one.
This function is MT-safe and may be called from any thread.</doc>
        <source-position filename="libgit2-glib/ggit-reflog.h" line="40"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-reflog.c"
               line="59">the passed in #GgitReflog or %NULL.</doc>
          <type name="Reflog" c:type="GgitReflog*"/>
        </return-value>
        <parameters>
          <instance-parameter name="reflog" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-reflog.c"
                 line="54">a #GgitReflog.</doc>
            <type name="Reflog" c:type="GgitReflog*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="rename" c:identifier="ggit_reflog_rename" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-reflog.c"
             line="166">Renames the reflog for to @new_name, on error @error is set.</doc>
        <source-position filename="libgit2-glib/ggit-reflog.h" line="50"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="reflog" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-reflog.c"
                 line="168">a #GgitReflog.</doc>
            <type name="Reflog" c:type="GgitReflog*"/>
          </instance-parameter>
          <parameter name="new_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-reflog.c"
                 line="169">the new name of the reference.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="ggit_reflog_unref">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-reflog.c"
             line="71">Atomically decrements the reference count of @reflog by one.
If the reference count drops to 0, @reflog is freed.</doc>
        <source-position filename="libgit2-glib/ggit-reflog.h" line="41"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="reflog" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-reflog.c"
                 line="73">a #GgitReflog.</doc>
            <type name="Reflog" c:type="GgitReflog*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="write" c:identifier="ggit_reflog_write" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-reflog.c"
             line="92">Write the reflog to disk.</doc>
        <source-position filename="libgit2-glib/ggit-reflog.h" line="47"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-reflog.c"
               line="99">%TRUE if the reflog was successfully written, or %FALSE on error.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="reflog" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-reflog.c"
                 line="94">a #GgitReflog.</doc>
            <type name="Reflog" c:type="GgitReflog*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <record name="ReflogEntry"
            c:type="GgitReflogEntry"
            opaque="1"
            glib:type-name="GgitReflogEntry"
            glib:get-type="ggit_reflog_entry_get_type"
            c:symbol-prefix="reflog_entry">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="224">Represents a reflog entry.</doc>
      <source-position filename="libgit2-glib/ggit-types.h" line="229"/>
      <method name="get_committer"
              c:identifier="ggit_reflog_entry_get_committer">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-reflog-entry.c"
             line="124">Gets the committer as a #GgitSignature.</doc>
        <source-position filename="libgit2-glib/ggit-reflog-entry.h"
                         line="43"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-reflog-entry.c"
               line="130">the committer or %NULL.</doc>
          <type name="Signature" c:type="GgitSignature*"/>
        </return-value>
        <parameters>
          <instance-parameter name="reflog_entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-reflog-entry.c"
                 line="126">a #GgitReflogEntry.</doc>
            <type name="ReflogEntry" c:type="GgitReflogEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_message" c:identifier="ggit_reflog_entry_get_message">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-reflog-entry.c"
             line="144">Gets the message.</doc>
        <source-position filename="libgit2-glib/ggit-reflog-entry.h"
                         line="44"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-reflog-entry.c"
               line="150">the message or %NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="reflog_entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-reflog-entry.c"
                 line="146">a #GgitReflogEntry.</doc>
            <type name="ReflogEntry" c:type="GgitReflogEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_new_id" c:identifier="ggit_reflog_entry_get_new_id">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-reflog-entry.c"
             line="104">Gets the new #GgitOId.</doc>
        <source-position filename="libgit2-glib/ggit-reflog-entry.h"
                         line="42"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-reflog-entry.c"
               line="110">the new oid or %NULL.</doc>
          <type name="OId" c:type="GgitOId*"/>
        </return-value>
        <parameters>
          <instance-parameter name="reflog_entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-reflog-entry.c"
                 line="106">a #GgitReflogEntry.</doc>
            <type name="ReflogEntry" c:type="GgitReflogEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_old_id" c:identifier="ggit_reflog_entry_get_old_id">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-reflog-entry.c"
             line="84">Gets the old #GgitOId.</doc>
        <source-position filename="libgit2-glib/ggit-reflog-entry.h"
                         line="41"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-reflog-entry.c"
               line="90">the old oid or %NULL.</doc>
          <type name="OId" c:type="GgitOId*"/>
        </return-value>
        <parameters>
          <instance-parameter name="reflog_entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-reflog-entry.c"
                 line="86">a #GgitReflogEntry.</doc>
            <type name="ReflogEntry" c:type="GgitReflogEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="ggit_reflog_entry_ref">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-reflog-entry.c"
             line="47">Atomically increments the reference count of @reflog_entry by one.
This function is MT-safe and may be called from any thread.</doc>
        <source-position filename="libgit2-glib/ggit-reflog-entry.h"
                         line="38"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-reflog-entry.c"
               line="54">the passed in #GgitReflogEntry or %NULL.</doc>
          <type name="ReflogEntry" c:type="GgitReflogEntry*"/>
        </return-value>
        <parameters>
          <instance-parameter name="reflog_entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-reflog-entry.c"
                 line="49">a #GgitReflogEntry.</doc>
            <type name="ReflogEntry" c:type="GgitReflogEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="ggit_reflog_entry_unref">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-reflog-entry.c"
             line="66">Atomically decrements the reference count of @reflog_entry by one.
If the reference count drops to 0, @reflog_entry is freed.</doc>
        <source-position filename="libgit2-glib/ggit-reflog-entry.h"
                         line="39"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="reflog_entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-reflog-entry.c"
                 line="68">a #GgitReflogEntry.</doc>
            <type name="ReflogEntry" c:type="GgitReflogEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <class name="Remote"
           c:symbol-prefix="remote"
           c:type="GgitRemote"
           parent="Native"
           glib:type-name="GgitRemote"
           glib:get-type="ggit_remote_get_type"
           glib:type-struct="RemoteClass">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="238">Represents a git remote.</doc>
      <source-position filename="libgit2-glib/ggit-remote.h" line="42"/>
      <constructor name="new" c:identifier="ggit_remote_new" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-remote.c"
             line="172">Creates a remote with the default refspecs in memory. You can use
this when you have a URL instead of a remote's name.</doc>
        <source-position filename="libgit2-glib/ggit-remote.h" line="61"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-remote.c"
               line="182">a newly allocated #GgitRemote or %NULL.</doc>
          <type name="Remote" c:type="GgitRemote*"/>
        </return-value>
        <parameters>
          <parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-remote.c"
                 line="174">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-remote.c"
                 line="175">the remote's name.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="url" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-remote.c"
                 line="176">the remote repository's URL.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_anonymous"
                   c:identifier="ggit_remote_new_anonymous"
                   throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-remote.c"
             line="209">Creates a remote with the specified refspec in memory. You can use
this when you have a URL instead of a remote's name.</doc>
        <source-position filename="libgit2-glib/ggit-remote.h" line="66"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-remote.c"
               line="218">a newly allocated #GgitRemote or %NULL.</doc>
          <type name="Remote" c:type="GgitRemote*"/>
        </return-value>
        <parameters>
          <parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-remote.c"
                 line="211">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </parameter>
          <parameter name="url" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-remote.c"
                 line="212">the remote repository's URL.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="connect" c:identifier="ggit_remote_connect" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-remote.c"
             line="293">Opens a connection to a remote.
The transport is selected based on the URL. The direction argument
is due to a limitation of the git protocol (over TCP or SSH) which
starts up a specific binary which can only do the one or the other.</doc>
        <source-position filename="libgit2-glib/ggit-remote.h" line="76"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="remote" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-remote.c"
                 line="295">a #GgitRemote.</doc>
            <type name="Remote" c:type="GgitRemote*"/>
          </instance-parameter>
          <parameter name="direction" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-remote.c"
                 line="296">whether you want to receive or send data.</doc>
            <type name="Direction" c:type="GgitDirection"/>
          </parameter>
          <parameter name="callbacks" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-remote.c"
                 line="297">the callbacks to use for this connection.</doc>
            <type name="RemoteCallbacks" c:type="GgitRemoteCallbacks*"/>
          </parameter>
          <parameter name="proxy_options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-remote.c"
                 line="298">the proxy options.</doc>
            <type name="ProxyOptions" c:type="GgitProxyOptions*"/>
          </parameter>
          <parameter name="custom_headers"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-remote.c"
                 line="299">extra HTTP headers to use in this connection.</doc>
            <type name="utf8" c:type="const gchar* const*"/>
          </parameter>
        </parameters>
      </method>
      <method name="disconnect" c:identifier="ggit_remote_disconnect">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-remote.c"
             line="351">Closes the connection to the remote and frees the underlying
transport.</doc>
        <source-position filename="libgit2-glib/ggit-remote.h" line="85"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="remote" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-remote.c"
                 line="353">a #GgitRemote.</doc>
            <type name="Remote" c:type="GgitRemote*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="download" c:identifier="ggit_remote_download" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-remote.c"
             line="406">Connect to the remote if not yet connected, negotiate with the remote
about which objects are missing and download the resulting packfile and
its index.</doc>
        <source-position filename="libgit2-glib/ggit-remote.h" line="92"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-remote.c"
               line="417">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="remote" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-remote.c"
                 line="408">a #GgitRemote.</doc>
            <type name="Remote" c:type="GgitRemote*"/>
          </instance-parameter>
          <parameter name="specs"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-remote.c"
                 line="409">the ref specs.</doc>
            <array c:type="const gchar* const*">
              <type name="utf8" c:type="gchar*"/>
            </array>
          </parameter>
          <parameter name="fetch_options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-remote.c"
                 line="410">a #GgitFetchOptions.</doc>
            <type name="FetchOptions" c:type="GgitFetchOptions*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_connected" c:identifier="ggit_remote_get_connected">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-remote.c"
             line="335">Check whether @remote is connected.</doc>
        <source-position filename="libgit2-glib/ggit-remote.h" line="83"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-remote.c"
               line="341">%TRUE if it is connected.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="remote" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-remote.c"
                 line="337">a #GgitRemote.</doc>
            <type name="Remote" c:type="GgitRemote*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_fetch_specs"
              c:identifier="ggit_remote_get_fetch_specs"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-remote.c"
             line="491">Get the list of fetch refspecs for the given remote.</doc>
        <source-position filename="libgit2-glib/ggit-remote.h" line="104"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-remote.c"
               line="498">a list of fetch refspecs or %NULL.</doc>
          <array c:type="gchar**">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="remote" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-remote.c"
                 line="493">a #GgitRemote.</doc>
            <type name="Remote" c:type="GgitRemote*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="ggit_remote_get_name">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-remote.c"
             line="261">Gets the remote's name.</doc>
        <source-position filename="libgit2-glib/ggit-remote.h" line="72"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-remote.c"
               line="267">the name of @remote or %NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="remote" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-remote.c"
                 line="263">a #GgitRemote.</doc>
            <type name="Remote" c:type="GgitRemote*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_owner" c:identifier="ggit_remote_get_owner">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-remote.c"
             line="244">Gets the repository where @remote resides.</doc>
        <source-position filename="libgit2-glib/ggit-remote.h" line="70"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-remote.c"
               line="250">the repository where the remote resides or %NULL.</doc>
          <type name="Repository" c:type="GgitRepository*"/>
        </return-value>
        <parameters>
          <instance-parameter name="remote" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-remote.c"
                 line="246">a #GgitRemote.</doc>
            <type name="Remote" c:type="GgitRemote*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_push_specs"
              c:identifier="ggit_remote_get_push_specs"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-remote.c"
             line="521">Get the list of push refspecs for the given remote.</doc>
        <source-position filename="libgit2-glib/ggit-remote.h" line="107"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-remote.c"
               line="528">a list of push refspecs or %NULL.</doc>
          <array c:type="gchar**">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="remote" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-remote.c"
                 line="523">a #GgitRemote.</doc>
            <type name="Remote" c:type="GgitRemote*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_url" c:identifier="ggit_remote_get_url">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-remote.c"
             line="277">Gets the remote's url.</doc>
        <source-position filename="libgit2-glib/ggit-remote.h" line="74"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-remote.c"
               line="283">the url of @remote or %NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="remote" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-remote.c"
                 line="279">GgitRemote.</doc>
            <type name="Remote" c:type="GgitRemote*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="list" c:identifier="ggit_remote_list" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-remote.c"
             line="551">Get a list of refs at the remote.</doc>
        <source-position filename="libgit2-glib/ggit-remote.h" line="110"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-remote.c"
               line="558">the remote heads or %NULL.</doc>
          <array c:type="GgitRemoteHead**">
            <type name="RemoteHead" c:type="GgitRemoteHead*"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="remote" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-remote.c"
                 line="553">a #GgitRemote.</doc>
            <type name="Remote" c:type="GgitRemote*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="prune" c:identifier="ggit_remote_prune" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-remote.c"
             line="628">Prune tracking refs that are no longer present on remote.</doc>
        <source-position filename="libgit2-glib/ggit-remote.h" line="118"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="remote" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-remote.c"
                 line="630">a #GgitRemote.</doc>
            <type name="Remote" c:type="GgitRemote*"/>
          </instance-parameter>
          <parameter name="callbacks" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-remote.c"
                 line="631">the callbacks to use for this connection.</doc>
            <type name="RemoteCallbacks" c:type="GgitRemoteCallbacks*"/>
          </parameter>
        </parameters>
      </method>
      <method name="push" c:identifier="ggit_remote_push" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-remote.c"
             line="367">Connect to the remote if not yet connected, negotiate with the remote
about which objects are missing, create a packfile with the missing
objects and send it.</doc>
        <source-position filename="libgit2-glib/ggit-remote.h" line="87"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-remote.c"
               line="378">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="remote" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-remote.c"
                 line="369">a #GgitRemote.</doc>
            <type name="Remote" c:type="GgitRemote*"/>
          </instance-parameter>
          <parameter name="specs"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-remote.c"
                 line="370">the ref specs.</doc>
            <array c:type="const gchar* const*">
              <type name="utf8" c:type="gchar*"/>
            </array>
          </parameter>
          <parameter name="push_options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-remote.c"
                 line="371">a #GgitPushOptions.</doc>
            <type name="PushOptions" c:type="GgitPushOptions*"/>
          </parameter>
        </parameters>
      </method>
      <method name="update_tips"
              c:identifier="ggit_remote_update_tips"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-remote.c"
             line="445">Update tips to the new state.</doc>
        <source-position filename="libgit2-glib/ggit-remote.h" line="97"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-remote.c"
               line="461">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="remote" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-remote.c"
                 line="447">a #GgitRemote.</doc>
            <type name="Remote" c:type="GgitRemote*"/>
          </instance-parameter>
          <parameter name="callbacks" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-remote.c"
                 line="448">a #GgitRemoteCallbacks.</doc>
            <type name="RemoteCallbacks" c:type="GgitRemoteCallbacks*"/>
          </parameter>
          <parameter name="update_fetch_head" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-remote.c"
                 line="449">whether to write to FETCH_HEAD. %TRUE to behave like git.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="tags_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-remote.c"
                 line="450">what the behaviour for downloading tags is for this fetch. This is
            ignored for push. This must be the same value passed to
            ggit_remote_download().</doc>
            <type name="RemoteDownloadTagsType"
                  c:type="GgitRemoteDownloadTagsType"/>
          </parameter>
          <parameter name="message"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-remote.c"
                 line="453">reflog_message The message to insert into the reflogs. If
                        %NULL and fetching, the default is "fetch &lt;name&gt;",
                        where &lt;name&gt; is the name of the remote (or its url,
                        for in-memory remotes). This parameter is ignored when pushing.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="upload" c:identifier="ggit_remote_upload" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-remote.c"
             line="591">Create a packfile and send it to the server</doc>
        <source-position filename="libgit2-glib/ggit-remote.h" line="113"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-remote.c"
               line="600">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="remote" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-remote.c"
                 line="593">a #GgitRemote.</doc>
            <type name="Remote" c:type="GgitRemote*"/>
          </instance-parameter>
          <parameter name="specs"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-remote.c"
                 line="594">the ref specs.</doc>
            <array c:type="const gchar* const*">
              <type name="utf8" c:type="gchar*"/>
            </array>
          </parameter>
          <parameter name="push_options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-remote.c"
                 line="595">a #GgitPushOptions</doc>
            <type name="PushOptions" c:type="GgitPushOptions*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="Native" c:type="GgitNative"/>
      </field>
    </class>
    <class name="RemoteCallbacks"
           c:symbol-prefix="remote_callbacks"
           c:type="GgitRemoteCallbacks"
           parent="GObject.Object"
           glib:type-name="GgitRemoteCallbacks"
           glib:get-type="ggit_remote_callbacks_get_type"
           glib:type-struct="RemoteCallbacksClass">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-remote-callbacks.c"
           line="31">Represents a git remote callbacks.</doc>
      <source-position filename="libgit2-glib/ggit-remote-callbacks.h"
                       line="61"/>
      <virtual-method name="completion">
        <source-position filename="libgit2-glib/ggit-remote-callbacks.h"
                         line="50"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="callbacks" transfer-ownership="none">
            <type name="RemoteCallbacks" c:type="GgitRemoteCallbacks*"/>
          </instance-parameter>
          <parameter name="type" transfer-ownership="none">
            <type name="RemoteCompletionType"
                  c:type="GgitRemoteCompletionType"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="credentials" throws="1">
        <source-position filename="libgit2-glib/ggit-remote-callbacks.h"
                         line="54"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-remote-callbacks.c"
               line="61">a #GgitCred or %NULL in case of an error.</doc>
          <type name="Cred" c:type="GgitCred*"/>
        </return-value>
        <parameters>
          <instance-parameter name="callbacks" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-remote-callbacks.c"
                 line="55">a #GgitRemoteCallbacks.</doc>
            <type name="RemoteCallbacks" c:type="GgitRemoteCallbacks*"/>
          </instance-parameter>
          <parameter name="url" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-remote-callbacks.c"
                 line="56">the url.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="username_from_url"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-remote-callbacks.c"
                 line="57">the username extracted from the url.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="allowed_types" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-remote-callbacks.c"
                 line="58">the allowed credential types.</doc>
            <type name="Credtype" c:type="GgitCredtype"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="progress">
        <source-position filename="libgit2-glib/ggit-remote-callbacks.h"
                         line="39"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="callbacks" transfer-ownership="none">
            <type name="RemoteCallbacks" c:type="GgitRemoteCallbacks*"/>
          </instance-parameter>
          <parameter name="message" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="transfer_progress">
        <source-position filename="libgit2-glib/ggit-remote-callbacks.h"
                         line="42"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="callbacks" transfer-ownership="none">
            <type name="RemoteCallbacks" c:type="GgitRemoteCallbacks*"/>
          </instance-parameter>
          <parameter name="stats" transfer-ownership="none">
            <type name="TransferProgress" c:type="GgitTransferProgress*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="update_tips">
        <source-position filename="libgit2-glib/ggit-remote-callbacks.h"
                         line="45"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="callbacks" transfer-ownership="none">
            <type name="RemoteCallbacks" c:type="GgitRemoteCallbacks*"/>
          </instance-parameter>
          <parameter name="refname" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="a" transfer-ownership="none">
            <type name="OId" c:type="const GgitOId*"/>
          </parameter>
          <parameter name="b" transfer-ownership="none">
            <type name="OId" c:type="const GgitOId*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <glib:signal name="completion" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="RemoteCompletionType"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="progress" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="transfer-progress" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="TransferProgress"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="update-tips" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="OId"/>
          </parameter>
          <parameter name="p1" transfer-ownership="none">
            <type name="OId"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="RemoteCallbacksClass"
            c:type="GgitRemoteCallbacksClass"
            glib:is-gtype-struct-for="RemoteCallbacks">
      <source-position filename="libgit2-glib/ggit-remote-callbacks.h"
                       line="61"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="progress">
        <callback name="progress">
          <source-position filename="libgit2-glib/ggit-remote-callbacks.h"
                           line="39"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="callbacks" transfer-ownership="none">
              <type name="RemoteCallbacks" c:type="GgitRemoteCallbacks*"/>
            </parameter>
            <parameter name="message" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="transfer_progress">
        <callback name="transfer_progress">
          <source-position filename="libgit2-glib/ggit-remote-callbacks.h"
                           line="42"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="callbacks" transfer-ownership="none">
              <type name="RemoteCallbacks" c:type="GgitRemoteCallbacks*"/>
            </parameter>
            <parameter name="stats" transfer-ownership="none">
              <type name="TransferProgress" c:type="GgitTransferProgress*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="update_tips">
        <callback name="update_tips">
          <source-position filename="libgit2-glib/ggit-remote-callbacks.h"
                           line="45"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="callbacks" transfer-ownership="none">
              <type name="RemoteCallbacks" c:type="GgitRemoteCallbacks*"/>
            </parameter>
            <parameter name="refname" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="a" transfer-ownership="none">
              <type name="OId" c:type="const GgitOId*"/>
            </parameter>
            <parameter name="b" transfer-ownership="none">
              <type name="OId" c:type="const GgitOId*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="completion">
        <callback name="completion">
          <source-position filename="libgit2-glib/ggit-remote-callbacks.h"
                           line="50"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="callbacks" transfer-ownership="none">
              <type name="RemoteCallbacks" c:type="GgitRemoteCallbacks*"/>
            </parameter>
            <parameter name="type" transfer-ownership="none">
              <type name="RemoteCompletionType"
                    c:type="GgitRemoteCompletionType"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="credentials">
        <callback name="credentials" throws="1">
          <source-position filename="libgit2-glib/ggit-remote-callbacks.h"
                           line="54"/>
          <return-value transfer-ownership="full" nullable="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-remote-callbacks.c"
                 line="61">a #GgitCred or %NULL in case of an error.</doc>
            <type name="Cred" c:type="GgitCred*"/>
          </return-value>
          <parameters>
            <parameter name="callbacks" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libgit2-glib/ggit-remote-callbacks.c"
                   line="55">a #GgitRemoteCallbacks.</doc>
              <type name="RemoteCallbacks" c:type="GgitRemoteCallbacks*"/>
            </parameter>
            <parameter name="url" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libgit2-glib/ggit-remote-callbacks.c"
                   line="56">the url.</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="username_from_url"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <doc xml:space="preserve"
                   filename="libgit2-glib/ggit-remote-callbacks.c"
                   line="57">the username extracted from the url.</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="allowed_types" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="libgit2-glib/ggit-remote-callbacks.c"
                   line="58">the allowed credential types.</doc>
              <type name="Credtype" c:type="GgitCredtype"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="RemoteClass"
            c:type="GgitRemoteClass"
            glib:is-gtype-struct-for="Remote">
      <source-position filename="libgit2-glib/ggit-remote.h" line="42"/>
      <field name="parent_class" readable="0" private="1">
        <type name="NativeClass" c:type="GgitNativeClass"/>
      </field>
    </record>
    <enumeration name="RemoteCompletionType"
                 glib:type-name="GgitRemoteCompletionType"
                 glib:get-type="ggit_remote_completion_type_get_type"
                 c:type="GgitRemoteCompletionType">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="675">Argument to the completion callback which tells it which operation finished.</doc>
      <member name="download"
              value="0"
              c:identifier="GGIT_REMOTE_COMPLETION_DOWNLOAD"
              glib:nick="download"
              glib:name="GGIT_REMOTE_COMPLETION_DOWNLOAD">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="677">download.</doc>
      </member>
      <member name="indexing"
              value="1"
              c:identifier="GGIT_REMOTE_COMPLETION_INDEXING"
              glib:nick="indexing"
              glib:name="GGIT_REMOTE_COMPLETION_INDEXING">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="678">indexing.</doc>
      </member>
      <member name="error"
              value="2"
              c:identifier="GGIT_REMOTE_COMPLETION_ERROR"
              glib:nick="error"
              glib:name="GGIT_REMOTE_COMPLETION_ERROR">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="679">error.</doc>
      </member>
    </enumeration>
    <enumeration name="RemoteDownloadTagsType"
                 glib:type-name="GgitRemoteDownloadTagsType"
                 glib:get-type="ggit_remote_download_tags_type_get_type"
                 c:type="GgitRemoteDownloadTagsType">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="655">Automatic tag following option

Lets us select the --tags option to use.</doc>
      <member name="unspecified"
              value="0"
              c:identifier="GGIT_REMOTE_DOWNLOAD_TAGS_UNSPECIFIED"
              glib:nick="unspecified"
              glib:name="GGIT_REMOTE_DOWNLOAD_TAGS_UNSPECIFIED">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="657">Use the setting from the configuration.</doc>
      </member>
      <member name="auto"
              value="1"
              c:identifier="GGIT_REMOTE_DOWNLOAD_TAGS_AUTO"
              glib:nick="auto"
              glib:name="GGIT_REMOTE_DOWNLOAD_TAGS_AUTO">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="658">Ask the server for tags pointing to objects we're already
downloading.</doc>
      </member>
      <member name="none"
              value="2"
              c:identifier="GGIT_REMOTE_DOWNLOAD_TAGS_NONE"
              glib:nick="none"
              glib:name="GGIT_REMOTE_DOWNLOAD_TAGS_NONE">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="660">Don't ask for any tags beyond the refspecs.</doc>
      </member>
      <member name="all"
              value="3"
              c:identifier="GGIT_REMOTE_DOWNLOAD_TAGS_ALL"
              glib:nick="all"
              glib:name="GGIT_REMOTE_DOWNLOAD_TAGS_ALL">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="661">Ask for the all the tags.</doc>
      </member>
    </enumeration>
    <record name="RemoteHead"
            c:type="GgitRemoteHead"
            opaque="1"
            glib:type-name="GgitRemoteHead"
            glib:get-type="ggit_remote_head_get_type"
            c:symbol-prefix="remote_head">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="231">Represents a git remote head.</doc>
      <source-position filename="libgit2-glib/ggit-types.h" line="236"/>
      <method name="get_local_oid"
              c:identifier="ggit_remote_head_get_local_oid">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-remote.c"
             line="97">Get the local oid of the remote head.</doc>
        <source-position filename="libgit2-glib/ggit-remote.h" line="53"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-remote.c"
               line="103">the local oid or %NULL.</doc>
          <type name="OId" c:type="GgitOId*"/>
        </return-value>
        <parameters>
          <instance-parameter name="remote_head" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-remote.c"
                 line="99">a #GgitRemoteHead.</doc>
            <type name="RemoteHead" c:type="GgitRemoteHead*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="ggit_remote_head_get_name">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-remote.c"
             line="127">Get the remote head name.</doc>
        <source-position filename="libgit2-glib/ggit-remote.h" line="55"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-remote.c"
               line="133">the remote head name or %NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="remote_head" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-remote.c"
                 line="129">a #GgitRemoteHead.</doc>
            <type name="RemoteHead" c:type="GgitRemoteHead*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_oid" c:identifier="ggit_remote_head_get_oid">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-remote.c"
             line="82">Get the remote oid of the remote head.</doc>
        <source-position filename="libgit2-glib/ggit-remote.h" line="52"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-remote.c"
               line="88">the remote oid or %NULL.</doc>
          <type name="OId" c:type="GgitOId*"/>
        </return-value>
        <parameters>
          <instance-parameter name="remote_head" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-remote.c"
                 line="84">a #GgitRemoteHead.</doc>
            <type name="RemoteHead" c:type="GgitRemoteHead*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_local" c:identifier="ggit_remote_head_is_local">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-remote.c"
             line="112">Get whether the remote head is local.</doc>
        <source-position filename="libgit2-glib/ggit-remote.h" line="54"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-remote.c"
               line="118">whether the remote head is local.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="remote_head" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-remote.c"
                 line="114">a #GgitRemoteHead.</doc>
            <type name="RemoteHead" c:type="GgitRemoteHead*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="ggit_remote_head_ref">
        <source-position filename="libgit2-glib/ggit-remote.h" line="49"/>
        <return-value transfer-ownership="full">
          <type name="RemoteHead" c:type="GgitRemoteHead*"/>
        </return-value>
        <parameters>
          <instance-parameter name="remote_head" transfer-ownership="none">
            <type name="RemoteHead" c:type="GgitRemoteHead*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="ggit_remote_head_unref">
        <source-position filename="libgit2-glib/ggit-remote.h" line="50"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="remote_head" transfer-ownership="none">
            <type name="RemoteHead" c:type="GgitRemoteHead*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <callback name="RemoteListCallback" c:type="GgitRemoteListCallback">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="1183">The type of the callback functions for listing the references of a
#GgitRemote. See ggit_remote_list().</doc>
      <source-position filename="libgit2-glib/ggit-types.h" line="1196"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="1194">0 to go continue or a #GgitError in case there was an error.</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-types.h"
               line="1185">the name of the reference.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="oid" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-types.h"
               line="1186">the reference's oid.</doc>
          <type name="OId" c:type="GgitOId*"/>
        </parameter>
        <parameter name="loid" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-types.h"
               line="1187">the reference's loid.</doc>
          <type name="OId" c:type="GgitOId*"/>
        </parameter>
        <parameter name="local" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-types.h"
               line="1188">if available locally.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="4">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-types.h"
               line="1189">user-supplied data.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <class name="Repository"
           c:symbol-prefix="repository"
           c:type="GgitRepository"
           parent="Native"
           glib:type-name="GgitRepository"
           glib:get-type="ggit_repository_get_type"
           glib:type-struct="RepositoryClass">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="245">Represents an existing git repository including all of it's
object contents.</doc>
      <source-position filename="libgit2-glib/ggit-repository.h" line="74"/>
      <implements name="Gio.Initable"/>
      <function name="clone" c:identifier="ggit_repository_clone" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="584">Clones a new git repository in the given folder.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="90"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="593">a newly created #GgitRepository.</doc>
          <type name="Repository" c:type="GgitRepository*"/>
        </return-value>
        <parameters>
          <parameter name="url" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="586">url to fetch the repository from.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="location" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="587">the location of the repository.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="588">a #GgitCloneOptions.</doc>
            <type name="CloneOptions" c:type="GgitCloneOptions*"/>
          </parameter>
        </parameters>
      </function>
      <function name="discover"
                c:identifier="ggit_repository_discover"
                throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="976">Looks for a git repository.

The lookup starts from @path and walks up the parent directories
and stops when a repository is found.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="328"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="986">the repository location.</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
        <parameters>
          <parameter name="location" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="978">the base location where the lookup starts.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </function>
      <function name="discover_full"
                c:identifier="ggit_repository_discover_full"
                throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="998">Looks for a git repository.

The lookup starts from @path and walks up the parent directories
and stops when a repository is found.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="331"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="1011">the repository location.</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
        <parameters>
          <parameter name="location" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1000">the base location where the lookup starts.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="across_fs" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1001">indictaes whether lookup will work across filesystem devices.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="ceiling_dirs"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1002">a list of absolute paths
  at which lookup will stop when reached, or %NULL.</doc>
            <array c:type="const gchar**">
              <type name="utf8" c:type="gchar*"/>
            </array>
          </parameter>
        </parameters>
      </function>
      <function name="init_repository"
                c:identifier="ggit_repository_init_repository"
                throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="557">Creates a new git repository in the given folder.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="86"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="567">a newly created #GgitRepository.</doc>
          <type name="Repository" c:type="GgitRepository*"/>
        </return-value>
        <parameters>
          <parameter name="location" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="559">the location of the repository.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="is_bare" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="560">if %TRUE, a git repository without a working directory is created
          at the pointed path. If %FALSE, provided path will be considered as the working
          directory into which the .git directory will be created.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </function>
      <function name="open" c:identifier="ggit_repository_open" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="521">Open a git repository.

The @path must point to an existing git repository folder, e.g.

	/path/to/my_repo/.git/	(normal repository)
						objects/
						index
						HEAD

	/path/to/bare_repo/		(bare repository)
					objects/
					index
					HEAD

The method will automatically detect if @path is a normal
or bare repository or fail if it is neither.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="83"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="543">a newly created #GgitRepository.</doc>
          <type name="Repository" c:type="GgitRepository*"/>
        </return-value>
        <parameters>
          <parameter name="location" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="523">the location of the repository.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </function>
      <method name="add_remote_fetch"
              c:identifier="ggit_repository_add_remote_fetch"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="2369">Adds a fetch refspec to the @remote's configuration.
Adds @refspec to the fetch list in the configuration. No
loaded remote instances will be affected.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="312"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2371">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="remote" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2372">a #GgitRemote.</doc>
            <type name="Remote" c:type="GgitRemote*"/>
          </parameter>
          <parameter name="refspec" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2373">the fetch refspec.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_remote_push"
              c:identifier="ggit_repository_add_remote_push"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="2336">Adds a push refspec to @remote's configuration.
Adds the given refspec to the push list in the configuration. No
loaded remote instances will be affected.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="307"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2338">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="remote" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2339">a #GgitRemote.</doc>
            <type name="Remote" c:type="GgitRemote*"/>
          </parameter>
          <parameter name="refspec" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2340">the push refspec.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="blame_file"
              c:identifier="ggit_repository_blame_file"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="3583">Get a blame for a single file.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="457"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="3592">a #GgitBlame.</doc>
          <type name="Blame" c:type="GgitBlame*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3585">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3586">the file to blame.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="blame_options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3587">blame options.</doc>
            <type name="BlameOptions" c:type="GgitBlameOptions*"/>
          </parameter>
        </parameters>
      </method>
      <method name="checkout_head"
              c:identifier="ggit_repository_checkout_head"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="3673">Update files in the working tree to reflect the contents of current HEAD. If
@options is %NULL, then the default checkout options will be used.

If the checkout was not successfull, then @error will be set.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="468"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="3684">%TRUE if the checkout was successfull, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3675">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3676">a #GgitCheckoutOptions or %NULL.</doc>
            <type name="CheckoutOptions" c:type="GgitCheckoutOptions*"/>
          </parameter>
        </parameters>
      </method>
      <method name="checkout_index"
              c:identifier="ggit_repository_checkout_index"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="3710">Update files in the working tree to reflect the contents of the index. If
@index is %NULL, then the current index of the repository will be used. If
@options is %NULL, then the default checkout options will be used.

If the checkout was not successfull, then @error will be set.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="472"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="3723">%TRUE if the checkout was successfull, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3712">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="index"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3713">a #GgitIndex or %NULL.</doc>
            <type name="Index" c:type="GgitIndex*"/>
          </parameter>
          <parameter name="options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3714">a #GgitCheckoutOptions or %NULL.</doc>
            <type name="CheckoutOptions" c:type="GgitCheckoutOptions*"/>
          </parameter>
        </parameters>
      </method>
      <method name="checkout_tree"
              c:identifier="ggit_repository_checkout_tree"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="3751">Update files in the working tree to reflect the contents of the specified
commit, tag or tree object. If @tree is %NULL, then the current HEAD of the
repository will be used. If @options is %NULL, then the default checkout
options will be used.

If the checkout was not successfull, then @error will be set.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="477"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="3765">%TRUE if the checkout was successfull, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3753">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="tree"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3754">a #GgitObject or %NULL.</doc>
            <type name="Object" c:type="GgitObject*"/>
          </parameter>
          <parameter name="options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3755">a #GgitCheckoutOptions or %NULL.</doc>
            <type name="CheckoutOptions" c:type="GgitCheckoutOptions*"/>
          </parameter>
        </parameters>
      </method>
      <method name="cherry_pick"
              c:identifier="ggit_repository_cherry_pick"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="3831">Cherry pick the specified commit, making changes in the index and the working
directory.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="487"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="3841">%TRUE if the commit was cherry-picked successfully, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3833">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="commit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3834">a #GgitCommit.</doc>
            <type name="Commit" c:type="GgitCommit*"/>
          </parameter>
          <parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3835">a #GgitCherryPickOptions.</doc>
            <type name="CherryPickOptions" c:type="GgitCherryPickOptions*"/>
          </parameter>
        </parameters>
      </method>
      <method name="cherry_pick_commit"
              c:identifier="ggit_repository_cherry_pick_commit"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="3870">Cherry-picks the given @commit against the provided @our_commit, producing
and index that reflects the result of the cherry-pick.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="492"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="3882">a #GgitIndex.</doc>
          <type name="Index" c:type="GgitIndex*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3872">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="commit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3873">a #GgitCommit to cherry-pick.</doc>
            <type name="Commit" c:type="GgitCommit*"/>
          </parameter>
          <parameter name="our_commit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3874">a #GgitCommit to cherry-pick on.</doc>
            <type name="Commit" c:type="GgitCommit*"/>
          </parameter>
          <parameter name="mainline" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3875">the parent of the commit, in case of a merge commit.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="merge_options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3876">a #GgitMergeOptions.</doc>
            <type name="MergeOptions" c:type="GgitMergeOptions*"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_blob" c:identifier="ggit_repository_create_blob">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="2991">Create a new blob and return a #GOutputStream to write contents to the blob.
This is an efficient way to create new blobs without copying data. The
blob id can be obtained from the blob output stream using
#ggit_blob_output_stream_get_id, after you close the stream.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="122"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="3000">a #GgitBlobOutputStream.</doc>
          <type name="BlobOutputStream" c:type="GgitBlobOutputStream*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2993">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="create_blob_from_buffer"
              c:identifier="ggit_repository_create_blob_from_buffer"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="3010">Write an in-memory buffer to the object database as a blob.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="125"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="3019">the new #GgitOid of the written blob,
or %NULL if writing the blob failed.</doc>
          <type name="OId" c:type="GgitOId*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3012">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3013">the data.</doc>
            <array length="1" zero-terminated="0" c:type="gconstpointer">
              <type name="guint8"/>
            </array>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3014">the length (in bytes) of the data.</doc>
            <type name="gsize" c:type="gsize"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_blob_from_file"
              c:identifier="ggit_repository_create_blob_from_file"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="3049">Write a file to the object database as a blob.

Returns (transfer full) (nullable): the new #GgitOid of the written blob,
or %NULL if writing the blob failed.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="131"/>
        <return-value transfer-ownership="full">
          <type name="OId" c:type="GgitOId*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3051">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3052">a #GFile.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_blob_from_path"
              c:identifier="ggit_repository_create_blob_from_path"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="3090">Write a path relative to the repository working directory to the object
database as a blob.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="136"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="3099">the new #GgitOid of the written blob,
or %NULL if writing the blob failed.</doc>
          <type name="OId" c:type="GgitOId*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3092">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3093">the file path.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_branch"
              c:identifier="ggit_repository_create_branch"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="1857">Creates a new branch pointing at a target commit.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="250"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="1867">the reference to which the branch
                                       points, or %NULL in case of an error.</doc>
          <type name="Branch" c:type="GgitBranch*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1859">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="branch_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1860">the name of the branch.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="target" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1861">a #GgitObject.</doc>
            <type name="Object" c:type="GgitObject*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1862">a #GgitCreateFlags.</doc>
            <type name="CreateFlags" c:type="GgitCreateFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_commit"
              c:identifier="ggit_repository_create_commit"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="3127">Create a new commit. If @update_ref is not %NULL, the given reference will
be updated to point to the newly created commit. Use "HEAD" to update the
HEAD of the current branch and make it point to this commit.

If @message_encoding is set to %NULL, "UTF-8" encoding is assumed for the
provided @message. Note that @message will not be cleaned up automatically.
You can use #ggit_message_prettify to do this yourself if needed.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="141"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="3148">the #GgitOId of the created commit object,
or %NULL in case of an error.</doc>
          <type name="OId" c:type="GgitOId*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3129">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="update_ref"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3130">name of the reference to update.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="author" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3131">author signature.</doc>
            <type name="Signature" c:type="GgitSignature*"/>
          </parameter>
          <parameter name="committer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3132">committer signature (and time of commit).</doc>
            <type name="Signature" c:type="GgitSignature*"/>
          </parameter>
          <parameter name="message_encoding"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3133">message encoding.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="message" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3134">commit message.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="tree" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3135">the tree of objects to commit.</doc>
            <type name="Tree" c:type="GgitTree*"/>
          </parameter>
          <parameter name="parents" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3136">parent commits.</doc>
            <array length="7" zero-terminated="0" c:type="GgitCommit**">
              <type name="Commit" c:type="GgitCommit*"/>
            </array>
          </parameter>
          <parameter name="parent_count" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3137">number of parent commits in @parents.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_commit_buffer"
              c:identifier="ggit_repository_create_commit_buffer"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="3273">Create a commit as with git_commit_create() but instead of writing it to the objectdb,
write the contents of the object into a buffer.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="165"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="3288">the commit object content or %NULL in case of
an error.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3275">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="author" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3276">author signature.</doc>
            <type name="Signature" c:type="GgitSignature*"/>
          </parameter>
          <parameter name="committer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3277">committer signature (and time of commit).</doc>
            <type name="Signature" c:type="GgitSignature*"/>
          </parameter>
          <parameter name="message_encoding"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3278">message encoding.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="message" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3279">commit message.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="tree" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3280">the tree of objects to commit.</doc>
            <type name="Tree" c:type="GgitTree*"/>
          </parameter>
          <parameter name="parents" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3281">parent commits.</doc>
            <array length="6" zero-terminated="0" c:type="GgitCommit**">
              <type name="Commit" c:type="GgitCommit*"/>
            </array>
          </parameter>
          <parameter name="parent_count" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3282">number of parent commits in @parents.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_commit_from_ids"
              c:identifier="ggit_repository_create_commit_from_ids"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="3198">Create a new commit. If @update_ref is not %NULL, the given reference will
be updated to point to the newly created commit. Use "HEAD" to update the
HEAD of the current branch and make it point to this commit.

If @message_encoding is set to %NULL, "UTF-8" encoding is assumed for the
provided @message. Note that @message will not be cleaned up automatically.
You can use #ggit_message_prettify to do this yourself if needed.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="153"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="3219">the #GgitOId of the created commit object,
or %NULL in case of an error.</doc>
          <type name="OId" c:type="GgitOId*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3200">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="update_ref"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3201">name of the reference to update.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="author" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3202">author signature.</doc>
            <type name="Signature" c:type="GgitSignature*"/>
          </parameter>
          <parameter name="committer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3203">committer signature (and time of commit).</doc>
            <type name="Signature" c:type="GgitSignature*"/>
          </parameter>
          <parameter name="message_encoding"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3204">message encoding.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="message" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3205">commit message.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="tree" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3206">the tree of objects to commit.</doc>
            <type name="OId" c:type="GgitOId*"/>
          </parameter>
          <parameter name="parents" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3207">parent commits.</doc>
            <array length="7" zero-terminated="0" c:type="GgitOId**">
              <type name="OId" c:type="GgitOId*"/>
            </array>
          </parameter>
          <parameter name="parent_count" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3208">number of parent commits in @parents.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_commit_with_signature"
              c:identifier="ggit_repository_create_commit_with_signature"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="3345">Given the unsigned commit object's contents, its signature and the header field
in which to store the signature, attach the signature to the commit and write it
into the given repositoryCreate a new commit using the (if not NULL) signature
key and type of key provided.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="176"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="3359">the #GgitOId of the created commit object,
or %NULL in case of an error.</doc>
          <type name="OId" c:type="GgitOId*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3347">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="commit_content" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3348">the content of the unsigned commit.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="signature"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3349">the signature to add to the commit.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="signature_field"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3350">which header field should contain this
signature. Leave `NULL` for the default of "gpgsig".</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_index_entry_for_file"
              c:identifier="ggit_repository_create_index_entry_for_file"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="3459">Create a new index entry. When @file is not %NULL, the path of the returned
entry (#ggit_index_entry_get_path) is set to the path of @file relative to
the working directory of @repository. The file must reside in the working
directory of @repository. The file related
fields of the returned entry are also queried from this file (if the file exists).

If @id is not %NULL, then the id of the returned entry is set to @id
(see #ggit_index_entry_get_id) which could point to a blob (for a file)
or a tree (for a directory).</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="231"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="3476">a #GgitIndexEntry or %NULL when an error occurred.</doc>
          <type name="IndexEntry" c:type="GgitIndexEntry*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3461">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="file"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3462">a #GFile.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="id"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3463">a #GgitOId.</doc>
            <type name="OId" c:type="GgitOId*"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_index_entry_for_path"
              c:identifier="ggit_repository_create_index_entry_for_path"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="3521">Create a new index entry. When @path is not %NULL, the path of the returned
entry (#ggit_index_entry_get_path) is set to @path. The specified path can be
either absolute or relative. In the case of
an absolute path, the path must reside within the working directory of
@repository. The file related fields of the returned entry are also queried
from this path (if the file exists).

If @id is not %NULL, then the id of the returned entry is set to @id
(see #ggit_index_entry_get_id) which could point to a blob (for a file)
or a tree (for a directory).</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="237"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="3539">a #GgitIndexEntry or %NULL when an error occurred.</doc>
          <type name="IndexEntry" c:type="GgitIndexEntry*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3523">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="path"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3524">a path.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="id"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3525">a #GgitOId.</doc>
            <type name="OId" c:type="GgitOId*"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_note"
              c:identifier="ggit_repository_create_note"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="3956">Adds a note for an object.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="502"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="3969">the OID for the note or %NULL in case of error.</doc>
          <type name="OId" c:type="GgitOId*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3958">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="notes_ref"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3959">canonical name of the reference to use, or %NULL to use the default ref.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="author" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3960">author signature.</doc>
            <type name="Signature" c:type="GgitSignature*"/>
          </parameter>
          <parameter name="committer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3961">committer signature.</doc>
            <type name="Signature" c:type="GgitSignature*"/>
          </parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3962">OID of the git object to decorate.</doc>
            <type name="OId" c:type="GgitOId*"/>
          </parameter>
          <parameter name="note" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3963">content of the note to add for object oid.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="force" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3964">whether to overwrite existing note.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_reference"
              c:identifier="ggit_repository_create_reference"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="780">Creates a new object id reference.

The reference will be created in the repository and written
to the disk. The returned value must be freed with g_object_unref().</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="108"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="793">the newly created reference.</doc>
          <type name="Ref" c:type="GgitRef*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="782">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="783">the name for the new #GgitRef.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="oid" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="784">the #GgitOId pointed to by the reference.</doc>
            <type name="OId" c:type="GgitOId*"/>
          </parameter>
          <parameter name="log_message" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="785">The one line long message to be appended to the reflog.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_remote"
              c:identifier="ggit_repository_create_remote"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="2155">Adds a remote with the default fetch refspec to the repository's configuration.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="285"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="2164">a new #GgitRemote or %NULL if there is an error.</doc>
          <type name="Remote" c:type="GgitRemote*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2157">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2158">the name of the new remote.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="url" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2159">the url of the remote.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_symbolic_reference"
              c:identifier="ggit_repository_create_symbolic_reference"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="828">Creates a new symbolic reference.

The reference will be created in the repository and written
to the disk. The returned value must be freed with g_object_unref().</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="114"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="841">the newly created reference.</doc>
          <type name="Ref" c:type="GgitRef*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="830">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="831">the name for the new #GgitRef.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="target" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="832">the full name to the reference.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="log_message" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="833">The one line long message to be appended to the reflog.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_tag"
              c:identifier="ggit_repository_create_tag"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="1486">Create a new tag object.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="183"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="1498">the id to which the tag points, or
                                       %NULL in case of an error.</doc>
          <type name="OId" c:type="GgitOId*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1488">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="tag_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1489">the tag name.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="target" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1490">a #GgitObject.</doc>
            <type name="Object" c:type="GgitObject*"/>
          </parameter>
          <parameter name="tagger" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1491">a #GgitSignature.</doc>
            <type name="Signature" c:type="GgitSignature*"/>
          </parameter>
          <parameter name="message" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1492">the tag message.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1493">a #GgitCreateFlags.</doc>
            <type name="CreateFlags" c:type="GgitCreateFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_tag_annotation"
              c:identifier="ggit_repository_create_tag_annotation"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="1632">Creates a new annotated tag.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="205"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="1643">the id to which the tag points, or
                                       %NULL in case of an error.</doc>
          <type name="OId" c:type="GgitOId*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1634">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="tag_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1635">the name of the tag.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="target" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1636">a #GgitObject.</doc>
            <type name="Object" c:type="GgitObject*"/>
          </parameter>
          <parameter name="signature" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1637">a #GgitObject.</doc>
            <type name="Signature" c:type="GgitSignature*"/>
          </parameter>
          <parameter name="message" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1638">the tag message.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_tag_from_buffer"
              c:identifier="ggit_repository_create_tag_from_buffer"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="1541">Create a new tag from a buffer describing the tag object. The buffer must
be correctly formatted.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="192"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="1551">the id to which the tag points, or
                                       %NULL in case of an error.</doc>
          <type name="OId" c:type="GgitOId*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1543">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1544">the tag buffer.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1545">a #GgitCreateFlags.</doc>
            <type name="CreateFlags" c:type="GgitCreateFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_tag_lightweight"
              c:identifier="ggit_repository_create_tag_lightweight"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="1585">Creates a new lightweight tag.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="198"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="1595">the id to which the tag points, or
                                       %NULL in case of an error.</doc>
          <type name="OId" c:type="GgitOId*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1587">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="tag_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1588">the name of the tag.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="target" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1589">a #GgitObject.</doc>
            <type name="Object" c:type="GgitObject*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1590">a #GgitCreateFlags.</doc>
            <type name="CreateFlags" c:type="GgitCreateFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_tree_builder"
              c:identifier="ggit_repository_create_tree_builder"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="3391">Create a new tree builder.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="222"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="3398">a new #GgitTreeBuilder,
or %NULL if there was an error.</doc>
          <type name="TreeBuilder" c:type="GgitTreeBuilder*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3393">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="create_tree_builder_from_tree"
              c:identifier="ggit_repository_create_tree_builder_from_tree"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="3423">Create a tree builder for initialized with @tree. To create an empty
tree builder, use #ggit_repository_create_tree_builder instead.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="226"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="3431">a new #GgitTreeBuilder object,
or %NULL if there was an error.</doc>
          <type name="TreeBuilder" c:type="GgitTreeBuilder*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="tree" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3425">a #GgitTree.</doc>
            <type name="Tree" c:type="GgitTree*"/>
          </parameter>
        </parameters>
      </method>
      <method name="delete_tag"
              c:identifier="ggit_repository_delete_tag"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="1757">Delete an existing tag reference by name.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="213"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="1765">%TRUE if the tag was deleted successfully, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1759">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1760">the name of the tag.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="drop_stash"
              c:identifier="ggit_repository_drop_stash"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="2808">Removes a single stashed state from the stash list.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="436"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2810">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2811">the position within the stash list. 0 points to the.
most recent stashed state.</doc>
            <type name="gsize" c:type="gsize"/>
          </parameter>
        </parameters>
      </method>
      <method name="enumerate_branches"
              c:identifier="ggit_repository_enumerate_branches"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="1903">Get a branch enumerator to enumerate over all branches of the specified
@list_type in @repository.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="256"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="1912">a branch enumerator.</doc>
          <type name="BranchEnumerator" c:type="GgitBranchEnumerator*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1905">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="list_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1906">a #GgitBranchType.</doc>
            <type name="BranchType" c:type="GgitBranchType"/>
          </parameter>
        </parameters>
      </method>
      <method name="file_status"
              c:identifier="ggit_repository_file_status"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="1231">Gets the file status for a single file.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="354"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="1239">the status for a single file.</doc>
          <type name="StatusFlags" c:type="GgitStatusFlags"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1233">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="location" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1234">the file to retrieve status for, rooted at the repository working dir.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="file_status_foreach"
              c:identifier="ggit_repository_file_status_foreach"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="1275">Gathers file statuses and run a callback for each one.

To the callback is passed the path of the file, the status and the data pointer
passed to this function. If the callback returns something other than
0, the iteration will stop and @error will be set.

Set @options to %NULL to get the default status options.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="358"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="1291">%TRUE if there was no error, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1277">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1278">status options, or %NULL.</doc>
            <type name="StatusOptions" c:type="GgitStatusOptions*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     scope="call"
                     closure="2">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1279">a #GgitStatusCallback.</doc>
            <type name="StatusCallback" c:type="GgitStatusCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1280">callback user data.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_ahead_behind"
              c:identifier="ggit_repository_get_ahead_behind"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="2902">Count the number of unique commits between two commit objects.

There is no need for branches containing the commits to have any
upstream relationship, but it helps to think of one as a branch and
the other as its upstream, the @ahead and @behind values will be
what git would report for the branches.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="445"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2904">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="local" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2905">the commit for local.</doc>
            <type name="OId" c:type="GgitOId*"/>
          </parameter>
          <parameter name="upstream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2906">the commit for upstream.</doc>
            <type name="OId" c:type="GgitOId*"/>
          </parameter>
          <parameter name="ahead"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2907">number of unique from commits in @upstream.</doc>
            <type name="gsize" c:type="gsize*"/>
          </parameter>
          <parameter name="behind"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2908">number of unique from commits in @local.</doc>
            <type name="gsize" c:type="gsize*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_attribute"
              c:identifier="ggit_repository_get_attribute"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="3630">Get the attribute value of the specified attribute for the given file.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="462"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="3640">the attribute value, or %NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3632">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3633">the relative path to the file.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3634">the name of the attribute.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3635">a #GgitAttributeCheckFlags.</doc>
            <type name="AttributeCheckFlags" c:type="GgitAttributeCheckFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_config"
              c:identifier="ggit_repository_get_config"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="1422">Get the config for a specific repository.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="375"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="1429">a #GgitConfig.</doc>
          <type name="Config" c:type="GgitConfig*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1424">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_default_notes_ref"
              c:identifier="ggit_repository_get_default_notes_ref"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="3917">Gets the default notes reference for @repository. It defaults to
"refs/notes/commits".</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="499"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="3925">the default notes reference for @repository.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3919">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_descendant_of"
              c:identifier="ggit_repository_get_descendant_of"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="2946">Check whether @com mit is a descendant of @ancestor. Note that if this
function returns %FALSE, an error might have occurred. If so, @error will
be set appropriately.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="452"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="2957">%TRUE if @commit is a descendant of @ancestor, or %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2948">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="commit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2949">the commit.</doc>
            <type name="OId" c:type="GgitOId*"/>
          </parameter>
          <parameter name="ancestor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2950">the ancestor.</doc>
            <type name="OId" c:type="GgitOId*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_head"
              c:identifier="ggit_repository_get_head"
              glib:get-property="head"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="876">Get and resolves the current HEAD reference of the repository. Note that the
returned ref is already resolved (if HEAD is symbolic). If you want to
retrieve the symbolic ref called HEAD, then use #ggit_repository_lookup_reference
instead.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="317"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="886">a #GgitRef</doc>
          <type name="Ref" c:type="GgitRef*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="878">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_index"
              c:identifier="ggit_repository_get_index"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="1454">Get the index for a specific repository.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="378"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="1461">a #GgitIndex.</doc>
          <type name="Index" c:type="GgitIndex*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1456">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_location"
              c:identifier="ggit_repository_get_location"
              glib:get-property="location">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="1154">Get the gitdir location of the repository.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="345"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="1160">the location of the gitdir of the repository.</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1156">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_submodule_status"
              c:identifier="ggit_repository_get_submodule_status"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="2647">Gets the status for a submodule.
This looks at a submodule and tries to determine the status.  It
will return a combination of the %GGIT_SUBMODULE_STATUS values.
How deeply it examines the working directory to do this will depend
on @ignore.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="410"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="2660">the #GgitSubmoduleStatus for @submodule.</doc>
          <type name="SubmoduleStatus" c:type="GgitSubmoduleStatus"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2649">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2650">the name of the submodule.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="ignore" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2651">the ignore rules to follow.</doc>
            <type name="SubmoduleIgnore" c:type="GgitSubmoduleIgnore"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_workdir"
              c:identifier="ggit_repository_get_workdir"
              glib:get-property="workdir">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="1174">Gets the working directory of the repository.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="346"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="1180">the location of the working directory of the repository.</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1176">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_bare" c:identifier="ggit_repository_is_bare">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="1215">Checks if @repository is bare.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="352"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="1221">%TRUE if the repository is empty.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1217">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_empty"
              c:identifier="ggit_repository_is_empty"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="1123">Checks if @repository is empty.

An empty repository has just been initialized and contains
no commits.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="342"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="1133">%TRUE if the repository is empty.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1125">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_head_detached"
              c:identifier="ggit_repository_is_head_detached"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="1061">Checks if @repository's HEAD is detached.

A repository's HEAD is detached when it points directly to a commit
instead of a branch.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="336"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="1071">%TRUE if HEAD is detached.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1063">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_head_unborn"
              c:identifier="ggit_repository_is_head_unborn"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="1092">Checks if @repository's HEAD is an orphan.

An orphan branch is one named from HEAD but doesn't exist in
the refs namespace, because it doesn't have any commit to point to.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="339"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="1102">%TRUE if the current branch is an orphan.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1094">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="list_remotes"
              c:identifier="ggit_repository_list_remotes"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="2300">Fill a list with all the remotes in @repository.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="304"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="2307">a list with the remotes.</doc>
          <array c:type="gchar**">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2302">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="list_tags"
              c:identifier="ggit_repository_list_tags"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="1681">Fill a list with all the tags in the @repository.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="243"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="1688">a list with the tags in @repository.</doc>
          <array c:type="gchar**">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1683">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="list_tags_match"
              c:identifier="ggit_repository_list_tags_match"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="1717">Fill a list with all the tags in the @repository matching the provided
pattern. The pattern can use standard fnmatch syntax.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="246"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="1726">a list with matching tags in @repository.</doc>
          <array c:type="gchar**">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1719">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="pattern"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1720">a pattern to match.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="lookup" c:identifier="ggit_repository_lookup" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="612">Lookups a reference to one of the objects in the @repository.

The generated reference must be freed with g_object_unref().

The @gtype must match the type of the object
in the odb; the method will fail otherwise.
The special value %G_TYPE_NONE may be passed to let
the method guess the object's type.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="95"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="628">the found #GgitObject, or %NULL on error.</doc>
          <type name="Object" c:type="GgitObject*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="614">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="oid" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="615">a #GgitOId.</doc>
            <type name="OId" c:type="GgitOId*"/>
          </parameter>
          <parameter name="gtype" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="616">a #GType.</doc>
            <type name="GType" c:type="GType"/>
          </parameter>
        </parameters>
      </method>
      <method name="lookup_blob"
              c:identifier="ggit_repository_lookup_blob"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="1976">Lookups a branch by its name in a repository.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="265"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="1984">a #GgitBlog pointer.</doc>
          <type name="Blob" c:type="GgitBlob*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1978">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="oid" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1979">a #GgitOId.</doc>
            <type name="OId" c:type="GgitOId*"/>
          </parameter>
        </parameters>
      </method>
      <method name="lookup_branch"
              c:identifier="ggit_repository_lookup_branch"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="1938">Lookups a branch by its name in a repository.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="260"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="1947">a branch by its name in a repository.</doc>
          <type name="Branch" c:type="GgitBranch*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1940">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="branch_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1941">the name of the branch.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="branch_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1942">a #GgitBranchType.</doc>
            <type name="BranchType" c:type="GgitBranchType"/>
          </parameter>
        </parameters>
      </method>
      <method name="lookup_commit"
              c:identifier="ggit_repository_lookup_commit"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="2012">Lookups a branch by its name in a repository.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="269"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="2020">a #GgitCommit pointer.</doc>
          <type name="Commit" c:type="GgitCommit*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2014">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="oid" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2015">a #GgitOId.</doc>
            <type name="OId" c:type="GgitOId*"/>
          </parameter>
        </parameters>
      </method>
      <method name="lookup_reference"
              c:identifier="ggit_repository_lookup_reference"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="703">Lookups a reference by its name in @repository. The returned #GgitRef must
be freed with g_object_unref().</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="100"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="712">the searched reference.</doc>
          <type name="Ref" c:type="GgitRef*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="705">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="706">the long name for the reference (e.g. HEAD, ref/heads/master, refs/tags/v0.1.0, ...).</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="lookup_reference_dwim"
              c:identifier="ggit_repository_lookup_reference_dwim"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="741">Lookups a reference by its short name in @repository applying the git precendence
rules to the given shorthand to determine which reference the user is referring to.
The returned #GgitRef must be freed with g_object_unref().</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="104"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="751">the searched reference.</doc>
          <type name="Ref" c:type="GgitRef*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="743">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="short_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="744">the short name for the reference (e.g. master, v0.1.0, ...).</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="lookup_remote"
              c:identifier="ggit_repository_lookup_remote"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="2120">Gets the remote called @name.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="281"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="2128">a new #GgitRemote or %NULL if there is an error.</doc>
          <type name="Remote" c:type="GgitRemote*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2122">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2123">the remote's name.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="lookup_submodule"
              c:identifier="ggit_repository_lookup_submodule"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="2402">Lookups a submodule information by name or path. If the submodule
does not exist, %NULL is returned and a GGIT_ERROR_NOTFOUND error set.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="381"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="2411">a newly-allocated #GgitSubmodule.</doc>
          <type name="Submodule" c:type="GgitSubmodule*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2404">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2405">the name of the submodule.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="lookup_tag"
              c:identifier="ggit_repository_lookup_tag"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="2048">Lookups a branch by its name in a repository.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="273"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="2056">a #GgitTag pointer.</doc>
          <type name="Tag" c:type="GgitTag*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2050">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="oid" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2051">a #GgitOId.</doc>
            <type name="OId" c:type="GgitOId*"/>
          </parameter>
        </parameters>
      </method>
      <method name="lookup_tree"
              c:identifier="ggit_repository_lookup_tree"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="2084">Lookups a branch by its name in a repository.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="277"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="2092">a #GgitTree pointer.</doc>
          <type name="Tree" c:type="GgitTree*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2086">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="oid" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2087">a #GgitOId.</doc>
            <type name="OId" c:type="GgitOId*"/>
          </parameter>
        </parameters>
      </method>
      <method name="merge" c:identifier="ggit_repository_merge" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="4164">Merges the given commit(s) into HEAD, writing the results into the working directory.
Any changes are staged for commit and any conflicts are written to the index.

Callers should inspect the repository's index after this completes, resolve any conflicts and prepare a commit.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="532"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="4166">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="their_heads" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="4167">the heads to merge into</doc>
            <array length="1"
                   zero-terminated="0"
                   c:type="GgitAnnotatedCommit**">
              <type name="AnnotatedCommit" c:type="GgitAnnotatedCommit*"/>
            </array>
          </parameter>
          <parameter name="their_heads_length" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="4168">the length of their_heads</doc>
            <type name="gsize" c:type="gsize"/>
          </parameter>
          <parameter name="merge_opts" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="4169">merge options</doc>
            <type name="MergeOptions" c:type="GgitMergeOptions*"/>
          </parameter>
          <parameter name="checkout_opts" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="4170">checkout options</doc>
            <type name="CheckoutOptions" c:type="GgitCheckoutOptions*"/>
          </parameter>
        </parameters>
      </method>
      <method name="merge_base"
              c:identifier="ggit_repository_merge_base"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="4215">Find the merge base between two commits</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="539"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="4224">a new #GgitOId or %NULL if an error occurred.</doc>
          <type name="OId" c:type="GgitOId*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="4217">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="oid_one" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="4218">the oid of one of the commits.</doc>
            <type name="OId" c:type="GgitOId*"/>
          </parameter>
          <parameter name="oid_two" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="4219">the oid of the second of the commits</doc>
            <type name="OId" c:type="GgitOId*"/>
          </parameter>
        </parameters>
      </method>
      <method name="merge_commits"
              c:identifier="ggit_repository_merge_commits"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="4302">Merge two commits creating a #GgitIndex reflecting the result of the merge.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="551"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="4312">a new #GgitIndex or %NULL if an error occurred.</doc>
          <type name="Index" c:type="GgitIndex*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="4304">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="our_commit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="4305">the commit that reflects the destination tree.</doc>
            <type name="Commit" c:type="GgitCommit*"/>
          </parameter>
          <parameter name="their_commit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="4306">the commit that reflects the source tree.</doc>
            <type name="Commit" c:type="GgitCommit*"/>
          </parameter>
          <parameter name="merge_options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="4307">the merge options.</doc>
            <type name="MergeOptions" c:type="GgitMergeOptions*"/>
          </parameter>
        </parameters>
      </method>
      <method name="merge_trees"
              c:identifier="ggit_repository_merge_trees"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="4255">Merge two trees creating a #GgitIndex reflecting the result of the merge.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="544"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="4266">a new #GgitIndex or %NULL if an error occurred.</doc>
          <type name="Index" c:type="GgitIndex*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="4257">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="ancestor_tree" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="4258">the common ancestor between the trees, or %NULL.</doc>
            <type name="Tree" c:type="GgitTree*"/>
          </parameter>
          <parameter name="our_tree" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="4259">the tree that reflects the destination tree.</doc>
            <type name="Tree" c:type="GgitTree*"/>
          </parameter>
          <parameter name="their_tree" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="4260">the tree that reflects the source tree.</doc>
            <type name="Tree" c:type="GgitTree*"/>
          </parameter>
          <parameter name="merge_options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="4261">the merge options.</doc>
            <type name="MergeOptions" c:type="GgitMergeOptions*"/>
          </parameter>
        </parameters>
      </method>
      <method name="note_foreach"
              c:identifier="ggit_repository_note_foreach"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="4119">Loop over all the notes within a specified namespace
and issue a callback for each one.
If @callback returns a non-zero value, this will stop looping.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="523"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="4131">%TRUE if there was no error, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="4121">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="notes_ref"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="4122">canonical name of the reference to use, or %NULL to use the default ref.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     scope="call"
                     closure="2">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="4123">a #GgitNoteCallback.</doc>
            <type name="NoteCallback" c:type="GgitNoteCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="4124">callback user data.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="path_is_ignored"
              c:identifier="ggit_repository_path_is_ignored"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="124">Tests if the ignore rules apply to the path provided.

This acts similar to filtering performed when calling "git add ."
on the command line.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="528"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="135">%TRUE if @path should be ignored.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="126">A #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="127">A path within the repository.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="read_note"
              c:identifier="ggit_repository_read_note"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="4053">Reads the note for an object.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="518"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="4062">the read note or %NULL in case of an error.</doc>
          <type name="Note" c:type="GgitNote*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="4055">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="notes_ref"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="4056">canonical name of the reference to use, or %NULL to use the default ref.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="4057">OID of the git object to decorate.</doc>
            <type name="OId" c:type="GgitOId*"/>
          </parameter>
        </parameters>
      </method>
      <method name="rebase_init"
              c:identifier="ggit_repository_rebase_init"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="4345">Initializes a rebase operation to rebase the changes in @branch
relative to @upstream onto another branch. To begin the rebase
process, call git_rebase_next(). When you have finished with this
object, call g_object_unref().</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="557"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="4362">a newly allocated #GgitRebase.</doc>
          <type name="Rebase" c:type="GgitRebase*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="4347">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="branch"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="4348">the terminal commit to rebase, or %NULL to rebase the
current branch.</doc>
            <type name="AnnotatedCommit" c:type="GgitAnnotatedCommit*"/>
          </parameter>
          <parameter name="upstream"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="4350">the commit to begin rebasing from, or %NULL to
rebase all reachable commits.</doc>
            <type name="AnnotatedCommit" c:type="GgitAnnotatedCommit*"/>
          </parameter>
          <parameter name="onto"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="4352">the branch to rebase onto, or %NULL to rebase onto
the given upstream.</doc>
            <type name="AnnotatedCommit" c:type="GgitAnnotatedCommit*"/>
          </parameter>
          <parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="4354">a #GgitRebaseOptions to specify how rebase is performed, or %NULL.</doc>
            <type name="RebaseOptions" c:type="GgitRebaseOptions*"/>
          </parameter>
        </parameters>
      </method>
      <method name="rebase_open"
              c:identifier="ggit_repository_rebase_open"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="4394">Opens an existing rebase that was previously started by either an
invocation of ggit_rebase_init() or by another client.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="564"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="4403">a newly allocated #GgitRebase.</doc>
          <type name="Rebase" c:type="GgitRebase*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="4396">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="4397">a #GgitRebaseOptions to specify how rebase is performed, or %NULL.</doc>
            <type name="RebaseOptions" c:type="GgitRebaseOptions*"/>
          </parameter>
        </parameters>
      </method>
      <method name="references_foreach"
              c:identifier="ggit_repository_references_foreach"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="1336">Gathers references and run a callback for each one.

To the callback is passed the reference and the data pointer
passed to this function. If the callback returns something other than
0, the iteration will stop and @error will be set.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="365"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="1349">%TRUE if there was no error, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1338">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     scope="call"
                     closure="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1339">a #GgitReferencesCallback.</doc>
            <type name="ReferencesCallback" c:type="GgitReferencesCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1340">callback user data.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="references_foreach_name"
              c:identifier="ggit_repository_references_foreach_name"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="1381">Gathers reference names and run a callback for each one.

To the callback is passed the name of the reference and the data pointer
passed to this function. If the callback returns something other than
0, the iteration will stop and @error will be set.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="370"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="1394">%TRUE if there was no error, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1383">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     scope="call"
                     closure="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1384">a #GgitReferencesNameCallback.</doc>
            <type name="ReferencesNameCallback"
                  c:type="GgitReferencesNameCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1385">callback user data.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_note"
              c:identifier="ggit_repository_remove_note"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="4009">Removes the note for an object.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="511"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="4020">%TRUE if the note was removed from @id.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="4011">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="notes_ref"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="4012">canonical name of the reference to use, or %NULL to use the default ref.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="author" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="4013">author signature.</doc>
            <type name="Signature" c:type="GgitSignature*"/>
          </parameter>
          <parameter name="committer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="4014">committer signature.</doc>
            <type name="Signature" c:type="GgitSignature*"/>
          </parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="4015">OID of the git object to decorate.</doc>
            <type name="OId" c:type="GgitOId*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_remote"
              c:identifier="ggit_repository_remove_remote"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="2193">Removes @remote from the @repository.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="290"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="2201">%TRUE if there was no error, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2195">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2196">the remote's name.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="rename_remote"
              c:identifier="ggit_repository_rename_remote"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="2261">Rename the remote of @repository from @name to @new_name.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="299"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="2270">non-default refspecs that
cannot be renamed.</doc>
          <array c:type="gchar**">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2263">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2264">the remote name to be renamed.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="new_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2265">new name of the remote.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="reset" c:identifier="ggit_repository_reset" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="2688">Performs a reset of type @reset_type on @repository to @target,
or @error will be set.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="415"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2690">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="target" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2691">the target #GgitObject which is a commit or a tag.</doc>
            <type name="Object" c:type="GgitObject*"/>
          </parameter>
          <parameter name="reset_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2692">the #GgitResetType to perform.</doc>
            <type name="ResetType" c:type="GgitResetType"/>
          </parameter>
          <parameter name="checkout_options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2693">the #GgitCheckoutOptions to be used for a HARD reset.</doc>
            <type name="CheckoutOptions" c:type="GgitCheckoutOptions*"/>
          </parameter>
        </parameters>
      </method>
      <method name="reset_default"
              c:identifier="ggit_repository_reset_default"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="2724">Update some entries in the index from the target commit tree. The scope of
the updated entries is determined by the paths specified in @pathspecs.
Passing %NULL in @target will result in removing entries in the index
matching the provided pathspecs.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="421"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2726">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="target"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2727">the target #GgitObject which is a commit or a tag.</doc>
            <type name="Object" c:type="GgitObject*"/>
          </parameter>
          <parameter name="pathspecs" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2728">a list of file paths to reset.</doc>
            <array c:type="const gchar* const*">
              <type name="utf8" c:type="gchar*"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <method name="revert" c:identifier="ggit_repository_revert" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="3794">Revert the given @commit on top of the current working directory.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="482"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="3803">%TRUE if the revert was successfull, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3796">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="commit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3797">a #GgitCommit.</doc>
            <type name="Commit" c:type="GgitCommit*"/>
          </parameter>
          <parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="3798">a #GgitRevertOptions.</doc>
            <type name="RevertOptions" c:type="GgitRevertOptions*"/>
          </parameter>
        </parameters>
      </method>
      <method name="revparse"
              c:identifier="ggit_repository_revparse"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="664">Find an object, as specified by a revision string. See `man gitrevisions`,
or the documentation for `git rev-parse` for information on the syntax
accepted.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="426"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="674">a #GgitObject or %NULL if the revision could not be found.</doc>
          <type name="Object" c:type="GgitObject*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="666">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="spec" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="667">the revision specification.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="save_stash"
              c:identifier="ggit_repository_save_stash"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="2765">Saves the local modifications to a new stash.
It returns the commit containing the stashed state.
This commit is also the target of the direct reference refs/stash.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="430"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="2777">a new object id of the commit containing the stashed state.</doc>
          <type name="OId" c:type="GgitOId*"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2767">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="stasher" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2768">a #GgitSignature.</doc>
            <type name="Signature" c:type="GgitSignature*"/>
          </parameter>
          <parameter name="message" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2769">description along with the stashed state or %NULL to be autogenerated.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2770">a #GgitStashFlags to control the stashing process.</doc>
            <type name="StashFlags" c:type="GgitStashFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_head"
              c:identifier="ggit_repository_set_head"
              throws="1">
        <source-position filename="libgit2-glib/ggit-repository.h" line="320"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="920">%TRUE if head was successfully set, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="916">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="ref_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="917">canonical name of the reference HEAD should point to.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_head_detached"
              c:identifier="ggit_repository_set_head_detached"
              throws="1">
        <source-position filename="libgit2-glib/ggit-repository.h" line="324"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="951">%TRUE if head was successfully set, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="947">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="oid" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="948">canonical Object id of the Commit the HEAD should point to.</doc>
            <type name="OId" c:type="GgitOId*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_remote_url"
              c:identifier="ggit_repository_set_remote_url"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="2225">Sets url for the @remote from the @repository.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="294"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="2234">%TRUE if there was no error, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2227">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="remote" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2228">the remote name who's url is to be set.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="url" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2229">url of the remote.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_submodule_fetch_recurse"
              c:identifier="ggit_repository_set_submodule_fetch_recurse"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="2615">Sets the submodule.'name'.fetchRecurseSubmodules value for
the submodule. This setting won't affect any existing instances..</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="405"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2617">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2618">the name of the submodule.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="fetch_recurse_submodules" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2619">a #GgitSubmoduleRecurse.</doc>
            <type name="SubmoduleRecurse" c:type="GgitSubmoduleRecurse"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_submodule_ignore"
              c:identifier="ggit_repository_set_submodule_ignore"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="2516">Sets the ignore rule for the submodule in the configuration.
This does not affect any currently-loaded instances..</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="390"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2518">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2519">the name of the submodule.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="ignore" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2520">a #GgitSubmoduleIgnore.</doc>
            <type name="SubmoduleIgnore" c:type="GgitSubmoduleIgnore"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_submodule_update"
              c:identifier="ggit_repository_set_submodule_update"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="2548">Sets the update rule for the submodule in the configuration.
This setting won't affect any existing instances.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="395"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2550">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2551">the name of the submodule.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="update" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2552">a #GgitSubmoduleUpdate.</doc>
            <type name="SubmoduleUpdate" c:type="GgitSubmoduleUpdate"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_submodule_url"
              c:identifier="ggit_repository_set_submodule_url"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="2580">Sets the URL for the submodule in the configuration.

After calling this, you may wish to call ggit_submodule_sync() to
write the changes to the checked out submodule repository.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="400"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2582">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2583">the name of the submodule to configure.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="url" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2584">URL that should be used for the submodule.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_workdir"
              c:identifier="ggit_repository_set_workdir"
              glib:set-property="workdir">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="1194">Sets the working directory of the repository. If @update_gitlink is set to
%TRUE "core.worktree" will be set in the config if workdir is not the parent
of the .git directory).</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="348"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1196">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="workdir" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1197">the working directory.</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="update_gitlink" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1198">create/update gitlink in workdir.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="stash_foreach"
              c:identifier="ggit_repository_stash_foreach"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="2861">Loops over all the stashed states and issue a callback for each one.
If @callback returns a non-zero value, this will stop looping.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="440"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="2871">%TRUE if there was no error, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2863">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     scope="call"
                     closure="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2864">a #GgitStashCallback.</doc>
            <type name="StashCallback" c:type="GgitStashCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2865">callback user data.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="submodule_foreach"
              c:identifier="ggit_repository_submodule_foreach"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="2468">Gathers submodules and run a callback for each one.

To the callback is passed the submodule instance and name. If the callback
returns something other than 0, the iteration will stop and @error
will be set.

NOTE: the submodule instance passed to the callback is only valid during
the call to ggit_repository_submodule_foreach and may not be used after the
call has finished.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="385"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="2485">%TRUE if there was no error, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2470">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     scope="call"
                     closure="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2471">a #GgitStatusCallback.</doc>
            <type name="SubmoduleCallback" c:type="GgitSubmoduleCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="2472">callback user data.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="tag_foreach"
              c:identifier="ggit_repository_tag_foreach"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.c"
             line="1815">Get all the tags in the repository and run the provided callback on each. If
the callback returns something other than 0, the iteration will stop and
@error will be set.</doc>
        <source-position filename="libgit2-glib/ggit-repository.h" line="217"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-repository.c"
               line="1826">%TRUE if there was no error, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1817">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </instance-parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     scope="call"
                     closure="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1818">a #GgitTagCallback.</doc>
            <type name="TagCallback" c:type="GgitTagCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-repository.c"
                 line="1819">callback user data.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <property name="clone-options"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="CloneOptions"/>
      </property>
      <property name="head" transfer-ownership="none" getter="get_head">
        <type name="Ref"/>
      </property>
      <property name="init"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="is-bare"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="location"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_location">
        <type name="Gio.File"/>
      </property>
      <property name="url"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="workdir"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_workdir"
                getter="get_workdir">
        <type name="Gio.File"/>
      </property>
      <field name="parent" readable="0" private="1">
        <type name="Native" c:type="GgitNative"/>
      </field>
    </class>
    <record name="RepositoryClass"
            c:type="GgitRepositoryClass"
            glib:is-gtype-struct-for="Repository">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-repository.h"
           line="64">The class structure for #GgitRepositoryClass.</doc>
      <source-position filename="libgit2-glib/ggit-repository.h" line="74"/>
      <field name="parent_class" readable="0" private="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-repository.h"
             line="66">The parent class.</doc>
        <type name="NativeClass" c:type="GgitNativeClass"/>
      </field>
    </record>
    <enumeration name="ResetType"
                 glib:type-name="GgitResetType"
                 glib:get-type="ggit_reset_type_get_type"
                 c:type="GgitResetType">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="706">Describes the type of reset to perform.</doc>
      <member name="soft"
              value="1"
              c:identifier="GGIT_RESET_SOFT"
              glib:nick="soft"
              glib:name="GGIT_RESET_SOFT">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="708">The head will be moved to the commit.</doc>
      </member>
      <member name="mixed"
              value="2"
              c:identifier="GGIT_RESET_MIXED"
              glib:nick="mixed"
              glib:name="GGIT_RESET_MIXED">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="709">the head will be moved to the commit and the index
                   will be replaced with the content of the commit tree.</doc>
      </member>
      <member name="hard"
              value="3"
              c:identifier="GGIT_RESET_HARD"
              glib:nick="hard"
              glib:name="GGIT_RESET_HARD">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="711">MIXED plus changes in working tree discarded.</doc>
      </member>
    </enumeration>
    <record name="RevertOptions"
            c:type="GgitRevertOptions"
            opaque="1"
            glib:type-name="GgitRevertOptions"
            glib:get-type="ggit_revert_options_get_type"
            c:symbol-prefix="revert_options">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="288">Represents the options used when reverting.</doc>
      <source-position filename="libgit2-glib/ggit-types.h" line="293"/>
      <constructor name="new" c:identifier="ggit_revert_options_new">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-revert-options.c"
             line="89">Create a new #GgitRevertOptions. Note that the passed in @merge_options and
@checkout_options are copied by this function, and alterations in either
after this call are therefore not reflected in the revert options.

The @mainline indicates which parent to use for the revert when reverting
a merge commit.</doc>
        <source-position filename="libgit2-glib/ggit-revert-options.h"
                         line="45"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-revert-options.c"
               line="102">a #GgitRevertOptions or %NULL.</doc>
          <type name="RevertOptions" c:type="GgitRevertOptions*"/>
        </return-value>
        <parameters>
          <parameter name="mainline" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-revert-options.c"
                 line="91">the mainline.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="merge_options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-revert-options.c"
                 line="92">a #GgitMergeOptions.</doc>
            <type name="MergeOptions" c:type="GgitMergeOptions*"/>
          </parameter>
          <parameter name="checkout_options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-revert-options.c"
                 line="93">a #GgitCheckoutOptions.</doc>
            <type name="CheckoutOptions" c:type="GgitCheckoutOptions*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="copy" c:identifier="ggit_revert_options_copy">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-revert-options.c"
             line="50">Copies @revert_options into a newly allocated #GgitRevertOptions.</doc>
        <source-position filename="libgit2-glib/ggit-revert-options.h"
                         line="42"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-revert-options.c"
               line="56">a newly allocated #GgitRevertOptions or %NULL.</doc>
          <type name="RevertOptions" c:type="GgitRevertOptions*"/>
        </return-value>
        <parameters>
          <instance-parameter name="revert_options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-revert-options.c"
                 line="52">a #GgitRevertOptions.</doc>
            <type name="RevertOptions" c:type="GgitRevertOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="ggit_revert_options_free">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-revert-options.c"
             line="68">Frees @revert_options.</doc>
        <source-position filename="libgit2-glib/ggit-revert-options.h"
                         line="43"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="revert_options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-revert-options.c"
                 line="70">a #GgitRevertOptions.</doc>
            <type name="RevertOptions" c:type="GgitRevertOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <class name="RevisionWalker"
           c:symbol-prefix="revision_walker"
           c:type="GgitRevisionWalker"
           parent="Native"
           glib:type-name="GgitRevisionWalker"
           glib:get-type="ggit_revision_walker_get_type"
           glib:type-struct="RevisionWalkerClass">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-revision-walker.c"
           line="30">Represents a revision walker.</doc>
      <source-position filename="libgit2-glib/ggit-revision-walker.h"
                       line="44"/>
      <implements name="Gio.Initable"/>
      <constructor name="new"
                   c:identifier="ggit_revision_walker_new"
                   throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-revision-walker.c"
             line="177">Creates a new revision walker to iterate through @repository.

This revision walker uses a custom memory pool and an internal
commit cache, so it is relatively expensive to allocate.

For maximum performance, this revision walker should be
reused for different walks.

This revision walker is *not* thread safe: it may only be
used to walk a repository on a single thread; however,
it is possible to have several revision walkers in
several different threads walking the same repository.</doc>
        <source-position filename="libgit2-glib/ggit-revision-walker.h"
                         line="46"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-revision-walker.c"
               line="195">a new #GgitRevisionWalker or %NULL.</doc>
          <type name="RevisionWalker" c:type="GgitRevisionWalker*"/>
        </return-value>
        <parameters>
          <parameter name="repository" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-revision-walker.c"
                 line="179">a #GgitRepository.</doc>
            <type name="Repository" c:type="GgitRepository*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_repository"
              c:identifier="ggit_revision_walker_get_repository"
              glib:get-property="repository">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-revision-walker.c"
             line="566">Gets the repository on which this walker is operating.</doc>
        <source-position filename="libgit2-glib/ggit-revision-walker.h"
                         line="91"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-revision-walker.c"
               line="572">the repository on which this walker is operating or %NULL.</doc>
          <type name="Repository" c:type="GgitRepository*"/>
        </return-value>
        <parameters>
          <instance-parameter name="walker" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-revision-walker.c"
                 line="568">a #GgitRepository.</doc>
            <type name="RevisionWalker" c:type="GgitRevisionWalker*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="hide" c:identifier="ggit_revision_walker_hide" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-revision-walker.c"
             line="384">Marks a commit (and its ancestors) uninteresting for the output.

The given OID must belong to a commit on the walked
repository.

The resolved commit and all its parents will be hidden from the
output on the revision walk.</doc>
        <source-position filename="libgit2-glib/ggit-revision-walker.h"
                         line="70"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="walker" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-revision-walker.c"
                 line="386">a #GgitRevisionWalker.</doc>
            <type name="RevisionWalker" c:type="GgitRevisionWalker*"/>
          </instance-parameter>
          <parameter name="oid" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-revision-walker.c"
                 line="387">a #GgitOId.</doc>
            <type name="OId" c:type="GgitOId*"/>
          </parameter>
        </parameters>
      </method>
      <method name="hide_glob"
              c:identifier="ggit_revision_walker_hide_glob"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-revision-walker.c"
             line="418">Hide all OIDs pointed to by references that match the given glob pattern
to the revsision walker. A leading 'refs/' is implied if not present, as well
as a trailing '/ \ *' if the glob lacks '?', '\ *' or '['.</doc>
        <source-position filename="libgit2-glib/ggit-revision-walker.h"
                         line="74"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="walker" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-revision-walker.c"
                 line="420">a #GgitRevisionWalker.</doc>
            <type name="RevisionWalker" c:type="GgitRevisionWalker*"/>
          </instance-parameter>
          <parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-revision-walker.c"
                 line="421">the glob to hide.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="hide_head"
              c:identifier="ggit_revision_walker_hide_head"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-revision-walker.c"
             line="478">Hide the OID of the current HEAD to the revision walker.</doc>
        <source-position filename="libgit2-glib/ggit-revision-walker.h"
                         line="82"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="walker" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-revision-walker.c"
                 line="480">a #GgitRevisionWalker.</doc>
            <type name="RevisionWalker" c:type="GgitRevisionWalker*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="hide_ref"
              c:identifier="ggit_revision_walker_hide_ref"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-revision-walker.c"
             line="449">Hide the OID pointed to by the named reference to the revision walker.</doc>
        <source-position filename="libgit2-glib/ggit-revision-walker.h"
                         line="78"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="walker" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-revision-walker.c"
                 line="451">a #GgitRevisionWalker.</doc>
            <type name="RevisionWalker" c:type="GgitRevisionWalker*"/>
          </instance-parameter>
          <parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-revision-walker.c"
                 line="452">the reference to hide.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="next" c:identifier="ggit_revision_walker_next" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-revision-walker.c"
             line="503">Gets the next commit from the revision walk.

The initial call to this method is *not* blocking when
iterating through a repository with a time-sorting mode.

Iterating with Topological or inverted modes makes the initial
call blocking to preprocess the commit list, but this block should be
mostly unnoticeable on most repositories (topological preprocessing
times at 0.3s on the git.git repo).

The revision walker is reset when the walk is over.</doc>
        <source-position filename="libgit2-glib/ggit-revision-walker.h"
                         line="85"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-revision-walker.c"
               line="520">the next commit from the revision walk or %NULL.</doc>
          <type name="OId" c:type="GgitOId*"/>
        </return-value>
        <parameters>
          <instance-parameter name="walker" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-revision-walker.c"
                 line="505">a #GgitRevisionWalker.</doc>
            <type name="RevisionWalker" c:type="GgitRevisionWalker*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="push" c:identifier="ggit_revision_walker_push" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-revision-walker.c"
             line="231">Marks a commit to start traversal from.

The given OID must belong to a commit on the walked
repository.

The given commit will be used as one of the roots
when starting the revision walk. At least one commit
must be pushed the repository before a walk can
be started.</doc>
        <source-position filename="libgit2-glib/ggit-revision-walker.h"
                         line="51"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="walker" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-revision-walker.c"
                 line="233">a #GgitRevisionWalker.</doc>
            <type name="RevisionWalker" c:type="GgitRevisionWalker*"/>
          </instance-parameter>
          <parameter name="oid" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-revision-walker.c"
                 line="234">a #GgitOId.</doc>
            <type name="OId" c:type="GgitOId*"/>
          </parameter>
        </parameters>
      </method>
      <method name="push_glob"
              c:identifier="ggit_revision_walker_push_glob"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-revision-walker.c"
             line="267">Push all OIDs pointed to by references that match the given glob pattern
to the revsision walker. A leading 'refs/' is implied if not present, as well
as a trailing '/ \ *' if the glob lacks '?', '\ *' or '['.</doc>
        <source-position filename="libgit2-glib/ggit-revision-walker.h"
                         line="55"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="walker" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-revision-walker.c"
                 line="269">a #GgitRevisionWalker.</doc>
            <type name="RevisionWalker" c:type="GgitRevisionWalker*"/>
          </instance-parameter>
          <parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-revision-walker.c"
                 line="270">the glob to push.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="push_head"
              c:identifier="ggit_revision_walker_push_head"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-revision-walker.c"
             line="359">Push the OID of the current HEAD to the revision walker.</doc>
        <source-position filename="libgit2-glib/ggit-revision-walker.h"
                         line="63"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="walker" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-revision-walker.c"
                 line="361">a #GgitRevisionWalker.</doc>
            <type name="RevisionWalker" c:type="GgitRevisionWalker*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="push_range"
              c:identifier="ggit_revision_walker_push_range"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-revision-walker.c"
             line="327">Push and hide the respective endpoints of the given range. The range
should be of the form: &amp;ltcommit&amp;gt..&amp;lt;commit&amp;gt;, where each &amp;lt;commit&amp;gt; is in the
form accepted by revparse. The left-hand commit will be hidden and the
right-hand commit pushed.</doc>
        <source-position filename="libgit2-glib/ggit-revision-walker.h"
                         line="66"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="walker" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-revision-walker.c"
                 line="329">a #GgitRevisionWalker.</doc>
            <type name="RevisionWalker" c:type="GgitRevisionWalker*"/>
          </instance-parameter>
          <parameter name="range" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-revision-walker.c"
                 line="330">the range to push.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="push_ref"
              c:identifier="ggit_revision_walker_push_ref"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-revision-walker.c"
             line="298">Push the OID pointed to by the named reference to the revision walker.</doc>
        <source-position filename="libgit2-glib/ggit-revision-walker.h"
                         line="59"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="walker" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-revision-walker.c"
                 line="300">a #GgitRevisionWalker.</doc>
            <type name="RevisionWalker" c:type="GgitRevisionWalker*"/>
          </instance-parameter>
          <parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-revision-walker.c"
                 line="301">the reference to push.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="reset" c:identifier="ggit_revision_walker_reset">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-revision-walker.c"
             line="209">Resets the revision walker for reuse.

This will clear all the pushed and hidden commits, and
leave the walker in a blank state (just like at
creation) ready to receive new commit pushes and
start a new walk.

The revision walk is automatically reset when a walk
is over.</doc>
        <source-position filename="libgit2-glib/ggit-revision-walker.h"
                         line="49"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="walker" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-revision-walker.c"
                 line="211">a #GgitRevisionWalker.</doc>
            <type name="RevisionWalker" c:type="GgitRevisionWalker*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_sort_mode"
              c:identifier="ggit_revision_walker_set_sort_mode">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-revision-walker.c"
             line="547">Change the sorting mode when iterating through the
repository's contents.

Changing the sorting mode resets the walker.</doc>
        <source-position filename="libgit2-glib/ggit-revision-walker.h"
                         line="88"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="walker" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-revision-walker.c"
                 line="549">a #GgitRevisionWalker.</doc>
            <type name="RevisionWalker" c:type="GgitRevisionWalker*"/>
          </instance-parameter>
          <parameter name="sort_mode" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-revision-walker.c"
                 line="550">a #GgitSortMode value.</doc>
            <type name="SortMode" c:type="GgitSortMode"/>
          </parameter>
        </parameters>
      </method>
      <property name="repository"
                writable="1"
                construct="1"
                transfer-ownership="none"
                getter="get_repository">
        <type name="Repository"/>
      </property>
      <field name="parent_instance">
        <type name="Native" c:type="GgitNative"/>
      </field>
    </class>
    <record name="RevisionWalkerClass"
            c:type="GgitRevisionWalkerClass"
            glib:is-gtype-struct-for="RevisionWalker">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-revision-walker.h"
           line="34">The class structure for #GgitRevisionWalkerClass.</doc>
      <source-position filename="libgit2-glib/ggit-revision-walker.h"
                       line="44"/>
      <field name="parent_class" readable="0" private="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-revision-walker.h"
             line="36">The parent class.</doc>
        <type name="NativeClass" c:type="GgitNativeClass"/>
      </field>
    </record>
    <function-macro name="STATUS_OPTIONS"
                    c:identifier="GGIT_STATUS_OPTIONS"
                    introspectable="0">
      <source-position filename="libgit2-glib/ggit-status-options.h"
                       line="34"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="SUBMODULE"
                    c:identifier="GGIT_SUBMODULE"
                    introspectable="0">
      <source-position filename="libgit2-glib/ggit-submodule.h" line="33"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <class name="Signature"
           c:symbol-prefix="signature"
           c:type="GgitSignature"
           parent="Native"
           glib:type-name="GgitSignature"
           glib:get-type="ggit_signature_get_type"
           glib:type-struct="SignatureClass">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-signature.c"
           line="27">Represents an action signature.</doc>
      <source-position filename="libgit2-glib/ggit-signature.h" line="31"/>
      <constructor name="new" c:identifier="ggit_signature_new" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-signature.c"
             line="151">Creates a new #GgitSignature. Name and e-mail are assumed to be in UTF-8.</doc>
        <source-position filename="libgit2-glib/ggit-signature.h" line="37"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-signature.c"
               line="160">a newly allocated #GgitSignature or %NULL.</doc>
          <type name="Signature" c:type="GgitSignature*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-signature.c"
                 line="153">the name of the person.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="email" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-signature.c"
                 line="154">the email of the person.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="signature_time" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-signature.c"
                 line="155">the time when the action happened.</doc>
            <type name="GLib.DateTime" c:type="GDateTime*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_now"
                   c:identifier="ggit_signature_new_now"
                   throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-signature.c"
             line="202">Creates a new #GgitSignature with a timestamp of 'now'. Name and e-mail are
assumed to be in UTF-8.</doc>
        <source-position filename="libgit2-glib/ggit-signature.h" line="42"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-signature.c"
               line="211">a newly allocated #GgitSignature or %NULL.</doc>
          <type name="Signature" c:type="GgitSignature*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-signature.c"
                 line="204">the name of the person.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="email" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-signature.c"
                 line="205">the email of the person.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="copy" c:identifier="ggit_signature_copy">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-signature.c"
             line="240">Create a copy of the signature.</doc>
        <source-position filename="libgit2-glib/ggit-signature.h" line="46"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-signature.c"
               line="246">a #GgitSignature or %NULL.</doc>
          <type name="Signature" c:type="GgitSignature*"/>
        </return-value>
        <parameters>
          <instance-parameter name="signature" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-signature.c"
                 line="242">a #GgitSignature.</doc>
            <type name="Signature" c:type="GgitSignature*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_email" c:identifier="ggit_signature_get_email">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-signature.c"
             line="297">Gets the email of the person.</doc>
        <source-position filename="libgit2-glib/ggit-signature.h" line="50"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-signature.c"
               line="303">the email of the person or %NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="signature" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-signature.c"
                 line="299">a #GgitSignature.</doc>
            <type name="Signature" c:type="GgitSignature*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="ggit_signature_get_name">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-signature.c"
             line="273">Gets the name of the person.</doc>
        <source-position filename="libgit2-glib/ggit-signature.h" line="48"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-signature.c"
               line="279">the name of the person or %NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="signature" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-signature.c"
                 line="275">a #GgitSignature.</doc>
            <type name="Signature" c:type="GgitSignature*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_time" c:identifier="ggit_signature_get_time">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-signature.c"
             line="321">Gets the time when the action happened. Note that the time is returned in
the timezone of the commit (see #ggit_signature_get_time_zone).</doc>
        <source-position filename="libgit2-glib/ggit-signature.h" line="52"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-signature.c"
               line="328">the time when the action happened or %NULL.</doc>
          <type name="GLib.DateTime" c:type="GDateTime*"/>
        </return-value>
        <parameters>
          <instance-parameter name="signature" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-signature.c"
                 line="323">a #GgitSignature.</doc>
            <type name="Signature" c:type="GgitSignature*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_time_zone" c:identifier="ggit_signature_get_time_zone">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-signature.c"
             line="355">Gets the timezone in which the action happened.</doc>
        <source-position filename="libgit2-glib/ggit-signature.h" line="54"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-signature.c"
               line="361">the timezone in which the action happened or %NULL.</doc>
          <type name="GLib.TimeZone" c:type="GTimeZone*"/>
        </return-value>
        <parameters>
          <instance-parameter name="signature" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-signature.c"
                 line="357">a #GgitSignature.</doc>
            <type name="Signature" c:type="GgitSignature*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="encoding"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
    </class>
    <record name="SignatureClass"
            c:type="GgitSignatureClass"
            glib:is-gtype-struct-for="Signature">
      <source-position filename="libgit2-glib/ggit-signature.h" line="31"/>
      <field name="parent_class">
        <type name="NativeClass" c:type="GgitNativeClass"/>
      </field>
    </record>
    <bitfield name="SortMode"
              glib:type-name="GgitSortMode"
              glib:get-type="ggit_sort_mode_get_type"
              c:type="GgitSortMode">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="721">The type of sorting mode for the revision walker.</doc>
      <member name="none"
              value="0"
              c:identifier="GGIT_SORT_NONE"
              glib:nick="none"
              glib:name="GGIT_SORT_NONE">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="723">Sorts the repository contents in no particular ordering;
                 this sorting is arbitrary, implementation-specific
                 and subject to change at any time.</doc>
      </member>
      <member name="topological"
              value="1"
              c:identifier="GGIT_SORT_TOPOLOGICAL"
              glib:nick="topological"
              glib:name="GGIT_SORT_TOPOLOGICAL">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="726">Sorts the repository contents in topological order
                        (parents before children); this sorting mode
                        can be combined with time sorting.</doc>
      </member>
      <member name="time"
              value="2"
              c:identifier="GGIT_SORT_TIME"
              glib:nick="time"
              glib:name="GGIT_SORT_TIME">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="729">Sort the repository contents by commit time;
                 this sorting mode can be combined with
                 topological sorting.</doc>
      </member>
      <member name="reverse"
              value="4"
              c:identifier="GGIT_SORT_REVERSE"
              glib:nick="reverse"
              glib:name="GGIT_SORT_REVERSE">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="732">Iterate through the repository contents in reverse
                    order; this sorting mode can be combined with
                    any of the above.</doc>
      </member>
    </bitfield>
    <callback name="StashCallback" c:type="GgitStashCallback">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="1202">When iterating over all the stashed states, callback that will be
issued per entry. See ggit_repository_stash_foreach().</doc>
      <source-position filename="libgit2-glib/ggit-types.h" line="1215"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="1213">0 to go continue or a #GgitError in case there was an error.</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="index" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-types.h"
               line="1204">the position within the stash list. 0 points to the
most recent stashed state.</doc>
          <type name="gsize" c:type="gsize"/>
        </parameter>
        <parameter name="message" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-types.h"
               line="1206">the stash message.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="stash_oid" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-types.h"
               line="1207">the commit oid of the stashed state.</doc>
          <type name="OId" c:type="GgitOId*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="3">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-types.h"
               line="1208">user-suplied data.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <bitfield name="StashFlags"
              glib:type-name="GgitStashFlags"
              glib:get-type="ggit_stash_flags_get_type"
              c:type="GgitStashFlags">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="745">Describes how a stash should be applied.</doc>
      <member name="default"
              value="0"
              c:identifier="GGIT_STASH_DEFAULT"
              glib:nick="default"
              glib:name="GGIT_STASH_DEFAULT">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="747">default stash.</doc>
      </member>
      <member name="keep_index"
              value="1"
              c:identifier="GGIT_STASH_KEEP_INDEX"
              glib:nick="keep-index"
              glib:name="GGIT_STASH_KEEP_INDEX">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="748">All changes already added to the index
are left intact in the working directory.</doc>
      </member>
      <member name="include_untracked"
              value="2"
              c:identifier="GGIT_STASH_INCLUDE_UNTRACKED"
              glib:nick="include-untracked"
              glib:name="GGIT_STASH_INCLUDE_UNTRACKED">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="750">All untracked files are also stashed and then
cleaned up from the working directory.</doc>
      </member>
      <member name="include_ignored"
              value="4"
              c:identifier="GGIT_STASH_INCLUDE_IGNORED"
              glib:nick="include-ignored"
              glib:name="GGIT_STASH_INCLUDE_IGNORED">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="752">All ignored files are also stashed and then
cleaned up from the working directory.</doc>
      </member>
    </bitfield>
    <callback name="StatusCallback" c:type="GgitStatusCallback">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="1220">The type of the callback functions for retrieving the status of the files
in a #GgitRepository. See ggit_repository_file_status_foreach().</doc>
      <source-position filename="libgit2-glib/ggit-types.h" line="1231"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="1229">0 to go for the next file or a #GgitError in case there was an error.</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="path" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-types.h"
               line="1222">the file to retrieve status for, rooted at the repository working dir.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="status_flags" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-types.h"
               line="1223">the status value.</doc>
          <type name="StatusFlags" c:type="GgitStatusFlags"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="2">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-types.h"
               line="1224">user-supplied data.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <bitfield name="StatusFlags"
              glib:type-name="GgitStatusFlags"
              glib:get-type="ggit_status_flags_get_type"
              c:type="GgitStatusFlags">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="765">Describes a file's status.</doc>
      <member name="current"
              value="0"
              c:identifier="GGIT_STATUS_CURRENT"
              glib:nick="current"
              glib:name="GGIT_STATUS_CURRENT">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="767">file is current.</doc>
      </member>
      <member name="index_new"
              value="1"
              c:identifier="GGIT_STATUS_INDEX_NEW"
              glib:nick="index-new"
              glib:name="GGIT_STATUS_INDEX_NEW">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="768">file in index is new.</doc>
      </member>
      <member name="index_modified"
              value="2"
              c:identifier="GGIT_STATUS_INDEX_MODIFIED"
              glib:nick="index-modified"
              glib:name="GGIT_STATUS_INDEX_MODIFIED">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="769">file in index is modified.</doc>
      </member>
      <member name="index_deleted"
              value="4"
              c:identifier="GGIT_STATUS_INDEX_DELETED"
              glib:nick="index-deleted"
              glib:name="GGIT_STATUS_INDEX_DELETED">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="770">file in index is deleted.</doc>
      </member>
      <member name="index_renamed"
              value="8"
              c:identifier="GGIT_STATUS_INDEX_RENAMED"
              glib:nick="index-renamed"
              glib:name="GGIT_STATUS_INDEX_RENAMED">
      </member>
      <member name="index_typechange"
              value="16"
              c:identifier="GGIT_STATUS_INDEX_TYPECHANGE"
              glib:nick="index-typechange"
              glib:name="GGIT_STATUS_INDEX_TYPECHANGE">
      </member>
      <member name="working_tree_new"
              value="128"
              c:identifier="GGIT_STATUS_WORKING_TREE_NEW"
              glib:nick="working-tree-new"
              glib:name="GGIT_STATUS_WORKING_TREE_NEW">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="771">file in working tree is new.</doc>
      </member>
      <member name="working_tree_modified"
              value="256"
              c:identifier="GGIT_STATUS_WORKING_TREE_MODIFIED"
              glib:nick="working-tree-modified"
              glib:name="GGIT_STATUS_WORKING_TREE_MODIFIED">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="772">file in working tree is modified.</doc>
      </member>
      <member name="working_tree_deleted"
              value="512"
              c:identifier="GGIT_STATUS_WORKING_TREE_DELETED"
              glib:nick="working-tree-deleted"
              glib:name="GGIT_STATUS_WORKING_TREE_DELETED">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="773">file in working tree is deleted.</doc>
      </member>
      <member name="working_tree_typechange"
              value="1024"
              c:identifier="GGIT_STATUS_WORKING_TREE_TYPECHANGE"
              glib:nick="working-tree-typechange"
              glib:name="GGIT_STATUS_WORKING_TREE_TYPECHANGE">
      </member>
      <member name="working_tree_renamed"
              value="2048"
              c:identifier="GGIT_STATUS_WORKING_TREE_RENAMED"
              glib:nick="working-tree-renamed"
              glib:name="GGIT_STATUS_WORKING_TREE_RENAMED">
      </member>
      <member name="working_tree_unreadable"
              value="4096"
              c:identifier="GGIT_STATUS_WORKING_TREE_UNREADABLE"
              glib:nick="working-tree-unreadable"
              glib:name="GGIT_STATUS_WORKING_TREE_UNREADABLE">
      </member>
      <member name="ignored"
              value="16384"
              c:identifier="GGIT_STATUS_IGNORED"
              glib:nick="ignored"
              glib:name="GGIT_STATUS_IGNORED">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="774">file is ignored.</doc>
      </member>
      <member name="conflicted"
              value="32768"
              c:identifier="GGIT_STATUS_CONFLICTED"
              glib:nick="conflicted"
              glib:name="GGIT_STATUS_CONFLICTED">
      </member>
    </bitfield>
    <bitfield name="StatusOption"
              glib:type-name="GgitStatusOption"
              glib:get-type="ggit_status_option_get_type"
              c:type="GgitStatusOption">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="885">GGIT_STATUS_OPTION_INCLUDE_UNTRACKED: include untracked files (default).
GGIT_STATUS_OPTION_INCLUDE_IGNORED: include ignored files (default).
GGIT_STATUS_OPTION_INCLUDE_UNMODIFIED: include unmodified files.
GGIT_STATUS_OPTION_EXCLUDE_SUBMODULES: exclude submodules.
GGIT_STATUS_OPTION_RECURSE_UNTRACKED_DIRS: search untracked directories recursively (default).
GGIT_STATUS_OPTION_DISABLE_PATHSPEC_MATCH: do not match path specifications.
GGIT_STATUS_OPTION_RECURSE_IGNORED_DIRS: search ignored directories recursively.
GGIT_STATUS_OPTION_RENAMES_HEAD_TO_INDEX: indicates that rename detection
should be processed between the head and the index and enables
the GIT_STATUS_INDEX_RENAMED as a possible status flag.
GGIT_STATUS_OPTION_RENAMES_INDEX_TO_WORKDIR: indicates tha rename
detection should be run between the index and the working directory
and enabled GIT_STATUS_WT_RENAMED as a possible status flag.
GGIT_STATUS_OPTION_SORT_CASE_SENSITIVELY: sort case sensitive.
GGIT_STATUS_OPTION_SORT_CASE_INSENSITIVELY: sort case insensitive.
GGIT_STATUS_OPTION_DEFAULT: default flags.
Status options specified when using #ggit_repository_file_status_foreach.</doc>
      <member name="include_untracked"
              value="1"
              c:identifier="GGIT_STATUS_OPTION_INCLUDE_UNTRACKED"
              glib:nick="include-untracked"
              glib:name="GGIT_STATUS_OPTION_INCLUDE_UNTRACKED">
      </member>
      <member name="include_ignored"
              value="2"
              c:identifier="GGIT_STATUS_OPTION_INCLUDE_IGNORED"
              glib:nick="include-ignored"
              glib:name="GGIT_STATUS_OPTION_INCLUDE_IGNORED">
      </member>
      <member name="include_unmodified"
              value="4"
              c:identifier="GGIT_STATUS_OPTION_INCLUDE_UNMODIFIED"
              glib:nick="include-unmodified"
              glib:name="GGIT_STATUS_OPTION_INCLUDE_UNMODIFIED">
      </member>
      <member name="exclude_submodules"
              value="8"
              c:identifier="GGIT_STATUS_OPTION_EXCLUDE_SUBMODULES"
              glib:nick="exclude-submodules"
              glib:name="GGIT_STATUS_OPTION_EXCLUDE_SUBMODULES">
      </member>
      <member name="recurse_untracked_dirs"
              value="16"
              c:identifier="GGIT_STATUS_OPTION_RECURSE_UNTRACKED_DIRS"
              glib:nick="recurse-untracked-dirs"
              glib:name="GGIT_STATUS_OPTION_RECURSE_UNTRACKED_DIRS">
      </member>
      <member name="disable_pathspec_match"
              value="32"
              c:identifier="GGIT_STATUS_OPTION_DISABLE_PATHSPEC_MATCH"
              glib:nick="disable-pathspec-match"
              glib:name="GGIT_STATUS_OPTION_DISABLE_PATHSPEC_MATCH">
      </member>
      <member name="recurse_ignored_dirs"
              value="64"
              c:identifier="GGIT_STATUS_OPTION_RECURSE_IGNORED_DIRS"
              glib:nick="recurse-ignored-dirs"
              glib:name="GGIT_STATUS_OPTION_RECURSE_IGNORED_DIRS">
      </member>
      <member name="renames_head_to_index"
              value="128"
              c:identifier="GGIT_STATUS_OPTION_RENAMES_HEAD_TO_INDEX"
              glib:nick="renames-head-to-index"
              glib:name="GGIT_STATUS_OPTION_RENAMES_HEAD_TO_INDEX">
      </member>
      <member name="renames_index_to_workdir"
              value="256"
              c:identifier="GGIT_STATUS_OPTION_RENAMES_INDEX_TO_WORKDIR"
              glib:nick="renames-index-to-workdir"
              glib:name="GGIT_STATUS_OPTION_RENAMES_INDEX_TO_WORKDIR">
      </member>
      <member name="sort_case_sensitively"
              value="512"
              c:identifier="GGIT_STATUS_OPTION_SORT_CASE_SENSITIVELY"
              glib:nick="sort-case-sensitively"
              glib:name="GGIT_STATUS_OPTION_SORT_CASE_SENSITIVELY">
      </member>
      <member name="sort_case_insensitively"
              value="1024"
              c:identifier="GGIT_STATUS_OPTION_SORT_CASE_INSENSITIVELY"
              glib:nick="sort-case-insensitively"
              glib:name="GGIT_STATUS_OPTION_SORT_CASE_INSENSITIVELY">
      </member>
      <member name="default"
              value="19"
              c:identifier="GGIT_STATUS_OPTION_DEFAULT"
              glib:nick="default"
              glib:name="GGIT_STATUS_OPTION_DEFAULT">
      </member>
    </bitfield>
    <record name="StatusOptions"
            c:type="GgitStatusOptions"
            opaque="1"
            glib:type-name="GgitStatusOptions"
            glib:get-type="ggit_status_options_get_type"
            c:symbol-prefix="status_options">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="253">Represents the options used when creating getting file status.</doc>
      <source-position filename="libgit2-glib/ggit-types.h" line="258"/>
      <constructor name="new" c:identifier="ggit_status_options_new">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-status-options.c"
             line="91">Creates a new #GgitStatusOptions for use in #ggit_repository_stash_foreach.</doc>
        <source-position filename="libgit2-glib/ggit-status-options.h"
                         line="44"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-status-options.c"
               line="99">a newly allocated #GgitStatusOptions.</doc>
          <type name="StatusOptions" c:type="GgitStatusOptions*"/>
        </return-value>
        <parameters>
          <parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-status-options.c"
                 line="93">status options.</doc>
            <type name="StatusOption" c:type="GgitStatusOption"/>
          </parameter>
          <parameter name="show" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-status-options.c"
                 line="94">status show options.</doc>
            <type name="StatusShow" c:type="GgitStatusShow"/>
          </parameter>
          <parameter name="pathspec"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-status-options.c"
                 line="95">which paths to show, defaults to showing all paths.</doc>
            <array c:type="const gchar**">
              <type name="utf8" c:type="gchar*"/>
            </array>
          </parameter>
        </parameters>
      </constructor>
      <method name="copy" c:identifier="ggit_status_options_copy">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-status-options.c"
             line="47">Copies @status_options into a newly allocated #GgitStatusOptions.</doc>
        <source-position filename="libgit2-glib/ggit-status-options.h"
                         line="41"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-status-options.c"
               line="53">a newly allocated #GgitStatusOptions or %NULL.</doc>
          <type name="StatusOptions" c:type="GgitStatusOptions*"/>
        </return-value>
        <parameters>
          <instance-parameter name="status_options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-status-options.c"
                 line="49">a #GgitStatusOptions.</doc>
            <type name="StatusOptions" c:type="GgitStatusOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="ggit_status_options_free">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-status-options.c"
             line="72">Frees @status_options.</doc>
        <source-position filename="libgit2-glib/ggit-status-options.h"
                         line="42"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="status_options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-status-options.c"
                 line="74">a #GgitStatusOptions.</doc>
            <type name="StatusOptions" c:type="GgitStatusOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <enumeration name="StatusShow"
                 glib:type-name="GgitStatusShow"
                 glib:get-type="ggit_status_show_get_type"
                 c:type="GgitStatusShow">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="922">Show options for #ggit_repository_file_status_foreach. Determines which
files are included in the status.</doc>
      <member name="index_and_workdir"
              value="0"
              c:identifier="GGIT_STATUS_SHOW_INDEX_AND_WORKDIR"
              glib:nick="index-and-workdir"
              glib:name="GGIT_STATUS_SHOW_INDEX_AND_WORKDIR">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="924">receive one callback for each file,
even if the file is in both the index and the workdir (combining #GgitStatusFlags).</doc>
      </member>
      <member name="index_only"
              value="1"
              c:identifier="GGIT_STATUS_SHOW_INDEX_ONLY"
              glib:nick="index-only"
              glib:name="GGIT_STATUS_SHOW_INDEX_ONLY">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="926">only receive callbacks for files in the index.</doc>
      </member>
      <member name="workdir_only"
              value="2"
              c:identifier="GGIT_STATUS_SHOW_WORKDIR_ONLY"
              glib:nick="workdir-only"
              glib:name="GGIT_STATUS_SHOW_WORKDIR_ONLY">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="927">only receive callbacks for files in the workdir.</doc>
      </member>
    </enumeration>
    <record name="Submodule"
            c:type="GgitSubmodule"
            opaque="1"
            glib:type-name="GgitSubmodule"
            glib:get-type="ggit_submodule_get_type"
            c:symbol-prefix="submodule">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="260">Represents a git submodule.</doc>
      <source-position filename="libgit2-glib/ggit-types.h" line="265"/>
      <method name="get_fetch_recurse"
              c:identifier="ggit_submodule_get_fetch_recurse">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-submodule.c"
             line="313">Gets whether to fetch recursively. See see gitmodules(5) fetchRecurseSubmodules.</doc>
        <source-position filename="libgit2-glib/ggit-submodule.h" line="64"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-submodule.c"
               line="319">whether or not fetch recursively.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="submodule" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-submodule.c"
                 line="315">a #GgitSubmodule.</doc>
            <type name="Submodule" c:type="GgitSubmodule*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_head_id" c:identifier="ggit_submodule_get_head_id">
        <source-position filename="libgit2-glib/ggit-submodule.h" line="56"/>
        <return-value transfer-ownership="full">
          <type name="OId" c:type="GgitOId*"/>
        </return-value>
        <parameters>
          <instance-parameter name="submodule" transfer-ownership="none">
            <type name="Submodule" c:type="GgitSubmodule*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_ignore" c:identifier="ggit_submodule_get_ignore">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-submodule.c"
             line="279">Gets a #GgitSubmoduleIgnore. See see gitmodules(5) ignore.</doc>
        <source-position filename="libgit2-glib/ggit-submodule.h" line="60"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-submodule.c"
               line="285">the #GgitSubmoduleIgnore.</doc>
          <type name="SubmoduleIgnore" c:type="GgitSubmoduleIgnore"/>
        </return-value>
        <parameters>
          <instance-parameter name="submodule" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-submodule.c"
                 line="281">a #GgitSubmodule.</doc>
            <type name="Submodule" c:type="GgitSubmodule*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_index_id" c:identifier="ggit_submodule_get_index_id">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-submodule.c"
             line="203">Gets the OID for the submodule in the index or %NULL if there is no index.</doc>
        <source-position filename="libgit2-glib/ggit-submodule.h" line="54"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-submodule.c"
               line="209">the OID for the submodule in the index or %NULL.</doc>
          <type name="OId" c:type="GgitOId*"/>
        </return-value>
        <parameters>
          <instance-parameter name="submodule" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-submodule.c"
                 line="205">a #GgitSubmodule.</doc>
            <type name="Submodule" c:type="GgitSubmodule*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="ggit_submodule_get_name">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-submodule.c"
             line="148">Gets the name of the submodule from .gitmodules.</doc>
        <source-position filename="libgit2-glib/ggit-submodule.h" line="48"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-submodule.c"
               line="154">the name of the submodule from .gitmodules or %NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="submodule" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-submodule.c"
                 line="150">a #GgitSubmodule.</doc>
            <type name="Submodule" c:type="GgitSubmodule*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_owner" c:identifier="ggit_submodule_get_owner">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-submodule.c"
             line="130">Gets the containing repository for a submodule.</doc>
        <source-position filename="libgit2-glib/ggit-submodule.h" line="46"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-submodule.c"
               line="136">the containing repository for a submodule or %NULL.</doc>
          <type name="Repository" c:type="GgitRepository*"/>
        </return-value>
        <parameters>
          <instance-parameter name="submodule" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-submodule.c"
                 line="132">a #GgitSubmodule.</doc>
            <type name="Submodule" c:type="GgitSubmodule*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_path" c:identifier="ggit_submodule_get_path">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-submodule.c"
             line="165">Gets the path to the submodule from the repo working directory.
It is almost always the same as the name.
See ggit_submodule_get_name().</doc>
        <source-position filename="libgit2-glib/ggit-submodule.h" line="50"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-submodule.c"
               line="173">the path to the submodule from
the repo working directory or %NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="submodule" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-submodule.c"
                 line="167">a #GgitSubmodule.</doc>
            <type name="Submodule" c:type="GgitSubmodule*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_update" c:identifier="ggit_submodule_get_update">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-submodule.c"
             line="296">Gets a #GgitSubmoduleUpdate. See see gitmodules(5) update.</doc>
        <source-position filename="libgit2-glib/ggit-submodule.h" line="62"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-submodule.c"
               line="302">the #GgitSubmoduleUpdate.</doc>
          <type name="SubmoduleUpdate" c:type="GgitSubmoduleUpdate"/>
        </return-value>
        <parameters>
          <instance-parameter name="submodule" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-submodule.c"
                 line="298">a #GgitSubmodule.</doc>
            <type name="Submodule" c:type="GgitSubmodule*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_url" c:identifier="ggit_submodule_get_url">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-submodule.c"
             line="185">Gets the url for the submodule or %NULL if the submodule has been deleted
but not yet committed.</doc>
        <source-position filename="libgit2-glib/ggit-submodule.h" line="52"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-submodule.c"
               line="192">the url for the submodule or %NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="submodule" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-submodule.c"
                 line="187">a #GgitSubmodule.</doc>
            <type name="Submodule" c:type="GgitSubmodule*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_workdir_id"
              c:identifier="ggit_submodule_get_workdir_id">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-submodule.c"
             line="251">Gets the OID for the submodule in the current working directory.
Corresponds to looking up 'HEAD' in the checked out submodule.
If there are pending changes in the index or anything
else, this won't notice that.  You should call ggit_submodule_status()
for a more complete picture about the state of the working directory.</doc>
        <source-position filename="libgit2-glib/ggit-submodule.h" line="58"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-submodule.c"
               line="261">the OID for the submodule in the current working directory or %NULL.</doc>
          <type name="OId" c:type="GgitOId*"/>
        </return-value>
        <parameters>
          <instance-parameter name="submodule" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-submodule.c"
                 line="253">a #GgitSubmodule.</doc>
            <type name="Submodule" c:type="GgitSubmodule*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="init" c:identifier="ggit_submodule_init" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-submodule.c"
             line="330">Just like "git submodule init", this copies information about the
submodule into ".git/config".  You can use the accessor functions
above to alter the in-memory git_submodule object and control what
is written to the config, overriding what is in .gitmodules.</doc>
        <source-position filename="libgit2-glib/ggit-submodule.h" line="66"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="submodule" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-submodule.c"
                 line="332">a #GgitSubmodule.</doc>
            <type name="Submodule" c:type="GgitSubmodule*"/>
          </instance-parameter>
          <parameter name="overwrite" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-submodule.c"
                 line="333">forces existing entries to be updated.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="open" c:identifier="ggit_submodule_open" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-submodule.c"
             line="96">Open the repository for a submodule. Multiple calls to this function
will return distinct #GgitRepository objects. Only submodules which are
checked out in the working directory can be opened.</doc>
        <source-position filename="libgit2-glib/ggit-submodule.h" line="43"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-submodule.c"
               line="105">the opened #GgitRepository or %NULL in case of an
                          error.</doc>
          <type name="Repository" c:type="GgitRepository*"/>
        </return-value>
        <parameters>
          <instance-parameter name="submodule" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-submodule.c"
                 line="98">a #GgitSubmodule.</doc>
            <type name="Submodule" c:type="GgitSubmodule*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="ggit_submodule_ref">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-submodule.c"
             line="58">Atomically increments the reference count of @submodule by one.
This function is MT-safe and may be called from any thread.</doc>
        <source-position filename="libgit2-glib/ggit-submodule.h" line="40"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-submodule.c"
               line="65">the passed in #GgitSubmodule or %NULL.</doc>
          <type name="Submodule" c:type="GgitSubmodule*"/>
        </return-value>
        <parameters>
          <instance-parameter name="submodule" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-submodule.c"
                 line="60">a #GgitSubmodule.</doc>
            <type name="Submodule" c:type="GgitSubmodule*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="reload" c:identifier="ggit_submodule_reload" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-submodule.c"
             line="388">Rereads submodule info from config, index, and HEAD.
Call this if you have reason to believe that it has changed.</doc>
        <source-position filename="libgit2-glib/ggit-submodule.h" line="73"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="submodule" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-submodule.c"
                 line="390">a #GgitSubmodule.</doc>
            <type name="Submodule" c:type="GgitSubmodule*"/>
          </instance-parameter>
          <parameter name="force" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-submodule.c"
                 line="391">reload even if the data doesn't seem out of date.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="sync" c:identifier="ggit_submodule_sync" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-submodule.c"
             line="360">Copies the information about the submodules URL into the checked out
submodule config, acting like "git submodule sync".  This is useful if
you have altered the URL for the submodule (or it has been altered by a
fetch of upstream changes) and you need to update your local repo.</doc>
        <source-position filename="libgit2-glib/ggit-submodule.h" line="70"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="submodule" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-submodule.c"
                 line="362">a #GgitSubmodule.</doc>
            <type name="Submodule" c:type="GgitSubmodule*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="ggit_submodule_unref">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-submodule.c"
             line="78">Atomically decrements the reference count of @submodule by one.
If the reference count drops to 0, @remote is freed.</doc>
        <source-position filename="libgit2-glib/ggit-submodule.h" line="41"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="submodule" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-submodule.c"
                 line="80">a #GgitSubmodule.</doc>
            <type name="Submodule" c:type="GgitSubmodule*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="update" c:identifier="ggit_submodule_update" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-submodule.c"
             line="416">Update a submodule. This will clone a missing submodule and checkout
the subrepository to the commit specified in the index of the containing
repository. If the submodule repository doesn't contain the target commit
(e.g. because fetchRecurseSubmodules isn't set), then the submodule is
fetched using the fetch options supplied in options.</doc>
        <source-position filename="libgit2-glib/ggit-submodule.h" line="77"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="submodule" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-submodule.c"
                 line="418">a #GgitSubmodule.</doc>
            <type name="Submodule" c:type="GgitSubmodule*"/>
          </instance-parameter>
          <parameter name="init" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-submodule.c"
                 line="419">If the submodule is not initialized, setting this flag to true
       will initialize the submodule before updating. Otherwise, this
       will return an error if attempting to update an uninitialzed
       repository. but setting this to true forces them to be updated.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-submodule.c"
                 line="423">a #GgitSubmoduleUpdateOptions object.</doc>
            <type name="SubmoduleUpdateOptions"
                  c:type="GgitSubmoduleUpdateOptions*"/>
          </parameter>
        </parameters>
      </method>
    </record>
    <callback name="SubmoduleCallback" c:type="GgitSubmoduleCallback">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="1235">The type of the callback functions for retrieving the submodules
in a #GgitRepository. See ggit_repository_submodule_foreach().</doc>
      <source-position filename="libgit2-glib/ggit-types.h" line="1246"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="1244">0 to go for the next submodule or a #GgitError in case there was an error.</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="submodule" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-types.h"
               line="1237">a #GgitSubmodule.</doc>
          <type name="Submodule" c:type="GgitSubmodule*"/>
        </parameter>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-types.h"
               line="1238">the name of the submodule.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="2">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-types.h"
               line="1239">user-supplied data.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <enumeration name="SubmoduleIgnore"
                 glib:type-name="GgitSubmoduleIgnore"
                 glib:get-type="ggit_submodule_ignore_get_type"
                 c:type="GgitSubmoduleIgnore">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="795">Describes which submodules should be ignored.</doc>
      <member name="unspecified"
              value="-1"
              c:identifier="GGIT_SUBMODULE_IGNORE_UNSPECIFIED"
              glib:nick="unspecified"
              glib:name="GGIT_SUBMODULE_IGNORE_UNSPECIFIED">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="797">reset to on-disk value.</doc>
      </member>
      <member name="none"
              value="1"
              c:identifier="GGIT_SUBMODULE_IGNORE_NONE"
              glib:nick="none"
              glib:name="GGIT_SUBMODULE_IGNORE_NONE">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="798">don't ignore any change.</doc>
      </member>
      <member name="untracked"
              value="2"
              c:identifier="GGIT_SUBMODULE_IGNORE_UNTRACKED"
              glib:nick="untracked"
              glib:name="GGIT_SUBMODULE_IGNORE_UNTRACKED">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="799">ignore untracked files.</doc>
      </member>
      <member name="dirty"
              value="3"
              c:identifier="GGIT_SUBMODULE_IGNORE_DIRTY"
              glib:nick="dirty"
              glib:name="GGIT_SUBMODULE_IGNORE_DIRTY">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="800">ignore changes in the working directory.</doc>
      </member>
      <member name="all"
              value="4"
              c:identifier="GGIT_SUBMODULE_IGNORE_ALL"
              glib:nick="all"
              glib:name="GGIT_SUBMODULE_IGNORE_ALL">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="801">never check if the submodule is dirty.</doc>
      </member>
    </enumeration>
    <enumeration name="SubmoduleRecurse"
                 glib:type-name="GgitSubmoduleRecurse"
                 glib:get-type="ggit_submodule_recurse_get_type"
                 c:type="GgitSubmoduleRecurse">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="814">Options for submodule recurse.
Represents the value of `submodule.$name.fetchRecurseSubmodules`</doc>
      <member name="no"
              value="0"
              c:identifier="GGIT_SUBMODULE_RECURSE_NO"
              glib:nick="no"
              glib:name="GGIT_SUBMODULE_RECURSE_NO">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="816">do no recurse into submodules.</doc>
      </member>
      <member name="yes"
              value="1"
              c:identifier="GGIT_SUBMODULE_RECURSE_YES"
              glib:nick="yes"
              glib:name="GGIT_SUBMODULE_RECURSE_YES">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="817">recurse into submodules.</doc>
      </member>
      <member name="ondemand"
              value="2"
              c:identifier="GGIT_SUBMODULE_RECURSE_ONDEMAND"
              glib:nick="ondemand"
              glib:name="GGIT_SUBMODULE_RECURSE_ONDEMAND">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="818">recurse into submodules only when
commit not already in local clone.</doc>
      </member>
    </enumeration>
    <bitfield name="SubmoduleStatus"
              glib:type-name="GgitSubmoduleStatus"
              glib:get-type="ggit_submodule_status_get_type"
              c:type="GgitSubmoduleStatus">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="830">FIXME</doc>
      <member name="in_head"
              value="1"
              c:identifier="GGIT_SUBMODULE_STATUS_IN_HEAD"
              glib:nick="in-head"
              glib:name="GGIT_SUBMODULE_STATUS_IN_HEAD">
      </member>
      <member name="in_index"
              value="2"
              c:identifier="GGIT_SUBMODULE_STATUS_IN_INDEX"
              glib:nick="in-index"
              glib:name="GGIT_SUBMODULE_STATUS_IN_INDEX">
      </member>
      <member name="in_config"
              value="4"
              c:identifier="GGIT_SUBMODULE_STATUS_IN_CONFIG"
              glib:nick="in-config"
              glib:name="GGIT_SUBMODULE_STATUS_IN_CONFIG">
      </member>
      <member name="in_wd"
              value="8"
              c:identifier="GGIT_SUBMODULE_STATUS_IN_WD"
              glib:nick="in-wd"
              glib:name="GGIT_SUBMODULE_STATUS_IN_WD">
      </member>
      <member name="index_added"
              value="16"
              c:identifier="GGIT_SUBMODULE_STATUS_INDEX_ADDED"
              glib:nick="index-added"
              glib:name="GGIT_SUBMODULE_STATUS_INDEX_ADDED">
      </member>
      <member name="index_deleted"
              value="32"
              c:identifier="GGIT_SUBMODULE_STATUS_INDEX_DELETED"
              glib:nick="index-deleted"
              glib:name="GGIT_SUBMODULE_STATUS_INDEX_DELETED">
      </member>
      <member name="index_modified"
              value="64"
              c:identifier="GGIT_SUBMODULE_STATUS_INDEX_MODIFIED"
              glib:nick="index-modified"
              glib:name="GGIT_SUBMODULE_STATUS_INDEX_MODIFIED">
      </member>
      <member name="wd_uninitialized"
              value="128"
              c:identifier="GGIT_SUBMODULE_STATUS_WD_UNINITIALIZED"
              glib:nick="wd-uninitialized"
              glib:name="GGIT_SUBMODULE_STATUS_WD_UNINITIALIZED">
      </member>
      <member name="wd_added"
              value="256"
              c:identifier="GGIT_SUBMODULE_STATUS_WD_ADDED"
              glib:nick="wd-added"
              glib:name="GGIT_SUBMODULE_STATUS_WD_ADDED">
      </member>
      <member name="wd_deleted"
              value="512"
              c:identifier="GGIT_SUBMODULE_STATUS_WD_DELETED"
              glib:nick="wd-deleted"
              glib:name="GGIT_SUBMODULE_STATUS_WD_DELETED">
      </member>
      <member name="wd_modified"
              value="1024"
              c:identifier="GGIT_SUBMODULE_STATUS_WD_MODIFIED"
              glib:nick="wd-modified"
              glib:name="GGIT_SUBMODULE_STATUS_WD_MODIFIED">
      </member>
      <member name="wd_index_modified"
              value="2048"
              c:identifier="GGIT_SUBMODULE_STATUS_WD_INDEX_MODIFIED"
              glib:nick="wd-index-modified"
              glib:name="GGIT_SUBMODULE_STATUS_WD_INDEX_MODIFIED">
      </member>
      <member name="wd_wd_modified"
              value="4096"
              c:identifier="GGIT_SUBMODULE_STATUS_WD_WD_MODIFIED"
              glib:nick="wd-wd-modified"
              glib:name="GGIT_SUBMODULE_STATUS_WD_WD_MODIFIED">
      </member>
      <member name="wd_untracked"
              value="8192"
              c:identifier="GGIT_SUBMODULE_STATUS_WD_UNTRACKED"
              glib:nick="wd-untracked"
              glib:name="GGIT_SUBMODULE_STATUS_WD_UNTRACKED">
      </member>
    </bitfield>
    <enumeration name="SubmoduleUpdate"
                 glib:type-name="GgitSubmoduleUpdate"
                 glib:get-type="ggit_submodule_update_get_type"
                 c:type="GgitSubmoduleUpdate">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="851">Describes how a submodule should be updated.</doc>
      <member name="checkout"
              value="1"
              c:identifier="GGIT_SUBMODULE_UPDATE_CHECKOUT"
              glib:nick="checkout"
              glib:name="GGIT_SUBMODULE_UPDATE_CHECKOUT">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="853">checkout the submodule.</doc>
      </member>
      <member name="rebase"
              value="2"
              c:identifier="GGIT_SUBMODULE_UPDATE_REBASE"
              glib:nick="rebase"
              glib:name="GGIT_SUBMODULE_UPDATE_REBASE">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="854">rebase the current branch onto the
                               commit recorded in the superproject.</doc>
      </member>
      <member name="merge"
              value="3"
              c:identifier="GGIT_SUBMODULE_UPDATE_MERGE"
              glib:nick="merge"
              glib:name="GGIT_SUBMODULE_UPDATE_MERGE">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="856">merge the commit recorded in the
                              superproject into the current branch.</doc>
      </member>
      <member name="none"
              value="4"
              c:identifier="GGIT_SUBMODULE_UPDATE_NONE"
              glib:nick="none"
              glib:name="GGIT_SUBMODULE_UPDATE_NONE">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="858">do not update this submodule.</doc>
      </member>
      <member name="default"
              value="0"
              c:identifier="GGIT_SUBMODULE_UPDATE_DEFAULT"
              glib:nick="default"
              glib:name="GGIT_SUBMODULE_UPDATE_DEFAULT">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="859">not used except as static initializer
when we don't want any particular update rule to be specified.</doc>
      </member>
    </enumeration>
    <class name="SubmoduleUpdateOptions"
           c:symbol-prefix="submodule_update_options"
           c:type="GgitSubmoduleUpdateOptions"
           parent="GObject.Object"
           glib:type-name="GgitSubmoduleUpdateOptions"
           glib:get-type="ggit_submodule_update_options_get_type"
           glib:type-struct="SubmoduleUpdateOptionsClass">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-submodule-update-options.c"
           line="26">Represents options for a submodule update.</doc>
      <source-position filename="libgit2-glib/ggit-submodule-update-options.h"
                       line="38"/>
      <constructor name="new" c:identifier="ggit_submodule_update_options_new">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-submodule-update-options.c"
             line="150">Creates a new submodule options object.</doc>
        <source-position filename="libgit2-glib/ggit-submodule-update-options.h"
                         line="43"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-submodule-update-options.c"
               line="155">a #GgitSubmoduleUpdateOptions or %NULL.</doc>
          <type name="SubmoduleUpdateOptions"
                c:type="GgitSubmoduleUpdateOptions*"/>
        </return-value>
      </constructor>
      <method name="get_checkout_options"
              c:identifier="ggit_submodule_update_options_get_checkout_options"
              glib:get-property="checkout-options">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-submodule-update-options.c"
             line="189">Get the checkout options.</doc>
        <source-position filename="libgit2-glib/ggit-submodule-update-options.h"
                         line="45"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-submodule-update-options.c"
               line="195">a #GgitCheckoutOptions or %NULL.</doc>
          <type name="CheckoutOptions" c:type="GgitCheckoutOptions*"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-submodule-update-options.c"
                 line="191">a #GgitSubmoduleUpdateOptions.</doc>
            <type name="SubmoduleUpdateOptions"
                  c:type="GgitSubmoduleUpdateOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_fetch_options"
              c:identifier="ggit_submodule_update_options_get_fetch_options"
              glib:get-property="fetch-options">
        <source-position filename="libgit2-glib/ggit-submodule-update-options.h"
                         line="49"/>
        <return-value transfer-ownership="full">
          <type name="FetchOptions" c:type="GgitFetchOptions*"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <type name="SubmoduleUpdateOptions"
                  c:type="GgitSubmoduleUpdateOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_checkout_options"
              c:identifier="ggit_submodule_update_options_set_checkout_options"
              glib:set-property="checkout-options">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-submodule-update-options.c"
             line="210">Set the checkout options.</doc>
        <source-position filename="libgit2-glib/ggit-submodule-update-options.h"
                         line="46"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-submodule-update-options.c"
                 line="212">a #GgitSubmoduleUpdateOptions.</doc>
            <type name="SubmoduleUpdateOptions"
                  c:type="GgitSubmoduleUpdateOptions*"/>
          </instance-parameter>
          <parameter name="checkout_options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-submodule-update-options.c"
                 line="213">a #GgitCheckoutOptions.</doc>
            <type name="CheckoutOptions" c:type="GgitCheckoutOptions*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_fetch_options"
              c:identifier="ggit_submodule_update_options_set_fetch_options"
              glib:set-property="fetch-options">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-submodule-update-options.c"
             line="268">Sets the fetch options.</doc>
        <source-position filename="libgit2-glib/ggit-submodule-update-options.h"
                         line="50"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-submodule-update-options.c"
                 line="270">a #GgitSubmoduleUpdateOptions.</doc>
            <type name="SubmoduleUpdateOptions"
                  c:type="GgitSubmoduleUpdateOptions*"/>
          </instance-parameter>
          <parameter name="fetch_options"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-submodule-update-options.c"
                 line="271">a #GgitFetchOptions.</doc>
            <type name="FetchOptions" c:type="GgitFetchOptions*"/>
          </parameter>
        </parameters>
      </method>
      <property name="checkout-options"
                writable="1"
                transfer-ownership="none"
                setter="set_checkout_options"
                getter="get_checkout_options">
        <type name="CheckoutOptions"/>
      </property>
      <property name="fetch-options"
                writable="1"
                transfer-ownership="none"
                setter="set_fetch_options"
                getter="get_fetch_options">
        <type name="FetchOptions"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="SubmoduleUpdateOptionsClass"
            c:type="GgitSubmoduleUpdateOptionsClass"
            glib:is-gtype-struct-for="SubmoduleUpdateOptions">
      <source-position filename="libgit2-glib/ggit-submodule-update-options.h"
                       line="38"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <function-macro name="TRANSFER_PROGRESS"
                    c:identifier="GGIT_TRANSFER_PROGRESS"
                    introspectable="0">
      <source-position filename="libgit2-glib/ggit-transfer-progress.h"
                       line="32"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TREE_ENTRY"
                    c:identifier="GGIT_TREE_ENTRY"
                    introspectable="0">
      <source-position filename="libgit2-glib/ggit-tree-entry.h" line="31"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <class name="Tag"
           c:symbol-prefix="tag"
           c:type="GgitTag"
           parent="Object"
           glib:type-name="GgitTag"
           glib:get-type="ggit_tag_get_type"
           glib:type-struct="TagClass">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-tag.c"
           line="29">Represents a tag object.</doc>
      <source-position filename="libgit2-glib/ggit-tag.h" line="46"/>
      <method name="get_message" c:identifier="ggit_tag_get_message">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-tag.c"
             line="175">Gets the message of @tag.</doc>
        <source-position filename="libgit2-glib/ggit-tag.h" line="60"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-tag.c"
               line="181">the message of the tag or %NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-tag.c"
                 line="177">a #GgitTag.</doc>
            <type name="Tag" c:type="GgitTag*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="ggit_tag_get_name">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-tag.c"
             line="127">Gets the name of @tag.</doc>
        <source-position filename="libgit2-glib/ggit-tag.h" line="56"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-tag.c"
               line="133">the name of the tag or %NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-tag.c"
                 line="129">a #GgitTag.</doc>
            <type name="Tag" c:type="GgitTag*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_tagger" c:identifier="ggit_tag_get_tagger">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-tag.c"
             line="147">Get the tagger (author) of @tag. The returned value must be free with
g_object_unref().</doc>
        <source-position filename="libgit2-glib/ggit-tag.h" line="58"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-tag.c"
               line="154">the tagger (author) of the tag or %NULL.</doc>
          <type name="Signature" c:type="GgitSignature*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-tag.c"
                 line="149">a #GgitTag.</doc>
            <type name="Tag" c:type="GgitTag*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_target" c:identifier="ggit_tag_get_target" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-tag.c"
             line="66">Gets the target #GgitObject of @tag.

This method performs a repository lookup for the
given object and returns it.</doc>
        <source-position filename="libgit2-glib/ggit-tag.h" line="51"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-tag.c"
               line="76">the target #GgitObject of the tag or %NULL.</doc>
          <type name="Object" c:type="GgitObject*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-tag.c"
                 line="68">a #GgitTag.</doc>
            <type name="Tag" c:type="GgitTag*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_target_id" c:identifier="ggit_tag_get_target_id">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-tag.c"
             line="105">Gets the target #GgitOId of @tag.</doc>
        <source-position filename="libgit2-glib/ggit-tag.h" line="54"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-tag.c"
               line="111">the target #GgitOId of the tag or %NULL.</doc>
          <type name="OId" c:type="GgitOId*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-tag.c"
                 line="107">a #GgitTag.</doc>
            <type name="Tag" c:type="GgitTag*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_target_type" c:identifier="ggit_tag_get_target_type">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-tag.c"
             line="195">Get the target object type.</doc>
        <source-position filename="libgit2-glib/ggit-tag.h" line="62"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-tag.c"
               line="201">a #GType.</doc>
          <type name="GType" c:type="GType"/>
        </return-value>
        <parameters>
          <instance-parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-tag.c"
                 line="197">a #GgitTag.</doc>
            <type name="Tag" c:type="GgitTag*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="peel" c:identifier="ggit_tag_peel" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-tag.c"
             line="211">Recursively peel a tag until a non tag object is found.</doc>
        <source-position filename="libgit2-glib/ggit-tag.h" line="64"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-tag.c"
               line="218">a #GgitObject or %NULL.</doc>
          <type name="Object" c:type="GgitObject*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-tag.c"
                 line="213">a #GgitTag.</doc>
            <type name="Tag" c:type="GgitTag*"/>
          </instance-parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="Object" c:type="GgitObject"/>
      </field>
    </class>
    <callback name="TagCallback" c:type="GgitTagCallback">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="1250">When iterating over all the tags, callback that will be
issued per entry. See ggit_repository_tag_foreach().</doc>
      <source-position filename="libgit2-glib/ggit-types.h" line="1261"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="1259">0 to go continue or a #GgitError in case there was an error.</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-types.h"
               line="1252">the tag name.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="tag_oid" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-types.h"
               line="1253">the tag oid.</doc>
          <type name="OId" c:type="GgitOId*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="2">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-types.h"
               line="1254">user-suplied data.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <record name="TagClass"
            c:type="GgitTagClass"
            glib:is-gtype-struct-for="Tag">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-tag.h"
           line="36">The class structure for #GgitTagClass.</doc>
      <source-position filename="libgit2-glib/ggit-tag.h" line="46"/>
      <field name="parent_class" readable="0" private="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-tag.h"
             line="38">The parent class.</doc>
        <type name="ObjectClass" c:type="GgitObjectClass"/>
      </field>
    </record>
    <record name="TransferProgress"
            c:type="GgitTransferProgress"
            opaque="1"
            glib:type-name="GgitTransferProgress"
            glib:get-type="ggit_transfer_progress_get_type"
            c:symbol-prefix="transfer_progress">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="267">Represents transfering progress.</doc>
      <source-position filename="libgit2-glib/ggit-types.h" line="272"/>
      <method name="copy" c:identifier="ggit_transfer_progress_copy">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-transfer-progress.c"
             line="47">Copies @progress into a newly allocated #GgitTransferProgress.</doc>
        <source-position filename="libgit2-glib/ggit-transfer-progress.h"
                         line="38"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-transfer-progress.c"
               line="53">a newly allocated #GgitTransferProgress or %NULL.</doc>
          <type name="TransferProgress" c:type="GgitTransferProgress*"/>
        </return-value>
        <parameters>
          <instance-parameter name="progress" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-transfer-progress.c"
                 line="49">a #GgitTransferProgress.</doc>
            <type name="TransferProgress" c:type="GgitTransferProgress*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="ggit_transfer_progress_free">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-transfer-progress.c"
             line="63">Frees @progress.</doc>
        <source-position filename="libgit2-glib/ggit-transfer-progress.h"
                         line="39"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="progress" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-transfer-progress.c"
                 line="65">a #GgitTransferProgress.</doc>
            <type name="TransferProgress" c:type="GgitTransferProgress*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_indexed_objects"
              c:identifier="ggit_transfer_progress_get_indexed_objects">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-transfer-progress.c"
             line="93">Gets the indexed objects of the transfer.</doc>
        <source-position filename="libgit2-glib/ggit-transfer-progress.h"
                         line="43"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-transfer-progress.c"
               line="99">the indexed objects of the transfer.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="progress" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-transfer-progress.c"
                 line="95">a #GgitTransferProgress.</doc>
            <type name="TransferProgress" c:type="GgitTransferProgress*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_received_bytes"
              c:identifier="ggit_transfer_progress_get_received_bytes">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-transfer-progress.c"
             line="125">Gets the received bytes of the transfer.</doc>
        <source-position filename="libgit2-glib/ggit-transfer-progress.h"
                         line="47"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-transfer-progress.c"
               line="131">the received bytes of the transfer.</doc>
          <type name="gsize" c:type="gsize"/>
        </return-value>
        <parameters>
          <instance-parameter name="progress" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-transfer-progress.c"
                 line="127">a #GgitTransferProgress.</doc>
            <type name="TransferProgress" c:type="GgitTransferProgress*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_received_objects"
              c:identifier="ggit_transfer_progress_get_received_objects">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-transfer-progress.c"
             line="109">Gets the received objects of the transfer.</doc>
        <source-position filename="libgit2-glib/ggit-transfer-progress.h"
                         line="45"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-transfer-progress.c"
               line="115">the received objects of the transfer.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="progress" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-transfer-progress.c"
                 line="111">a #GgitTransferProgress.</doc>
            <type name="TransferProgress" c:type="GgitTransferProgress*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_total_objects"
              c:identifier="ggit_transfer_progress_get_total_objects">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-transfer-progress.c"
             line="77">Gets the total objects of the transfer.</doc>
        <source-position filename="libgit2-glib/ggit-transfer-progress.h"
                         line="41"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-transfer-progress.c"
               line="83">the total objects of the transfer.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="progress" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-transfer-progress.c"
                 line="79">a #GgitTransferProgress.</doc>
            <type name="TransferProgress" c:type="GgitTransferProgress*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <callback name="TransferProgressCallback"
              c:type="GgitTransferProgressCallback">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="1265">Progress callbacks during indexing.</doc>
      <source-position filename="libgit2-glib/ggit-types.h" line="1274"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="1272">a value less than zero to cancel the transfer.</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="stats" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-types.h"
               line="1267">a #GgitTransferProgress.</doc>
          <type name="TransferProgress" c:type="GgitTransferProgress*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-types.h"
               line="1268">user-supplied data.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <class name="Tree"
           c:symbol-prefix="tree"
           c:type="GgitTree"
           parent="Object"
           glib:type-name="GgitTree"
           glib:get-type="ggit_tree_get_type"
           glib:type-struct="TreeClass">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-tree.c"
           line="27">Represents a tree object.</doc>
      <source-position filename="libgit2-glib/ggit-tree.h" line="45"/>
      <method name="get" c:identifier="ggit_tree_get">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-tree.c"
             line="94">Get a tree entry by index.</doc>
        <source-position filename="libgit2-glib/ggit-tree.h" line="53"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-tree.c"
               line="101">a #GgitTreeEntry or %NULL.</doc>
          <type name="TreeEntry" c:type="GgitTreeEntry*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-tree.c"
                 line="96">a #GgitTree.</doc>
            <type name="Tree" c:type="GgitTree*"/>
          </instance-parameter>
          <parameter name="i" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-tree.c"
                 line="97">the index of the entry.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_by_name" c:identifier="ggit_tree_get_by_name">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-tree.c"
             line="141">Get a tree entry by name.</doc>
        <source-position filename="libgit2-glib/ggit-tree.h" line="58"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-tree.c"
               line="148">a #GgitTreeEntry or %NULL.</doc>
          <type name="TreeEntry" c:type="GgitTreeEntry*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-tree.c"
                 line="143">a #GgitTree.</doc>
            <type name="Tree" c:type="GgitTree*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-tree.c"
                 line="144">a filename.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_by_path"
              c:identifier="ggit_tree_get_by_path"
              throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-tree.c"
             line="174">Retrieves a tree entry contained in a tree or in any of its subtrees,
given its relative path.</doc>
        <source-position filename="libgit2-glib/ggit-tree.h" line="61"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-tree.c"
               line="183">a #GgitTreeEntry or %NULL.</doc>
          <type name="TreeEntry" c:type="GgitTreeEntry*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-tree.c"
                 line="176">a #GgitTree.</doc>
            <type name="Tree" c:type="GgitTree*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-tree.c"
                 line="177">a path.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_id" c:identifier="ggit_tree_get_id">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-tree.c"
             line="70">Get the #GgitOId of the tree.</doc>
        <source-position filename="libgit2-glib/ggit-tree.h" line="51"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-tree.c"
               line="76">a #GgitOId or %NULL.</doc>
          <type name="OId" c:type="GgitOId*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-tree.c"
                 line="72">a #GgitTree.</doc>
            <type name="Tree" c:type="GgitTree*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="size" c:identifier="ggit_tree_size">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-tree.c"
             line="120">Get the number of entries in the tree.</doc>
        <source-position filename="libgit2-glib/ggit-tree.h" line="56"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-tree.c"
               line="126">the number of entries in the tree.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-tree.c"
                 line="122">a #GgitTree.</doc>
            <type name="Tree" c:type="GgitTree*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="walk" c:identifier="ggit_tree_walk" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-tree.c"
             line="244">Walk all the entries of a tree object recursively (resolving and walking
subtrees of the tree as needed). The @error will be set to the error returned
by @callback (if any).</doc>
        <source-position filename="libgit2-glib/ggit-tree.h" line="65"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-tree.c"
                 line="246">a #GgitTree.</doc>
            <type name="Tree" c:type="GgitTree*"/>
          </instance-parameter>
          <parameter name="mode" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-tree.c"
                 line="247">the walking order.</doc>
            <type name="TreeWalkMode" c:type="GgitTreeWalkMode"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     scope="call"
                     closure="2">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-tree.c"
                 line="248">the callback to call for each entry.</doc>
            <type name="TreeWalkCallback" c:type="GgitTreeWalkCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-tree.c"
                 line="249">user data for the callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="Object" c:type="GgitObject"/>
      </field>
    </class>
    <class name="TreeBuilder"
           c:symbol-prefix="tree_builder"
           c:type="GgitTreeBuilder"
           parent="Native"
           glib:type-name="GgitTreeBuilder"
           glib:get-type="ggit_tree_builder_get_type"
           glib:type-struct="TreeBuilderClass">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-tree-builder.c"
           line="28">Represents a tree object.</doc>
      <source-position filename="libgit2-glib/ggit-tree-builder.h" line="44"/>
      <method name="clear" c:identifier="ggit_tree_builder_clear">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-tree-builder.c"
             line="160">Clear all entries in the tree builder.</doc>
        <source-position filename="libgit2-glib/ggit-tree-builder.h"
                         line="54"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="builder" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-tree-builder.c"
                 line="162">a #GgitTreeBuilder.</doc>
            <type name="TreeBuilder" c:type="GgitTreeBuilder*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_entry" c:identifier="ggit_tree_builder_get_entry">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-tree-builder.c"
             line="128">Get an entry by path.</doc>
        <source-position filename="libgit2-glib/ggit-tree-builder.h"
                         line="65"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-tree-builder.c"
               line="135">the #GGitTreeEntry or %NULL if no such entry exists.</doc>
          <type name="TreeEntry" c:type="GgitTreeEntry*"/>
        </return-value>
        <parameters>
          <instance-parameter name="builder" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-tree-builder.c"
                 line="130">a #GgitTreeBuilder.</doc>
            <type name="TreeBuilder" c:type="GgitTreeBuilder*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-tree-builder.c"
                 line="131">the path to remove.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="insert" c:identifier="ggit_tree_builder_insert" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-tree-builder.c"
             line="207">Insert a file with a given blob in the tree builder. If the tree builder
already contains an entry for the given file, then this entry will be
overwritten.

Note that the returned #GgitTreeEntry is bound to the lifetime of the tree
builder and cannot be used after the tree builder has been freed.</doc>
        <source-position filename="libgit2-glib/ggit-tree-builder.h"
                         line="59"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-tree-builder.c"
               line="222">a #GgitTreeEntry or %NULL.</doc>
          <type name="TreeEntry" c:type="GgitTreeEntry*"/>
        </return-value>
        <parameters>
          <instance-parameter name="builder" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-tree-builder.c"
                 line="209">a #GgitTreeBuilder.</doc>
            <type name="TreeBuilder" c:type="GgitTreeBuilder*"/>
          </instance-parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-tree-builder.c"
                 line="210">the file name.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="oid" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-tree-builder.c"
                 line="211">the #GgitOId of the file blob to insert.</doc>
            <type name="OId" c:type="GgitOId*"/>
          </parameter>
          <parameter name="file_mode" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-tree-builder.c"
                 line="212">a #GgitFileMode.</doc>
            <type name="FileMode" c:type="GgitFileMode"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove" c:identifier="ggit_tree_builder_remove" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-tree-builder.c"
             line="99">Remove an entry from the builder by path.</doc>
        <source-position filename="libgit2-glib/ggit-tree-builder.h"
                         line="50"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="builder" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-tree-builder.c"
                 line="101">a #GgitTreeBuilder.</doc>
            <type name="TreeBuilder" c:type="GgitTreeBuilder*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-tree-builder.c"
                 line="102">the path to remove.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="write" c:identifier="ggit_tree_builder_write" throws="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-tree-builder.c"
             line="175">Write the contents of the tree builder as a tree object.</doc>
        <source-position filename="libgit2-glib/ggit-tree-builder.h"
                         line="56"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-tree-builder.c"
               line="182">the #GgitOId of the created tree object or %NULL.</doc>
          <type name="OId" c:type="GgitOId*"/>
        </return-value>
        <parameters>
          <instance-parameter name="builder" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-tree-builder.c"
                 line="177">a #GgitTreeBuilder.</doc>
            <type name="TreeBuilder" c:type="GgitTreeBuilder*"/>
          </instance-parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="Native" c:type="GgitNative"/>
      </field>
    </class>
    <record name="TreeBuilderClass"
            c:type="GgitTreeBuilderClass"
            glib:is-gtype-struct-for="TreeBuilder">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-tree-builder.h"
           line="34">The class structure for #GgitTreeBuilderClass.</doc>
      <source-position filename="libgit2-glib/ggit-tree-builder.h" line="44"/>
      <field name="parent_class" readable="0" private="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-tree-builder.h"
             line="36">The parent class.</doc>
        <type name="NativeClass" c:type="GgitNativeClass"/>
      </field>
    </record>
    <record name="TreeClass"
            c:type="GgitTreeClass"
            glib:is-gtype-struct-for="Tree">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-tree.h"
           line="35">The class structure for #GgitTreeClass.</doc>
      <source-position filename="libgit2-glib/ggit-tree.h" line="45"/>
      <field name="parent_class" readable="0" private="1">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-tree.h"
             line="37">The parent class.</doc>
        <type name="ObjectClass" c:type="GgitObjectClass"/>
      </field>
    </record>
    <record name="TreeEntry"
            c:type="GgitTreeEntry"
            opaque="1"
            glib:type-name="GgitTreeEntry"
            glib:get-type="ggit_tree_entry_get_type"
            c:symbol-prefix="tree_entry">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="274">Represents an entry in a tree.</doc>
      <source-position filename="libgit2-glib/ggit-types.h" line="279"/>
      <method name="get_file_mode"
              c:identifier="ggit_tree_entry_get_file_mode">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-tree-entry.c"
             line="94">Gets the #GgitFileMode of a tree entry.</doc>
        <source-position filename="libgit2-glib/ggit-tree-entry.h" line="40"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-tree-entry.c"
               line="100">the #GgitFileMode of a tree entry.</doc>
          <type name="FileMode" c:type="GgitFileMode"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-tree-entry.c"
                 line="96">a #GgitTreeEntry.</doc>
            <type name="TreeEntry" c:type="GgitTreeEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_id" c:identifier="ggit_tree_entry_get_id">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-tree-entry.c"
             line="110">Get the #GgitOId of the entry.</doc>
        <source-position filename="libgit2-glib/ggit-tree-entry.h" line="41"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-tree-entry.c"
               line="116">a #GgitOId or %NULL.</doc>
          <type name="OId" c:type="GgitOId*"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-tree-entry.c"
                 line="112">a #GgitTreeEntry.</doc>
            <type name="TreeEntry" c:type="GgitTreeEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="ggit_tree_entry_get_name">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-tree-entry.c"
             line="127">Get the name of the tree entry.</doc>
        <source-position filename="libgit2-glib/ggit-tree-entry.h" line="42"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-tree-entry.c"
               line="133">the name of the tree entry or %NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-tree-entry.c"
                 line="129">a #GgitTreeEntry.</doc>
            <type name="TreeEntry" c:type="GgitTreeEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_object_type"
              c:identifier="ggit_tree_entry_get_object_type">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-tree-entry.c"
             line="144">Get the type of the tree entry object.</doc>
        <source-position filename="libgit2-glib/ggit-tree-entry.h" line="44"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-tree-entry.c"
               line="150">a #GType.</doc>
          <type name="GType" c:type="GType"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-tree-entry.c"
                 line="146">a #GgitTreeEntry.</doc>
            <type name="TreeEntry" c:type="GgitTreeEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="ggit_tree_entry_ref">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-tree-entry.c"
             line="52">Atomically increments the reference count of @entry by one.
This function is MT-safe and may be called from any thread.</doc>
        <source-position filename="libgit2-glib/ggit-tree-entry.h" line="37"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-tree-entry.c"
               line="59">a #GgitTreeEntry or %NULL.</doc>
          <type name="TreeEntry" c:type="GgitTreeEntry*"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-tree-entry.c"
                 line="54">a #GgitTreeEntry.</doc>
            <type name="TreeEntry" c:type="GgitTreeEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="ggit_tree_entry_unref">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-tree-entry.c"
             line="71">Atomically decrements the reference count of @entry by one.
If the reference count drops to 0, @entry is freed.</doc>
        <source-position filename="libgit2-glib/ggit-tree-entry.h" line="38"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="libgit2-glib/ggit-tree-entry.c"
                 line="73">a #GgitTreeEntry.</doc>
            <type name="TreeEntry" c:type="GgitTreeEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <callback name="TreeWalkCallback" c:type="GgitTreeWalkCallback">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="1277">The type of the callback functions for walking a tree.
See ggit_tree_walk().</doc>
      <source-position filename="libgit2-glib/ggit-types.h" line="1289"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="1286">0 to go for the next entry or a #GgitError in case there was an error.</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="root" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-types.h"
               line="1279">the current (relative) root of the entry</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="entry" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-types.h"
               line="1280">the tree entry</doc>
          <type name="TreeEntry" c:type="const GgitTreeEntry*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="2">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-types.h"
               line="1281">user-supplied data.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <enumeration name="TreeWalkMode"
                 glib:type-name="GgitTreeWalkMode"
                 glib:get-type="ggit_tree_walk_mode_get_type"
                 c:type="GgitTreeWalkMode">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-types.h"
           line="873">Describes in which order a tree walk should be performed.</doc>
      <member name="pre"
              value="0"
              c:identifier="GGIT_TREE_WALK_MODE_PRE"
              glib:nick="pre"
              glib:name="GGIT_TREE_WALK_MODE_PRE">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="875">walk tree in pre-order</doc>
      </member>
      <member name="post"
              value="1"
              c:identifier="GGIT_TREE_WALK_MODE_POST"
              glib:nick="post"
              glib:name="GGIT_TREE_WALK_MODE_POST">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-types.h"
             line="876">walk tree in post-order</doc>
      </member>
    </enumeration>
    <constant name="VERSION_S" value="1.2.1" c:type="GGIT_VERSION_S">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-version.h"
           line="11">libgit2-glib version, encoded as a string, useful for printing and
concatenation.</doc>
      <source-position filename="libgit2-glib/ggit-version.h" line="17"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <function name="error_quark"
              c:identifier="ggit_error_quark"
              moved-to="Error.quark">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-error.c"
           line="27">Error domain for Ggit functions.
Errors in this domain will be from the GgitError enumeration.
See #GError for information on error domains.</doc>
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="get_features" c:identifier="ggit_get_features">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-main.c"
           line="25">Gets the features of the library.</doc>
      <source-position filename="libgit2-glib/ggit-main.h" line="29"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-main.c"
             line="30">a #GgitFeatureFlags.</doc>
        <type name="FeatureFlags" c:type="GgitFeatureFlags"/>
      </return-value>
    </function>
    <function name="init" c:identifier="ggit_init">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-main.c"
           line="38">Call this function before using any other libgit2-glib function.</doc>
      <source-position filename="libgit2-glib/ggit-main.h" line="31"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <function name="message_prettify" c:identifier="ggit_message_prettify">
      <doc xml:space="preserve"
           filename="libgit2-glib/ggit-message.c"
           line="25">Prettify a commit message by removing excess whitespace and making sure the
last line ends with a newline. If @strip_comments is %TRUE, then lines
starting with a @comment_char will be removed.</doc>
      <source-position filename="libgit2-glib/ggit-message.h" line="28"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="libgit2-glib/ggit-message.c"
             line="35">the prettified message.</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="message" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-message.c"
               line="27">the message.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="strip_comments" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-message.c"
               line="28">whether to strip comments.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="comment_char" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="libgit2-glib/ggit-message.c"
               line="29">comment character.</doc>
          <type name="gchar" c:type="gchar"/>
        </parameter>
      </parameters>
    </function>
  </namespace>
</repository>
