LibGit2Sharp Information about a rebase step that was just completed. Needed for mocking. Constructor to call when the patch has already been applied for this step. The info on the completed step. The commit generated by the step, if any. Was the changes for this step already applied. If so, will be null. The index of the step that was just completed. The total number of steps in the rebase operation. The exception that is thrown when the provided specification cannot uniquely identify a reference, an object or a path. Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. A message that describes the error. Initializes a new instance of the class with a specified error message. A composite format string for use in . An object array that contains zero or more objects to format. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception. If the parameter is not a null reference, the current exception is raised in a catch block that handles the inner exception. Initializes a new instance of the class with a serialized data. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. The archiving method needs to be passed an inheritor of this class, which will then be used to provide low-level archiving facilities (tar, zip, ...). Override this method to perform operations before the archiving of each entry of the tree takes place. The tree that will be archived The ObjectId of the commit being archived, or null if there is no commit. The modification time that will be used for the files in the archive. Override this method to perform operations after the archiving of each entry of the tree took place. The tree that was archived The ObjectId of the commit being archived, or null if there is no commit. The modification time that was used for the files in the archive. Implements the archiving of a TreeEntry in a given format. The path of the entry in the archive. The entry to archive. The datetime the entry was last modified. The exception that is thrown when an operation which requires a working directory is performed against a bare repository. Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. A message that describes the error. Initializes a new instance of the class with a specified error message. A composite format string for use in . An object array that contains zero or more objects to format. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception. If the parameter is not a null reference, the current exception is raised in a catch block that handles the inner exception. Initializes a new instance of the class with a serialized data. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. Information about a rebase step that is about to be performed. Needed for mocking. Information on the step that is about to be performed. The index of the step that is to be run. The total number of steps in the rebase operation. A contiguous group of lines that have been traced to a single commit. For easier mocking Determine if this hunk contains a given line. Line number to test True if this hunk contains the given line. Number of lines in this hunk. The line number where this hunk begins, as of Signature of the most recent change to this hunk. Commit which most recently changed this file. Line number where this hunk begins, as of , in . Signature of the oldest-traced change to this hunk. Commit to which the oldest change to this hunk has been traced. Path to the file where this hunk originated, as of . Indicates whether the current object is equal to another object of the same type. true if the current object is equal to the parameter; otherwise, false. An object to compare with this object. Determines whether the specified is equal to the current . The to compare with the current . True if the specified is equal to the current ; otherwise, false. Returns the hash code for this instance. A 32-bit signed integer hash code. Tests if two s are equal. First hunk to compare. Second hunk to compare. True if the two objects are equal; false otherwise. Tests if two s are unequal. First hunk to compare. Second hunk to compare. True if the two objects are different; false otherwise. The result of a blame operation. For easy mocking Access blame hunks by index. The index of the hunk to retrieve The at the given index. Access blame hunks by the file line. Line number to search for The that contains the specified file line. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. 2 Strategy used for blaming. Track renames of the file, but no block movement. Optional adjustments to the behavior of blame. Strategy to use to determine the blame for each line. The default is . Latest commitish to consider (the starting point). If null, blame will use HEAD. Oldest commitish to consider (the stopping point). If null, blame will continue until all the lines have been blamed, or until a commit with no parents is reached. First text line in the file to blame (lines start at 1). If this is set to 0, the blame begins at line 1. Last text line in the file to blame (lines start at 1). If this is set to 0, blame ends with the last line in the file. Stores the binary content of a tracked file. Since the introduction of partially cloned repositories, blobs might be missing on your local repository (see https://git-scm.com/docs/partial-clone) Needed for mocking purposes. Gets the size in bytes of the raw content of a blob. Please note that this would load entire blob content in the memory to compute the Size. In order to read blob size from header, Repository.ObjectDatabase.RetrieveObjectMetadata(Blob.Id).Size can be used. Throws if blob is missing Determine if the blob content is most certainly binary or not. Throws if blob is missing Gets the blob content in a . Throws if blob is missing Gets the blob content in a as it would be checked out to the working directory. Parameter controlling content filtering behavior Throws if blob is missing Gets the blob content, decoded with UTF8 encoding if the encoding cannot be detected from the byte order mark Blob content as text. Throws if blob is missing Gets the blob content decoded with the specified encoding, or according to byte order marks, or the specified encoding as a fallback The encoding of the text to use, if it cannot be detected Blob content as text. Throws if blob is missing Gets the blob content, decoded with UTF8 encoding if the encoding cannot be detected Parameter controlling content filtering behavior Blob content as text. Throws if blob is missing Gets the blob content as it would be checked out to the working directory, decoded with the specified encoding, or according to byte order marks, with UTF8 as fallback, if is null. Parameter controlling content filtering behavior The encoding of the text. (default: detected or UTF8) Blob content as text. Throws if blob is missing A branch is a special kind of reference Needed for mocking purposes. Initializes a new instance of the class. The repo. The reference. The full name of the reference Initializes a new instance of an orphaned class. This instance will point to no commit. The repo. The reference. Gets the pointed at by the in the . The relative path to the from the working directory. null if nothing has been found, the otherwise. Gets a value indicating whether this instance is a remote. true if this instance is remote; otherwise, false. Gets the remote branch which is connected to this local one, or null if there is none. Determines if this local branch is connected to a remote one. Gets additional information about the tracked branch. Gets a value indicating whether this instance is current branch (HEAD) in the repository. true if this instance is the current branch; otherwise, false. Gets the that this branch points to. Gets the commits on this branch. (Starts walking from the References's target). Gets the configured canonical name of the upstream branch. This is the upstream reference to which this branch will be pushed. It corresponds to the "branch.branch_name.merge" property of the config file. Get the name of the remote for the branch. If this is a local branch, this will return the configured to fetch from and push to. If this is a remote-tracking branch, this will return the name of the remote containing the tracked branch. If there is no tracking information, this will return null. Removes redundent leading namespaces (regarding the kind of reference being wrapped) from the canonical name. The friendly shortened name The collection of Branches in a Needed for mocking purposes. Initializes a new instance of the class. The repo. Gets the with the specified name. Returns an enumerator that iterates through the collection. An object that can be used to iterate through the collection. Returns an enumerator that iterates through the collection. An object that can be used to iterate through the collection. Create a new local branch with the specified name The name of the branch. Revparse spec for the target commit. A new . Create a new local branch with the specified name The name of the branch. The target commit. A new . Create a new local branch with the specified name The name of the branch. The target commit. True to allow silent overwriting a potentially existing branch, false otherwise. A new . Create a new local branch with the specified name The name of the branch. Revparse spec for the target commit. True to allow silent overwriting a potentially existing branch, false otherwise. A new . Deletes the branch with the specified name. The name of the branch to delete. Deletes the branch with the specified name. The name of the branch to delete. True if the provided is the name of a remote branch, false otherwise. Deletes the specified branch. The branch to delete. Rename an existing local branch, using the default reflog message The current branch name. The new name the existing branch should bear. A new . Rename an existing local branch, using the default reflog message The current branch name. The new name the existing branch should bear. True to allow silent overwriting a potentially existing branch, false otherwise. A new . Rename an existing local branch The current local branch. The new name the existing branch should bear. A new . Rename an existing local branch The current local branch. The new name the existing branch should bear. True to allow silent overwriting a potentially existing branch, false otherwise. A new . Update properties of a branch. The branch to update. Delegate to perform updates on the branch. The updated branch. Tracking information for a Needed for mocking purposes. Gets the number of commits that exist in this local branch but don't exist in the tracked one. This property will return null if this local branch has no upstream configuration or if the upstream branch does not exist Gets the number of commits that exist in the tracked branch but don't exist in this local one. This property will return null if this local branch has no upstream configuration or if the upstream branch does not exist Gets the common ancestor of the local branch and its tracked remote branch. This property will return null if this local branch has no upstream configuration, the upstream branch does not exist, or either branch is an orphan. Exposes properties of a branch that can be updated. Needed for mocking purposes. Sets the upstream information for the branch. Passing null or string.Empty will unset the upstream. The upstream branch name is with respect to the current repository. So, passing "refs/remotes/origin/master" will set the current branch to track "refs/heads/master" on the origin. Passing in "refs/heads/master" will result in the branch tracking the local master branch. Set the upstream branch for this branch. To track the "master" branch on the "origin" remote, set the property to "origin" and the property to "refs/heads/master". Set the upstream remote for this branch. To track the "master" branch on the "origin" remote, set the property to "origin" and the property to "refs/heads/master". Set the upstream information for the current branch. The upstream branch name is with respect to the current repository. So, passing "refs/remotes/origin/master" will set the current branch to track "refs/heads/master" on the origin. Passing in "refs/heads/master" will result in the branch tracking the local master branch. The remote branch to track (e.g. refs/remotes/origin/master). Set the upstream merge branch for the local branch. The merge branch in the upstream remote's namespace. Set the upstream remote for the local branch. The name of the remote to set as the upstream branch. Get the upstream remote and merge branch name from a Canonical branch name. This will return the remote name (or ".") if a local branch for the remote name. The canonical branch name to parse. The name of the corresponding remote the branch belongs to or "." if it is a local branch. The name of the upstream branch to merge into. Flags to identify libgit2 compiled features. No optional features are compiled into libgit2. Threading support is compiled into libgit2. Support for remotes over the HTTPS protocol is compiled into libgit2. Support for remotes over the SSH protocol is compiled into libgit2. Support for sub-second resolution in file modification times is compiled into libgit2. Top-level certificate type. The usable certificates inherit from this class. This class represents the hostkey which is avaiable when connecting to a SSH host. For mocking purposes The MD5 hash of the host. Meaningful if is true The SHA1 hash of the host. Meaningful if is true True if we have the MD5 hostkey hash from the server True if we have the SHA1 hostkey hash from the server Conains a X509 certificate For mocking purposes The certificate. The kind of changes that a Diff can report. No changes detected. The file was added. The file was deleted. The file content was modified. The file was renamed. The file was copied. The file is ignored in the workdir. The file is untracked in the workdir. The type (i.e. regular file, symlink, submodule, ...) of the file was changed. Entry is unreadable. Entry is currently in conflict. Class to handle the mapping between libgit2 progress_cb callback on the git_checkout_opts structure to the CheckoutProgressHandler delegate. The managed delegate (e.g. from library consumer) to be called in response to the checkout progress callback. The managed delegate (e.g. from library consumer) to be called in response to the checkout notify callback. Constructor to set up native callback for given managed delegate. delegate to call in response to checkout progress_cb delegate to call in response to checkout notification callback. The method to pass for the native checkout progress callback. The method to pass for the native checkout notify callback. Generate a delegate matching the signature of the native progress_cb callback and wraps the delegate. that should be wrapped in the native callback. delegate to call in response to checkout notification callback. The delegate with signature matching the expected native callback. The delegate with a signature that matches the native checkout progress_cb function's signature. The path that was updated. The number of completed steps. The total number of steps. Payload object. The exception that is thrown when a checkout cannot be performed because of a conflicting change staged in the index, or unstaged in the working directory. Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. A message that describes the error. Initializes a new instance of the class with a specified error message. A composite format string for use in . An object array that contains zero or more objects to format. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception. If the parameter is not a null reference, the current exception is raised in a catch block that handles the inner exception. Initializes a new instance of the class with a serialized data. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. Enum specifying what content checkout should write to disk for conflicts. Use the default behavior for handling file conflicts. This is controlled by the merge.conflictstyle config option, and is "Merge" if no option is explicitly set. For conflicting files, checkout the "ours" (stage 2) version of the file from the index. For conflicting files, checkout the "theirs" (stage 3) version of the file from the index. Write normal merge files for conflicts. Write diff3 formated files for conflicts. Options controlling Checkout behavior. No checkout flags - use default behavior. Proceed with checkout even if the index or the working tree differs from HEAD. This will throw away local changes. Flags controlling checkout notification behavior. No checkout notification. Notify on conflicting paths. Notify about dirty files. These are files that do not need an update, but no longer match the baseline. Notify for files that will be updated. Notify for untracked files. Notify about ignored file. Collection of parameters controlling Checkout behavior. Options controlling checkout behavior. The flags specifying what conditions are reported through the OnCheckoutNotify delegate. Delegate to be called during checkout for files that match desired filter specified with the NotifyFlags property. Delegate through which checkout will notify callers of certain conditions. The conditions that are reported is controlled with the CheckoutNotifyFlags property. Generate a object with the delegates hooked up to the native callbacks. Options controlling CherryPick behavior. Initializes a new instance of the class. By default the cherry pick will be committed if there are no conflicts. When cherry picking a merge commit, the parent number to consider as mainline, starting from offset 1. As a merge commit has multiple parents, cherry picking a merge commit will take only the changes relative to the given parent. The parent to consider changes based on is called the mainline, and must be specified by its number (i.e. offset). Class to report the result of a cherry picked. Needed for mocking purposes. The resulting commit of the cherry pick. This will return null if the cherry pick was not committed. This can happen if: 1) The cherry pick resulted in conflicts. 2) The option to not commit on success is set. The status of the cherry pick. The status of what happened as a result of a cherry-pick. The commit was successfully cherry picked. The cherry pick resulted in conflicts. Options to define clone behavior Creates with specified for a non-bare clone. The fetch options to use. Creates default for a non-bare clone. True will result in a bare clone, false a full clone. If true, the origin's HEAD will be checked out. This only applies to non-bare repositories. The name of the branch to checkout. When unspecified the remote's default branch will be used instead. Recursively clone submodules. Handler for checkout progress information. Gets or sets the fetch options. Class to serve as namespacing for the command-emulating methods Fetch changes from the configured upstream remote and branch into the branch pointed at by HEAD. Checkout the specified , reference or SHA. If the committishOrBranchSpec parameter resolves to a branch name, then the checked out HEAD will will point to the branch. Otherwise, the HEAD will be detached, pointing at the commit sha. The repository to act on A revparse spec for the commit or branch to checkout. The that was checked out. Checkout the specified , reference or SHA. If the committishOrBranchSpec parameter resolves to a branch name, then the checked out HEAD will will point to the branch. Otherwise, the HEAD will be detached, pointing at the commit sha. The repository to act on A revparse spec for the commit or branch to checkout. controlling checkout behavior. The that was checked out. Checkout the tip commit of the specified object. If this commit is the current tip of the branch, will checkout the named branch. Otherwise, will checkout the tip commit as a detached HEAD. The repository to act on The to check out. The that was checked out. Checkout the tip commit of the specified object. If this commit is the current tip of the branch, will checkout the named branch. Otherwise, will checkout the tip commit as a detached HEAD. The repository to act on The to check out. controlling checkout behavior. The that was checked out. Checkout the specified . Will detach the HEAD and make it point to this commit sha. The repository to act on The to check out. The that was checked out. Checkout the specified . Will detach the HEAD and make it point to this commit sha. The repository to act on The to check out. controlling checkout behavior. The that was checked out. Internal implementation of Checkout that expects the ID of the checkout target to already be in the form of a canonical branch name or a commit ID. The repository to act on The to checkout. controlling checkout behavior. The spec which will be written as target in the reflog. Perform a fetch The repository in which to fetch. The remote to fetch from. Either as a remote name or a URL Fetch options. Log message for any ref updates. List of refspecs to apply as active. Fetch changes from the configured upstream remote and branch into the branch pointed at by HEAD. The repository. The signature to use for the merge. The options for fetch and merging. Removes a file from the staging area, and optionally removes it from the working directory as well. If the file has already been deleted from the working directory, this method will only deal with promoting the removal to the staging area. The default behavior is to remove the file from the working directory as well. The being worked with. The path of the file within the working directory. Removes a file from the staging area, and optionally removes it from the working directory as well. If the file has already been deleted from the working directory, this method will only deal with promoting the removal to the staging area. The default behavior is to remove the file from the working directory as well. The being worked with. The path of the file within the working directory. True to remove the file from the working directory, False otherwise. Removes a file from the staging area, and optionally removes it from the working directory as well. If the file has already been deleted from the working directory, this method will only deal with promoting the removal to the staging area. The default behavior is to remove the file from the working directory as well. When not passing a , the passed path will be treated as a pathspec. You can for example use it to pass the relative path to a folder inside the working directory, so that all files beneath this folders, and the folder itself, will be removed. The repository in which to operate The path of the file within the working directory. True to remove the file from the working directory, False otherwise. The passed will be treated as an explicit path. Use these options to determine how unmatched explicit paths should be handled. Removes a collection of fileS from the staging, and optionally removes them from the working directory as well. If a file has already been deleted from the working directory, this method will only deal with promoting the removal to the staging area. The default behavior is to remove the files from the working directory as well. The being worked with. The collection of paths of the files within the working directory. Removes a collection of fileS from the staging, and optionally removes them from the working directory as well. If a file has already been deleted from the working directory, this method will only deal with promoting the removal to the staging area. The default behavior is to remove the files from the working directory as well. When not passing a , the passed paths will be treated as a pathspec. You can for example use it to pass the relative paths to folders inside the working directory, so that all files beneath these folders, and the folders themselves, will be removed. The repository in which to operate The collection of paths of the files within the working directory. True to remove the files from the working directory, False otherwise. The passed will be treated as explicit paths. Use these options to determine how unmatched explicit paths should be handled. Promotes to the staging area the latest modifications of a file in the working directory (addition, updation or removal). If this path is ignored by configuration then it will not be staged unless is unset. The repository in which to act The path of the file within the working directory. Promotes to the staging area the latest modifications of a file in the working directory (addition, updation or removal). If this path is ignored by configuration then it will not be staged unless is unset. The repository in which to act The path of the file within the working directory. Determines how paths will be staged. Promotes to the staging area the latest modifications of a collection of files in the working directory (addition, updation or removal). Any paths (even those listed explicitly) that are ignored by configuration will not be staged unless is unset. The repository in which to act The collection of paths of the files within the working directory. Promotes to the staging area the latest modifications of a collection of files in the working directory (addition, updation or removal). Any paths (even those listed explicitly) that are ignored by configuration will not be staged unless is unset. The repository in which to act The collection of paths of the files within the working directory. Determines how paths will be staged. Removes from the staging area all the modifications of a file since the latest commit (addition, updation or removal). The repository in which to act The path of the file within the working directory. Removes from the staging area all the modifications of a file since the latest commit (addition, updation or removal). The repository in which to act The path of the file within the working directory. The passed will be treated as explicit paths. Use these options to determine how unmatched explicit paths should be handled. Removes from the staging area all the modifications of a collection of file since the latest commit (addition, updation or removal). The repository in which to act The collection of paths of the files within the working directory. Removes from the staging area all the modifications of a collection of file since the latest commit (addition, updation or removal). The repository in which to act The collection of paths of the files within the working directory. The passed will be treated as explicit paths. Use these options to determine how unmatched explicit paths should be handled. Moves and/or renames a file in the working directory and promotes the change to the staging area. The repository to act on The path of the file within the working directory which has to be moved/renamed. The target path of the file within the working directory. Moves and/or renames a collection of files in the working directory and promotes the changes to the staging area. The repository to act on The paths of the files within the working directory which have to be moved/renamed. The target paths of the files within the working directory. A Commit Needed for mocking purposes. Gets the pointed at by the in the . Path to the from the tree in this null if nothing has been found, the otherwise. Gets the commit message. Gets the short commit message which is usually the first line of the commit. Gets the encoding of the message. Gets the author of this commit. Gets the committer. Gets the Tree associated to this commit. Gets the parents of this commit. This property is lazy loaded and can throw an exception if the commit no longer exists in the repo. Gets the notes of this commit. Prettify a commit message Remove comment lines and trailing lines The prettified message The message to prettify. Comment character. Lines starting with it will be removed Extract the signature data from this commit The signature and the signed data The repository in which the object lives The commit to extract the signature from The header field which contains the signature; use null for the default of "gpgsig" Extract the signature data from this commit The overload uses the default header field "gpgsig" The signature and the signed data The repository in which the object lives The commit to extract the signature from Create a commit in-memory Prettifing the message includes: * Removing empty lines from the beginning and end. * Removing trailing spaces from every line. * Turning multiple consecutive empty lines between paragraphs into just one empty line. * Ensuring the commit message ends with a newline. * Removing every line starting with the . The of who made the change. The of who added the change to the repository. The description of why a change was made to the repository. The of the to be created. The parents of the to be created. True to prettify the message, or false to leave it as is. When non null, lines starting with this character will be stripped if prettifyMessage is true. The contents of the commit object. Criteria used to filter out and order the commits of the repository when querying its history. Initializes a new instance of . The ordering strategy to use. By default, the commits are shown in reverse chronological order. A pointer to a commit object or a list of pointers to consider as starting points. Can be either a containing the sha or reference canonical name to use, a , a , a , a , a , an or even a mixed collection of all of the above. By default, the will be used as boundary. A pointer to a commit object or a list of pointers which will be excluded (along with ancestors) from the enumeration. Can be either a containing the sha or reference canonical name to use, a , a , a , a , a , an or even a mixed collection of all of the above. Whether to limit the walk to each commit's first parent, instead of all of them A log of commits in a Initializes a new instance of the class. The commits will be enumerated according in reverse chronological order. The repository. Initializes a new instance of the class. The repository. The filter to use in querying commits Gets the current sorting strategy applied when enumerating the log Returns an enumerator that iterates through the log. An object that can be used to iterate through the log. Returns an enumerator that iterates through the log. An object that can be used to iterate through the log. Returns the list of commits of the repository matching the specified . The options used to control which commits will be returned. A list of commits, ready to be enumerated. Returns the list of commits of the repository representing the history of a file beyond renames. The file's path. A list of file history entries, ready to be enumerated. Returns the list of commits of the repository representing the history of a file beyond renames. The file's path. The options used to control which commits will be returned. A list of file history entries, ready to be enumerated. Determines the finding strategy of merge base. Compute the best common ancestor between some commits to use in a three-way merge. When more than two commits are provided, the computation is performed between the first commit and a hypothetical merge commit across all the remaining commits. Compute the best common ancestor of all supplied commits, in preparation for an n-way merge. Provides optional additional information to commit creation. By default, a new commit will be created (instead of amending the HEAD commit) and an empty commit which is unchanged from the current HEAD is disallowed. Initializes a new instance of the class. Default behavior: The message is prettified. No automatic removal of comments is performed. True to amend the current pointed at by , false otherwise. True to allow creation of an empty , false otherwise. True to prettify the message by stripping leading and trailing empty lines, trailing whitespace, and collapsing consecutive empty lines, false otherwise. The starting line char used to identify commentaries in the Commit message during the prettifying of the Commit message. If set (usually to '#'), all lines starting with this char will be removed from the message before the Commit is done. This property will only be considered when PrettifyMessage is set to true. Commit metadata when rewriting history The author to be used for the new commit The committer to be used for the new commit The message to be used for the new commit Build a from the passed in The whose information is to be copied A new object that matches the info for the . Build a from the passed in, optionally overriding some of its properties The whose information is to be copied Optional override for the author A new object that matches the info for the with the optional parameters replaced.. Build a from the passed in, optionally overriding some of its properties The whose information is to be copied Optional override for the message A new object that matches the info for the with the optional parameters replaced.. Build a from the passed in, optionally overriding some of its properties The whose information is to be copied Optional override for the author Optional override for the committer A new object that matches the info for the with the optional parameters replaced.. Build a from the passed in, optionally overriding some of its properties The whose information is to be copied Optional override for the author Optional override for the committer Optional override for the message A new object that matches the info for the with the optional parameters replaced.. Determines the sorting strategy when iterating through the commits of the repository Sort the commits in no particular ordering; this sorting is arbitrary, implementation-specific and subject to change at any time. Sort the commits in topological order (parents before children); this sorting mode can be combined with time sorting. Sort the commits by commit time; this sorting mode can be combined with topological sorting. Iterate through the commits in reverse order; this sorting mode can be combined with any of the above. Options to define file comparison behavior. Initializes a new instance of the class. The number of unchanged lines that define the boundary of a hunk (and to display before and after). (Default = 3) The maximum number of unchanged lines between hunk boundaries before the hunks will be merged into a one. (Default = 0) Options for rename detection. If null, the `diff.renames` configuration setting is used. Include "unmodified" entries in the results. Algorithm to be used when performing a Diff. By default, will be used. Enable --indent-heuristic Diff option, that attempts to produce more aesthetically pleasing diffs. By default, this option will be false. Provides access to configuration variables for a repository. Needed for mocking purposes. Access configuration values without a repository. Generally you want to access configuration via an instance of instead. can either contains a path to a file or a directory. In the latter case, this can be the working directory, the .git directory or the directory containing a bare repository. Path to an existing Repository configuration file. An instance of . Access configuration values without a repository. Generally you want to access configuration via an instance of instead. can either contains a path to a file or a directory. In the latter case, this can be the working directory, the .git directory or the directory containing a bare repository. Path to an existing Repository configuration file. Path to a Global configuration file. If null, the default path for a Global configuration file will be probed. An instance of . Access configuration values without a repository. Generally you want to access configuration via an instance of instead. can either contains a path to a file or a directory. In the latter case, this can be the working directory, the .git directory or the directory containing a bare repository. Path to an existing Repository configuration file. Path to a Global configuration file. If null, the default path for a Global configuration file will be probed. Path to a XDG configuration file. If null, the default path for a XDG configuration file will be probed. An instance of . Access configuration values without a repository. Generally you want to access configuration via an instance of instead. can either contains a path to a file or a directory. In the latter case, this can be the working directory, the .git directory or the directory containing a bare repository. Path to an existing Repository configuration file. Path to a Global configuration file. If null, the default path for a Global configuration file will be probed. Path to a XDG configuration file. If null, the default path for a XDG configuration file will be probed. Path to a System configuration file. If null, the default path for a System configuration file will be probed. An instance of . Determines which configuration file has been found. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Saves any open configuration files. Unset a configuration variable (key and value) in the local configuration. The key to unset. Unset a configuration variable (key and value). The key to unset. The configuration file which should be considered as the target of this operation Unset all configuration values in a multivar variable (key and value) in the local configuration. The key to unset. Unset all configuration values in a multivar variable (key and value). The key to unset. The configuration file which should be considered as the target of this operation Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Get a configuration value for the given key parts. For example in order to get the value for this in a .git\config file: [core] bare = true You would call: bool isBare = repo.Config.Get<bool>(new []{ "core", "bare" }).Value; The configuration value type The key parts The , or null if not set Get a configuration value for the given key parts. For example in order to get the value for this in a .git\config file: [difftool "kdiff3"] path = c:/Program Files/KDiff3/kdiff3.exe You would call: string where = repo.Config.Get<string>("difftool", "kdiff3", "path").Value; The configuration value type The first key part The second key part The third key part The , or null if not set Get a configuration value for a key. Keys are in the form 'section.name'. The same escalation logic than in git.git will be used when looking for the key in the config files: - local: the Git file in the current repository - global: the Git file specific to the current interactive user (usually in `$HOME/.gitconfig`) - xdg: another Git file specific to the current interactive user (usually in `$HOME/.config/git/config`) - system: the system-wide Git file The first occurence of the key will be returned. For example in order to get the value for this in a .git\config file: [core] bare = true You would call: bool isBare = repo.Config.Get<bool>("core.bare").Value; The configuration value type The key The , or null if not set Get a configuration value for a key. Keys are in the form 'section.name'. For example in order to get the value for this in a .git\config file: [core] bare = true You would call: bool isBare = repo.Config.Get<bool>("core.bare").Value; The configuration value type The key The configuration file into which the key should be searched for The , or null if not set Get a configuration value for the given key. The configuration value type. The key The configuration value, or the default value for the selected if not found Get a configuration value for the given key, or if the key is not set. The configuration value type. The key The default value if the key is not set. The configuration value, or the default value Get a configuration value for the given key The configuration value type. The key. The configuration file into which the key should be searched for. The configuration value, or the default value for if not found Get a configuration value for the given key, or if the key is not set. The configuration value type. The key. The configuration file into which the key should be searched for. The selector used to generate a default value if the key is not set. The configuration value, or the default value. Get a configuration value for the given key parts The configuration value type. The key parts. The configuration value, or the default value for if not found Get a configuration value for the given key parts, or if the key is not set. The configuration value type. The key parts. The default value if the key is not set. The configuration value, or the default value. Get a configuration value for the given key parts. The configuration value type. The first key part. The second key part. The third key part. The configuration value, or the default value for the selected if not found Get a configuration value for the given key parts, or if the key is not set. The configuration value type. The first key part. The second key part. The third key part. The default value if the key is not set. The configuration value, or the default. Get a configuration value for the given key, or a value generated by if the key is not set. The configuration value type. The key The selector used to generate a default value if the key is not set. The configuration value, or a generated default. Get a configuration value for the given key, or a value generated by if the key is not set. The configuration value type. The key. The configuration file into which the key should be searched for. The selector used to generate a default value if the key is not set. The configuration value, or a generated default. Get a configuration value for the given key parts, or a value generated by if the key is not set. The configuration value type. The key parts. The selector used to generate a default value if the key is not set. The configuration value, or a generated default. Get a configuration value for the given key parts, or a value generated by if the key is not set. The configuration value type. The first key part. The second key part. The third key part. The selector used to generate a default value if the key is not set. The configuration value, or a generated default. Set a configuration value for a key in the local configuration. Keys are in the form 'section.name'. For example in order to set the value for this in a .git\config file: [test] boolsetting = true You would call: repo.Config.Set("test.boolsetting", true); The configuration value type The key parts The value Set a configuration value for a key. Keys are in the form 'section.name'. For example in order to set the value for this in a .git\config file: [test] boolsetting = true You would call: repo.Config.Set("test.boolsetting", true); The configuration value type The key parts The value The configuration file which should be considered as the target of this operation Adds a configuration value for a multivalue key in the local configuration. Keys are in the form 'section.name'. For example in order to add the value for this in a .git\config file: [test] plugin = first You would call: repo.Config.Add("test.plugin", "first"); The key parts The value Adds a configuration value for a multivalue key. Keys are in the form 'section.name'. For example in order to add the value for this in a .git\config file: [test] plugin = first You would call: repo.Config.Add("test.plugin", "first"); The key parts The value The configuration file which should be considered as the target of this operation Find configuration entries matching . A regular expression. Matching entries. Find configuration entries matching . A regular expression. The configuration file into which the key should be searched for. Matching entries. Returns an enumerator that iterates through the configuration entries. An object that can be used to iterate through the configuration entries. Builds a based on current configuration. If it is not found or some configuration is missing, null is returned. The same escalation logic than in git.git will be used when looking for the key in the config files: - local: the Git file in the current repository - global: the Git file specific to the current interactive user (usually in `$HOME/.gitconfig`) - xdg: another Git file specific to the current interactive user (usually in `$HOME/.config/git/config`) - system: the system-wide Git file The timestamp to use for the . The signature or null if no user identity can be found in the configuration. Perform a series of actions within a transaction. The configuration will be locked during this function and the changes will be committed at the end. These changes will not be visible in the configuration until the end of this method. If the action throws an exception, the changes will be rolled back. The code to run under the transaction The full representation of a config option. The configuration value type The fully-qualified option name. The option value. The origin store. Needed for mocking purposes. Initializes a new instance of the class with a given key and value The option name The option value The origin store Specifies the level of configuration to use. Worktree specific configuration file; $GIT_DIR/config.worktree The local .git/config of the current repository. The global ~/.gitconfig of the current user. The global ~/.config/git/config of the current user. The system wide .gitconfig. Another system-wide configuration on Windows. Represents a group of index entries that describe a merge conflict in the index. This is typically a set of ancestor, ours and theirs entries for a given path. Any side may be missing to reflect additions or deletions in the branches being merged. Needed for mocking purposes. The index entry of the ancestor side of the conflict (the stage 1 index entry.) The index entry of the "ours" (ORIG_HEAD or merge target) side of the conflict (the stage 2 index entry.) The index entry of the "theirs" (merge source) side of the conflict (the stage 3 index entry.) Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. Returns the hash code for this instance. A 32-bit signed integer hash code. Tests if two are equal. First to compare. Second to compare. True if the two objects are equal; false otherwise. Tests if two are different. First to compare. Second to compare. True if the two objects are different; false otherwise. The collection of s in a index due to a previously performed merge operation. Needed for mocking purposes. Gets the for the specified relative path. The relative path to query A that represents the conflict for this file. Get the that contains the list of conflicts that have been resolved. Get the that contains the list of paths involved in rename conflicts. Returns an enumerator that iterates through the collection. An object that can be used to iterate through the collection. Returns an enumerator that iterates through the collection. An object that can be used to iterate through the collection. Holds the changes between two s. Needed for mocking purposes. The number of lines added. The number of lines deleted. The list of added lines. The list of deleted lines. The patch corresponding to these changes. Determines if at least one side of the comparison holds binary content. Holds a summary of a change to a single file. The number of lines added in the diff. The number of lines deleted in the diff. For mocking. Ensure input parameters Checks an argument to ensure it isn't null. The argument value to check. The name of the argument. Checks an array argument to ensure it isn't null or empty. The argument value to check. The name of the argument. Checks a string argument to ensure it isn't null or empty. The argument value to check. The name of the argument. Checks a string argument to ensure it doesn't contain a zero byte. The argument value to check. The name of the argument. Checks an argument to ensure it isn't a IntPtr.Zero (aka null). The argument value to check. The name of the argument. Checks a pointer argument to ensure it is the expected pointer value. The argument value to check. The expected value. The name of the argument. Check that the result of a C call was successful The native function is expected to return strictly 0 for success or a negative value in the case of failure. The result to examine. Check that the result of a C call returns a boolean value. The native function is expected to return strictly 0 or 1. The result to examine. Check that the result of a C call that returns an integer value was successful. The native function is expected to return 0 or a positive value for success or a negative value in the case of failure. The result to examine. Checks an argument by applying provided checker. The argument value to check. The predicate which has to be satisfied The name of the argument. Checks an argument is a positive integer. The argument value to check. The name of the argument. Check that the result of a C call that returns a non-null GitObject using the default exception builder. The native function is expected to return a valid object value. The to examine. The identifier to examine. Specify how the remote tracking branches should be locally dealt with when their upstream countepart doesn't exist anymore. Use the setting from the configuration or, when there isn't any, fallback to default behavior. Force pruning on Force pruning off Represents a file-related log of commits beyond renames. The allowed commit sort strategies. The repository. The file's path relative to the repository's root. The filter to be used in querying the commit log. Initializes a new instance of the class. The commits will be enumerated in reverse chronological order. The repository. The file's path relative to the repository's root. If any of the parameters is null. Initializes a new instance of the class. The given instance specifies the commit sort strategies and range of commits to be considered. Only the time (corresponding to --date-order) and topological (coresponding to --topo-order) sort strategies are supported. The repository. The file's path relative to the repository's root. The filter to be used in querying the commit log. If any of the parameters is null. When an unsupported commit sort strategy is specified. Gets the that enumerates the instances representing the file's history, including renames (as in git log --follow). A . Gets the relevant commits in which the given file was created, changed, or renamed. The repository. The file's path relative to the repository's root. The filter to be used in querying the commits log. A collection of instances. This marshaler is to be used for capturing a UTF-8 string owned by libgit2 and converting it to a managed FilePath instance. The marshaler will not attempt to free the native pointer after conversion, because the memory is owned by libgit2. Use this marshaler for return values, for example: [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalCookie = UniqueId.UniqueIdentifier, MarshalTypeRef = typeof(LaxFilePathNoCleanupMarshaler))] This marshaler is to be used for sending managed FilePath instances to libgit2. The marshaler will allocate a buffer in native memory to hold the UTF-8 string and perform the encoding conversion using that buffer as the target. The pointer received by libgit2 will be to this buffer. After the function call completes, the native buffer is freed. Use this marshaler for function parameters, for example: [DllImport(libgit2)] internal static extern int git_index_open(out IndexSafeHandle index, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalCookie = UniqueId.UniqueIdentifier, MarshalTypeRef = typeof(StrictFilePathMarshaler))] FilePath indexpath); This marshaler is to be used for capturing a UTF-8 string allocated by libgit2 and converting it to a managed FilePath instance. The marshaler will free the native pointer after conversion. Normal blame, the default Track lines that have moved within a file (like `git blame -M`). Track lines that have moved across files in the same commit (like `git blame -C`). NOT IMPLEMENTED. Track lines that have been copied from another file that exists in the same commit (like `git blame -CC`). Implies SAME_FILE. Track lines that have been copied from another file that exists in *any* commit (like `git blame -CCC`). Implies SAME_COMMIT_COPIES. Restrict the search of commits to those reachable following only the first parents. The MD5 hash (if appropriate) The SHA1 hash (if appropriate) Git certificate types to present to the user No information about the certificate is available. The certificate is a x509 certificate The "certificate" is in fact a hostkey identification for ssh. The "certificate" is in fact a collection of `name:content` strings containing information about the certificate. Type of the certificate, in this case, GitCertificateType.X509 Pointer to the X509 certificate data The size of the certificate data Default is a dry run, no actual updates. Allow safe updates that cannot overwrite uncommited data. Allow update of entries in working dir that are modified from HEAD. Allow checkout to recreate missing files. Allow checkout to make safe updates even if conflicts are found Remove untracked files not in index (that are not ignored) Remove ignored files not in index Only update existing files, don't create new ones Normally checkout updates index entries as it goes; this stops that Implies `GIT_CHECKOUT_DONT_WRITE_INDEX`. Don't refresh index/config/etc before doing checkout Allow checkout to skip unmerged files For unmerged files, checkout stage 2 from index For unmerged files, checkout stage 3 from index Treat pathspec as simple list of exact match file paths Ignore directories in use, they will be left empty Don't overwrite ignored files that exist in the checkout target Write normal merge files for conflicts Include common ancestor data in diff3 format files for conflicts Don't overwrite existing files or folders Normally checkout writes the index upon completion; this prevents that. Recursively checkout submodules with same options (NOT IMPLEMENTED) Recursively checkout submodules if HEAD moved in super repo (NOT IMPLEMENTED) An inteface for objects that specify parameters from which a GitCheckoutOpts struct can be populated. This wraps an IConvertableToGitCheckoutOpts object and can tweak the properties so that they are appropriate for a checkout performed as part of a FastForward merge. Most properties are passthrough to the wrapped object. Passthrough to the wrapped object. There should be no resolvable conflicts in a FastForward merge. Just perform checkout with the safe checkout strategy. Passthrough to the wrapped object. A wrapper around the native GitCheckoutOpts structure. This class is responsible for the managed objects that the native code points to. Create wrapper around from . Options to create native GitCheckoutOpts structure from. Paths to checkout. Native struct to pass to libgit. The managed class mapping native callbacks into the corresponding managed delegate. Keep the paths around so we can dispose them. Method to translate from to flags. Authentication type requested. A plaintext username and password. A ssh key from disk. A key with a custom signature function. A key for NTLM/Kerberos "default" credentials. TODO Username-only information If the SSH transport does not know which username to use, it will ask via this credential type. Credentials read from memory. Only available for libssh2+OpenSSL for now. Normal diff, the default Reverse the sides of the diff Include ignored files in the diff Even with GIT_DIFF_INCLUDE_IGNORED, an entire ignored directory will be marked with only a single entry in the diff; this flag adds all files under the directory as IGNORED entries, too. Include untracked files in the diff Even with GIT_DIFF_INCLUDE_UNTRACKED, an entire untracked directory will be marked with only a single entry in the diff (a la what core Git does in `git status`); this flag adds *all* files under untracked directories as UNTRACKED entries, too. Include unmodified files in the diff Normally, a type change between files will be converted into a DELETED record for the old and an ADDED record for the new; this options enabled the generation of TYPECHANGE delta records. Even with GIT_DIFF_INCLUDE_TYPECHANGE, blob->tree changes still generally show as a DELETED blob. This flag tries to correctly label blob->tree transitions as TYPECHANGE records with new_file's mode set to tree. Note: the tree SHA will not be available. Ignore file mode changes Treat all submodules as unmodified Use case insensitive filename comparisons May be combined with `GIT_DIFF_IGNORE_CASE` to specify that a file that has changed case will be returned as an add/delete pair. If the pathspec is set in the diff options, this flags means to apply it as an exact match instead of as an fnmatch pattern. Disable updating of the `binary` flag in delta records. This is useful when iterating over a diff if you don't need hunk and data callbacks and want to avoid having to load file completely. When diff finds an untracked directory, to match the behavior of core Git, it scans the contents for IGNORED and UNTRACKED files. If *all* contents are IGNORED, then the directory is IGNORED; if any contents are not IGNORED, then the directory is UNTRACKED. This is extra work that may not matter in many cases. This flag turns off that scan and immediately labels an untracked directory as UNTRACKED (changing the behavior to not match core Git). When diff finds a file in the working directory with stat information different from the index, but the OID ends up being the same, write the correct stat information into the index. Note: without this flag, diff will always leave the index untouched. Include unreadable files in the diff Include unreadable files in the diff Use a heuristic that takes indentation and whitespace into account which generally can produce better diffs when dealing with ambiguous diff hunks. Treat all files as text, disabling binary attributes and detection Treat all files as binary, disabling text diffs Ignore all whitespace Ignore changes in amount of whitespace Ignore whitespace at end of line When generating patch text, include the content of untracked files. This automatically turns on GIT_DIFF_INCLUDE_UNTRACKED but it does not turn on GIT_DIFF_RECURSE_UNTRACKED_DIRS. Add that flag if you want the content of every single UNTRACKED file. When generating output, include the names of unmodified files if they are included in the git_diff. Normally these are skipped in the formats that list files (e.g. name-only, name-status, raw). Even with this, these will not be included in patch format. Use the "patience diff" algorithm Take extra time to find minimal diff Include the necessary deflate / delta information so that `git-apply` can apply given diff information to binary files. Input does not exist in the scope searched. Input already exists in the processed scope. The given short oid is ambiguous. Buffer related issue. Callback error. Operation cannot be performed against a bare repository. Operation cannot be performed against an orphaned HEAD. Operation cannot be performed against a not fully merged index. Push cannot be performed against the remote without losing commits. Input is not a valid specification. A conflicting change has been detected in the index or working directory. A file operation failed because the file was locked. Reference value does not match expected. Authentication error. Server certificate is invalid. Patch/merge has already been applied. The requested peel operation is not possible. Unexpected EOF. Invalid operation or input. Uncommitted changes in index prevented operation. The operation is not valid for a directory. A merge conflict exists and cannot continue Skip and passthrough the given ODB backend. There are no more entries left to iterate. Internal-only. A retrieved object did not match its expected ID. Git fetch options wrapper. Disposable wrapper for GitFetchOptions A git filter Initialize callback on filter Specified as `filter.initialize`, this is an optional callback invoked before a filter is first used. It will be called once at most. If non-NULL, the filter's `initialize` callback will be invoked right before the first use of the filter, so you can defer expensive initialization operations (in case libgit2 is being used in a way that doesn't need the filter). Shutdown callback on filter Specified as `filter.shutdown`, this is an optional callback invoked when the filter is unregistered or when libgit2 is shutting down. It will be called once at most and should release resources as needed. Typically this function will free the `git_filter` object itself. Callback to decide if a given source needs this filter Specified as `filter.check`, this is an optional callback that checks if filtering is needed for a given source. It should return 0 if the filter should be applied (i.e. success), GIT_PASSTHROUGH if the filter should not be applied, or an error code to fail out of the filter processing pipeline and return to the caller. The `attr_values` will be set to the values of any attributes given in the filter definition. See `git_filter` below for more detail. The `payload` will be a pointer to a reference payload for the filter. This will start as NULL, but `check` can assign to this pointer for later use by the `apply` callback. Note that the value should be heap allocated (not stack), so that it doesn't go away before the `apply` callback can use it. If a filter allocates and assigns a value to the `payload`, it will need a `cleanup` callback to free the payload. Callback to actually perform the data filtering Specified as `filter.apply`, this is the callback that actually filters data. If it successfully writes the output, it should return 0. Like `check`, it can return GIT_PASSTHROUGH to indicate that the filter doesn't want to run. Other error codes will stop filter processing and return to the caller. The `payload` value will refer to any payload that was set by the `check` callback. It may be read from or written to as needed. Callback to clean up after filtering has been applied. Specified as `filter.cleanup`, this is an optional callback invoked after the filter has been applied. If the `check` or `apply` callbacks allocated a `payload` to keep per-source filter state, use this callback to free that payload and release resources as required. The file source being filtered Similarity to consider a file renamed. Maximum similarity sources to examine (overrides 'merge.renameLimit' config (default 200) Pluggable similarityMetric; pass IntPtr.Zero to use internal metric. Maximum number of times to merge common ancestors to build a virtual merge base when faced with criss-cross merges. When this limit is reached, the next ancestor will simply be used instead of attempting to merge it. The default is unlimited. Default merge driver to be used when both sides of a merge have changed. The default is the `text` driver. Flags for automerging content. File merging flags. The results of `git_merge_analysis` indicate the merge opportunities. No merge is possible. (Unused.) A "normal" merge; both HEAD and the given merge input have diverged from their common ancestor. The divergent commits must be merged. All given merge inputs are reachable from HEAD, meaning the repository is up-to-date and no merge needs to be performed. The given merge input is a fast-forward from HEAD and no merge needs to be performed. Instead, the client can check out the given merge input. The HEAD of the current repository is "unborn" and does not point to a valid commit. No merge can be performed, but the caller may wish to simply set HEAD to the target commit(s). No configuration was found that suggests a preferred behavior for merge. There is a `merge.ff=false` configuration setting, suggesting that the user does not want to allow a fast-forward merge. There is a `merge.ff=only` configuration setting, suggesting that the user only wants fast-forward merges. No options. 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. If a conflict occurs, exit immediately instead of attempting to continue resolving conflicts. The merge operation will fail with GIT_EMERGECONFLICT and no index will be returned. Do not write the REUC extension on the generated index 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`. Defaults Create standard conflicted merge files Create diff3-style files Condense non-alphanumeric regions for simplified diff file Ignore all whitespace Ignore changes in amount of whitespace Ignore whitespace at end of line Use the "patience diff" algorithm Take extra time to find minimal diff Underlying type of a Object can be of any type. Object is invalid. Reserved for future use. A commit object. A tree (directory listing) object. A file revision object. An annotated tag object. Reserved for future use. A delta, base is given by an offset. A delta, base is given by object id. This field is populated by libgit2 at backend addition time, and exists for its use only. From this side of the interop, it is unreferenced. The backend is passed an OID. From that data the backend is expected to return a pointer to the data for that object, the size of the data, and the type of the object. [out] If the call is successful, the backend will write the address of a buffer containing the object contents here. [out] If the call is successful, the backend will write the length of the buffer containing the object contents here. [out] If the call is successful, the backend will write the type of the object here. [in] A pointer to the backend which is being asked to perform the task. [in] The OID which the backend is being asked to look up. 0 if successful; an error code otherwise. The backend is passed a short OID and the number of characters in that short OID. From that data the backend is expected to return the full OID (in out_oid), a pointer to the data (in buffer_p), the size of the buffer returned in buffer_p (in len_p), and the object type (in type_p). The short OID might not be long enough to resolve to just one object. In that case the backend should return GIT_EAMBIGUOUS. [out] If the call is successful, the backend will write the full OID if the object here. [out] If the call is successful, the backend will write the address of a buffer containing the object contents here. [out] If the call is successful, the backend will write the length of the buffer containing the object contents here. [out] If the call is successful, the backend will write the type of the object here. [in] A pointer to the backend which is being asked to perform the task. [in] The short-form OID which the backend is being asked to look up. [in] The length of the short-form OID (short_oid). 0 if successful; an error code otherwise. The backend is passed an OID. From that data the backend is expected to return the size of the data for that OID, and the type of that OID. [out] If the call is successful, the backend will write the length of the data for the OID here. [out] If the call is successful, the backend will write the type of the object here. [in] A pointer to the backend which is being asked to perform the task. [in] The OID which the backend is being asked to look up. 0 if successful; an error code otherwise. The backend is passed an OID, the type of the object, and its contents. The backend is asked to write that data to the backing store. [in] The OID which the backend is being asked to write. [in] A pointer to the backend which is being asked to perform the task. [in] A pointer to the data for this object. [in] The length of the buffer pointed to by data. [in] The type of the object. 0 if successful; an error code otherwise. The backend is passed an OID, the type of the object, and the length of its contents. The backend is asked to return a stream object which the caller can use to write the contents of the object to the backing store. [out] The stream object which the caller will use to write the contents for this object. [in] A pointer to the backend which is being asked to perform the task. [in] The length of the object's contents. [in] The type of the object being written. 0 if successful; an error code otherwise. The backend is passed an OID. The backend is asked to return a stream object which the caller can use to read the contents of this object from the backing store. [out] The stream object which the caller will use to read the contents of this object. [in] A pointer to the backend which is being asked to perform the task. [in] The object ID that the caller is requesting. 0 if successful; an error code otherwise. The backend is passed an OID. The backend is asked to return a value that indicates whether or not the object exists in the backing store. [in] A pointer to the backend which is being asked to perform the task. [in] The object ID that the caller is requesting. True if the object exists; false otherwise The backend is passed a short OID and the number of characters in that short OID. The backend is asked to return a value that indicates whether or not the object exists in the backing store. The short OID might not be long enough to resolve to just one object. In that case the backend should return GIT_EAMBIGUOUS. [out] If the call is successful, the backend will write the full OID if the object here. [in] A pointer to the backend which is being asked to perform the task. [in] The short-form OID which the backend is being asked to look up. [in] The length of the short-form OID (short_oid). 1 if the object exists, 0 if the object doesn't; an error code otherwise. The backend is passed a callback function and a void* to pass through to the callback. The backend is asked to iterate through all objects in the backing store, invoking the callback for each item. [in] A pointer to the backend which is being asked to perform the task. [in] The callback function to invoke. [in] An arbitrary parameter to pass through to the callback The owner of this backend is finished with it. The backend is asked to clean up and shut down. [in] A pointer to the backend which is being freed. A callback for the backend's implementation of foreach. The oid of each object in the backing store. The arbitrary parameter given to foreach_callback. A non-negative result indicates the enumeration should continue. Otherwise, the enumeration should stop. Represents a unique id in git which is the sha1 hash of this id's content. Number of bytes in the Id. The raw binary 20 byte Id. Static convenience property to return an id (all zeros). Git push options wrapper. Disposable wrapper for . Structure for git_remote_callbacks A status entry from libgit2. Calculated status of a filepath in the working directory considering the current and the . The difference between the and . The difference between the and the working directory. A pointer to an array of null-terminated strings. The number of strings in the array. Resets the GitStrArray to default values. A git_strarray where the string array and strings themselves were allocated with LibGit2Sharp's allocator (Marshal.AllocHGlobal). A git_strarray where the string array and strings themselves were allocated with libgit2's allocator. Only libgit2 can free this git_strarray. Enumerates each string from the array using the UTF-8 marshaler. Managed structure corresponding to git_transfer_progress native structure. Flags which can be passed to git_worktree_prune to alter its behavior. Prune working tree even if working tree is valid Prune working tree even if it is locked Prune checked out working tree S Constructor to set up the native callback given managed delegate. The delegate that the git_packbuilder_progress will call. Generates a delegate that matches the native git_packbuilder_progress function's signature and wraps the delegate. A delegate method with a signature that matches git_transfer_progress_callback. Returns true if the runtime is Mono. Returns true if the runtime is .NET Framework. Returns true if the runtime is .NET Core. This method will take an exception and try to generate an error message that captures the important messages of the error. The formatting is a bit subjective. The value from the native layer indicating that no rebase operation is in progress. Returns null when finished. Struct to report the result of calling git_rebase_commit. The ID of the commit that was generated, if any bool to indicate if the patch was already applied. If Patch was already applied, then CommitId will be empty (all zeros). Returns a handle to the corresponding submodule, or an invalid handle if a submodule is not found. Install/Enable logging inside of LibGit2 to send messages back to LibGit2Sharp. Since the given callback will be passed into and retained by C code, it is very important that you pass an actual delegate here (and don't let the compiler create/cast a temporary one for you). Furthermore, you must hold a reference to this delegate until you turn off logging. This callback is unlike other callbacks because logging persists in the process until disabled; in contrast, most callbacks are only defined for the duration of the down-call. Returns the features with which libgit2 was compiled. Get the paths under which libgit2 searches for the configuration file of a given level. The level (global/system/XDG) of the config. The paths delimited by 'GIT_PATH_LIST_SEPARATOR'. Set the path(s) under which libgit2 searches for the configuration file of a given level. The level (global/system/XDG) of the config. A string of paths delimited by 'GIT_PATH_LIST_SEPARATOR'. Pass null to reset the search path to the default. Enable or disable the libgit2 cache true to enable the cache, false otherwise Enable or disable the ofs_delta capabilty true to enable the ofs_delta capabilty, false otherwise Enable or disable the strict_object_creation capabilty true to enable the strict_object_creation capabilty, false otherwise Sets the user-agent string to be used by the HTTP(S) transport. Note that "git/2.0" will be prepended for compatibility. The user-agent string to use Gets the user-agent string used by libgit2. The user-agent string. Gets the value of owner validation Enable or disable owner validation true to enable owner validation, false otherwise Returns a handle to the corresponding worktree, or an invalid handle if a worktree is not found. Helper method for consistent conversion of return value on Callbacks that support cancellation from bool to native type. True indicates that function should continue, false indicates user wants to cancel. Class to hold extension methods used by the proxy class. Convert a UIntPtr to a int value. Will throw exception if there is an overflow. Convert a UIntPtr to a long value. Will throw exception if there is an overflow. Constructor to set up the native callback given managed delegate. The delegate that the git_transfer_progress_callback will call. Generates a delegate that matches the native git_transfer_progress_callback function's signature and wraps the delegate. A delegate method with a signature that matches git_transfer_progress_callback. Option flags for `git_repository_open_ext` Only open the repository if it can be * immediately found in the start_path. Do not walk up from the * start_path looking at parent directories. Unless this flag is set, open will not * continue searching across filesystem boundaries (i.e. when `st_dev` * changes from the `stat` system call). (E.g. Searching in a user's home * directory "/home/user/source/" will not return "/.git/" as the found * repo if "/" is a different filesystem than "/home".) Writes tar (see GNU tar) archive to a stream stream to write archive to UsTar header implementation. Logic taken from https://github.com/git/git/blob/master/archive-tar.c This marshaler is to be used for capturing a UTF-8 string owned by libgit2 and converting it to a managed String instance. The marshaler will not attempt to free the native pointer after conversion, because the memory is owned by libgit2. Use this marshaler for return values, for example: [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalCookie = UniqueId.UniqueIdentifier, MarshalTypeRef = typeof(LaxUtf8NoCleanupMarshaler))] This marshaler is to be used for sending managed String instances to libgit2. The marshaler will allocate a buffer in native memory to hold the UTF-8 string and perform the encoding conversion using that buffer as the target. The pointer received by libgit2 will be to this buffer. After the function call completes, the native buffer is freed. Use this marshaler for function parameters, for example: [DllImport(libgit2)] internal static extern int git_tag_delete(RepositorySafeHandle repo, [MarshalAs(UnmanagedType.CustomMarshaler MarshalCookie = UniqueId.UniqueIdentifier, MarshalTypeRef = typeof(StrictUtf8Marshaler))] String tagName); This marshaler is to be used for capturing a UTF-8 string allocated by libgit2 and converting it to a managed String instance. The marshaler will free the native pointer after conversion. Class that holds credentials for remote repository access. Callback to acquire a credential object. The newly created credential object. 0 for success, < 0 to indicate an error, > 0 to indicate no credential was acquired. Determines the pending operation of a git repository - ie, whether an operation (merge, cherry-pick, etc) is in progress. No operation is in progress. A merge is in progress. A revert is in progress. A sequencer revert is in progress. A cherry-pick is in progress. A sequencer cherry-pick is in progress. A bisect is in progress. A rebase is in progress. A rebase --interactive is in progress. A rebase --merge is in progress. A mailbox application (am) is in progress. A mailbox application (am) or rebase is in progress. A credential object that will provide the "default" credentials (logged-in user information) via NTLM or SPNEGO authentication. Callback to acquire a credential object. The newly created credential object. 0 for success, < 0 to indicate an error, > 0 to indicate no credential was acquired. Options to define describe behaviour Initializes a new instance of the class. By default: - Only annotated tags will be considered as reference points - The commit id won't be used as a fallback strategy - Only the 10 most recent tags will be considered as candidates to describe the commit - All ancestor lines will be followed upon seeing a merge commit - 7 hexacidemal digits will be used as a minimum commid abbreviated size - Long format will only be used when no direct match has been found The kind of references that will be eligible as reference points. Rather than throwing, should return the abbreviated commit id when the selected didn't identify a proper reference to describe the commit. Number of minimum hexadecimal digits used to render a uniquely abbreviated commit id. Always output the long format (the tag, the number of commits and the abbreviated commit name) even when a direct match has been found. This is useful when one wants to see parts of the commit object name in "describe" output, even when the commit in question happens to be a tagged version. Instead of just emitting the tag name, it will describe such a commit as v1.2-0-gdeadbee (0th commit since tag v1.2 that points at object deadbee...). Follow only the first parent commit upon seeing a merge commit. This is useful when you wish to not match tags on branches merged in the history of the target commit. Specify the kind of committish which will be considered when trying to identify the closest reference to the described commit. Only consider annotated tags. Consider both annotated and lightweight tags. This will match every reference under the refs/tags/ namespace. Consider annotated and lightweight tags, local and remote tracking branches. This will match every reference under the refs/ namespace. Gets the remote branch which is connected to this local one, or null if there is none. Show changes between the working tree and the index or a tree, changes between the index and a tree, changes between two trees, or changes between two files on disk. Copied and renamed files currently cannot be detected, as the feature is not supported by libgit2 yet. These files will be shown as a pair of Deleted/Added files. Needed for mocking purposes. Show changes between two s. The you want to compare from. The you want to compare to. A containing the changes between the and the . Show changes between two s. The you want to compare from. The you want to compare to. Additional options to define comparison behavior. A containing the changes between the and the . Show changes between two s. The you want to compare from. The you want to compare to. A containing the changes between the and the . Show changes between two s. The you want to compare from. The you want to compare to. The list of paths (either files or directories) that should be compared. A containing the changes between the and the . Show changes between two s. The you want to compare from. The you want to compare to. The list of paths (either files or directories) that should be compared. If set, the passed will be treated as explicit paths. Use these options to determine how unmatched explicit paths should be handled. A containing the changes between the and the . Show changes between two s. The you want to compare from. The you want to compare to. The list of paths (either files or directories) that should be compared. Additional options to define patch generation behavior. A containing the changes between the and the . Show changes between two s. The you want to compare from. The you want to compare to. Additional options to define patch generation behavior. A containing the changes between the and the . Show changes between two s. The you want to compare from. The you want to compare to. The list of paths (either files or directories) that should be compared. If set, the passed will be treated as explicit paths. Use these options to determine how unmatched explicit paths should be handled. Additional options to define patch generation behavior. A containing the changes between the and the . Show changes between a and the Index, the Working Directory, or both. The level of diff performed can be specified by passing either a or type as the generic parameter. The to compare from. The targets to compare to. Can be either a if you are only interested in the list of files modified, added, ..., or a if you want the actual patch content for the whole diff and for individual files. A containing the changes between the and the selected target. Show changes between a and the Index, the Working Directory, or both. The level of diff performed can be specified by passing either a or type as the generic parameter. The to compare from. The targets to compare to. The list of paths (either files or directories) that should be compared. Can be either a if you are only interested in the list of files modified, added, ..., or a if you want the actual patch content for the whole diff and for individual files. A containing the changes between the and the selected target. Show changes between a and the Index, the Working Directory, or both. The level of diff performed can be specified by passing either a or type as the generic parameter. The to compare from. The targets to compare to. The list of paths (either files or directories) that should be compared. If set, the passed will be treated as explicit paths. Use these options to determine how unmatched explicit paths should be handled. Can be either a if you are only interested in the list of files modified, added, ..., or a if you want the actual patch content for the whole diff and for individual files. A containing the changes between the and the selected target. Show changes between a and the Index, the Working Directory, or both. The level of diff performed can be specified by passing either a or type as the generic parameter. The to compare from. The targets to compare to. The list of paths (either files or directories) that should be compared. If set, the passed will be treated as explicit paths. Use these options to determine how unmatched explicit paths should be handled. Additional options to define patch generation behavior. Can be either a if you are only interested in the list of files modified, added, ..., or a if you want the actual patch content for the whole diff and for individual files. A containing the changes between the and the selected target. Show changes between the working directory and the index. The level of diff performed can be specified by passing either a or type as the generic parameter. Can be either a if you are only interested in the list of files modified, added, ..., or a if you want the actual patch content for the whole diff and for individual files. A containing the changes between the working directory and the index. Show changes between the working directory and the index. The level of diff performed can be specified by passing either a or type as the generic parameter. The list of paths (either files or directories) that should be compared. Can be either a if you are only interested in the list of files modified, added, ..., or a if you want the actual patch content for the whole diff and for individual files. A containing the changes between the working directory and the index. Show changes between the working directory and the index. The level of diff performed can be specified by passing either a or type as the generic parameter. The list of paths (either files or directories) that should be compared. If true, include untracked files from the working dir as additions. Otherwise ignore them. Can be either a if you are only interested in the list of files modified, added, ..., or a if you want the actual patch content for the whole diff and for individual files. A containing the changes between the working directory and the index. Show changes between the working directory and the index. The level of diff performed can be specified by passing either a or type as the generic parameter. The list of paths (either files or directories) that should be compared. If true, include untracked files from the working dir as additions. Otherwise ignore them. If set, the passed will be treated as explicit paths. Use these options to determine how unmatched explicit paths should be handled. Can be either a if you are only interested in the list of files modified, added, ..., or a if you want the actual patch content for the whole diff and for individual files. A containing the changes between the working directory and the index. Show changes between the working directory and the index. The level of diff performed can be specified by passing either a or type as the generic parameter. The list of paths (either files or directories) that should be compared. If true, include untracked files from the working dir as additions. Otherwise ignore them. If set, the passed will be treated as explicit paths. Use these options to determine how unmatched explicit paths should be handled. Additional options to define patch generation behavior. Can be either a if you are only interested in the list of files modified, added, ..., or a if you want the actual patch content for the whole diff and for individual files. A containing the changes between the working directory and the index. Algorithm used when performing a Diff. The basic greedy diff algorithm. Use "minimal diff" algorithm when generating patches. Use "patience diff" algorithm when generating patches. Additional behaviors the diffing should take into account when performing the comparison. No special behavior. Include untracked files among the files to be processed, when diffing against the working directory. Include unmodified files among the files to be processed, when diffing against the working directory. Treats the passed pathspecs as explicit paths (no pathspec match). Include ignored files among the files to be processed, when diffing against the working directory. The targets of a Tree based diff comparison. The repository index. The working directory. A DirectReference points directly to a Needed for mocking purposes. Gets the target of this Throws if Local Repository is not set. As a is already peeled, invoking this will return the same . This instance. The exception that is thrown when a commit would create an "empty" commit that is treesame to its parent without an explicit override. Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. A message that describes the error. Initializes a new instance of the class with a specified error message. A composite format string for use in . An object array that contains zero or more objects to format. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception. If the parameter is not a null reference, the current exception is raised in a catch block that handles the inner exception. Initializes a new instance of the class with a serialized data. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. The exception that is thrown attempting to create a resource that already exists. Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. A message that describes the error. Initializes a new instance of the class with a specified error message. A composite format string for use in . An object array that contains zero or more objects to format. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception. If the parameter is not a null reference, the current exception is raised in a catch block that handles the inner exception. Initializes a new instance of the class with a serialized data. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. Allows callers to specify how unmatched paths should be handled by operations such as Reset(), Compare(), Unstage(), ... By passing these options, the passed paths will be treated as explicit paths, and NOT pathspecs containing globs. Associated paths will be treated as explicit paths. When set to true, the called operation will throw a when an unmatched path is encountered. Set to true by default. Sets a callback that will be called once for each unmatched path. Represents a local reference data from a remote repository which has been retreived through a Fetch process. Needed for mocking purposes. Returns "FETCH_HEAD[i]", where i is the index of this fetch head. Gets the canonical name of the reference this points to in the remote repository it's been fetched from. Gets the that this fetch head points to. The URL of the remote repository this has been built from. Determines if this fetch head entry has been explicitly fetched. Collection of parameters controlling Fetch behavior. Specifies the tag-following behavior of the fetch operation. If not set, the fetch operation will follow the default behavior for the based on the remote's configuration. If neither this property nor the remote `tagopt` configuration is set, this will default to (i.e. tags that point to objects retrieved during this fetch will be retrieved as well). Specifies the pruning behaviour for the fetch operation If not set, the configuration's setting will take effect. If true, the branches which no longer exist on the remote will be removed from the remote-tracking branches. Specifies the depth of the fetch to perform. Default value is 0 (full fetch). Get/Set the custom headers. This allows you to set custom headers (e.g. X-Forwarded-For, X-Request-Id, etc), Libgit2 sets some headers for HTTP requests (User-Agent, Host, Accept, Content-Type, Transfer-Encoding, Content-Length, Accept) that cannot be overriden. var fetchOptions - new FetchOptions() { CustomHeaders = new String[] {"X-Request-Id: 12345"} }; The custom headers string array Base collection of parameters controlling Fetch behavior. Handler for network transfer and indexing progress information. Handler for updates to remote tracking branches. Handler for data transfer progress. Reports the client's state regarding the received and processed (bytes, objects) from the server. Handler to generate for authentication. This handler will be called to let the user make a decision on whether to allow the connection to proceed based on the certificate presented by the server. Starting to operate on a new repository. Completed operating on the current repository. Options for connecting through a proxy. Calculated status of a filepath in the working directory considering the current and the . The file doesn't exist. The file hasn't been modified. New file has been added to the Index. It's unknown from the Head. New version of a file has been added to the Index. A previous version exists in the Head. The deletion of a file has been promoted from the working directory to the Index. A previous version exists in the Head. The renaming of a file has been promoted from the working directory to the Index. A previous version exists in the Head. A change in type for a file has been promoted from the working directory to the Index. A previous version exists in the Head. New file in the working directory, unknown from the Index and the Head. The file has been updated in the working directory. A previous version exists in the Index. The file has been deleted from the working directory. A previous version exists in the Index. The file type has been changed in the working directory. A previous version exists in the Index. The file has been renamed in the working directory. The previous version at the previous name exists in the Index. The file is unreadable in the working directory. The file is but its name and/or path matches an exclude pattern in a gitignore file. The file is due to a merge. A filter is a way to execute code against a file as it moves to and from the git repository and into the working directory. Initializes a new instance of the class. And allocates the filter natively. The unique name with which this filtered is registered with A list of attributes which this filter applies to Finalizer called by the , deregisters and frees native memory associated with the registered filter in libgit2. State bag used to keep necessary reference from being garbage collected during filter processing. The name that this filter was registered with The filter filterForAttributes. The marshalled filter Complete callback on filter This optional callback will be invoked when the upstream filter is closed. Gives the filter a chance to perform any final actions or necissary clean up. The path of the file being filtered The path of the working directory for the owning repository Output to the downstream filter or output writer Initialize callback on filter Specified as `filter.initialize`, this is an optional callback invoked before a filter is first used. It will be called once at most. If non-NULL, the filter's `initialize` callback will be invoked right before the first use of the filter, so you can defer expensive initialization operations (in case the library is being used in a way that doesn't need the filter. Indicates that a filter is going to be applied for the given file for the given mode. The path of the file being filtered The path of the working directory for the owning repository The filter mode Clean the input stream and write to the output stream. The path of the file being filtered The path of the working directory for the owning repository Input from the upstream filter or input reader Output to the downstream filter or output writer Smudge the input stream and write to the output stream. The path of the file being filtered The path of the working directory for the owning repository Input from the upstream filter or input reader Output to the downstream filter or output writer Determines whether the specified is equal to the current . The to compare with the current . True if the specified is equal to the current ; otherwise, false. Determines whether the specified is equal to the current . The to compare with the current . True if the specified is equal to the current ; otherwise, false. Returns the hash code for this instance. A 32-bit signed integer hash code. Tests if two are equal. First to compare. Second to compare. True if the two objects are equal; false otherwise. Tests if two are different. First to compare. Second to compare. True if the two objects are different; false otherwise. Initialize callback on filter Specified as `filter.initialize`, this is an optional callback invoked before a filter is first used. It will be called once at most. If non-NULL, the filter's `initialize` callback will be invoked right before the first use of the filter, so you can defer expensive initialization operations (in case libgit2 is being used in a way that doesn't need the filter). The definition for a given filter found in the .gitattributes file. The filter definition will result as 'filter=filterName' In the .gitattributes file a filter will be matched to a pathspec like so '*.txt filter=filterName' For testing purposes The name of the filter found in a .gitattributes file. The name of the filter as found in the .gitattributes file without the "filter=" prefix "filter=" will be prepended to the filterDefinition, therefore the "filter=" portion of the filter name shouldbe omitted on declaration. Inclusion of the "filter=" prefix will cause the FilterDefinition to fail to match the .gitattributes entry and thefore no be invoked correctly. The filter name in the form of 'filter=filterName' Allows callers to specify how blob content filters will be applied. Initializes a new instance of the class. The path that a file would be checked out as The path to "hint" to the filters will be used to apply attributes. These values control which direction of change is with which which a filter is being applied. These enum values must be identical to the values in Libgit2 filter_mode_t found in filter.h Smudge occurs when exporting a file from the Git object database to the working directory. For example, a file would be smudged during a checkout operation. Clean occurs when importing a file from the working directory to the Git object database. For example, a file would be cleaned when staging a file. An object representing the registration of a Filter type with libgit2 Maximum priority value a filter can have. A value of 200 will be run last on checkout and first on checkin. Minimum priority value a filter can have. A value of 0 will be run first on checkout and last on checkin. Finalizer called by the , deregisters and frees native memory associated with the registered filter in libgit2. Gets if the registration and underlying filter are valid. The registerd filters The name of the filter in the libgit2 registry The priority of the registered filter A filter source - describes the direction of filtering and the file being filtered. Needed for mocking purposes Take an unmanaged pointer and convert it to filter source callback paramater Take an unmanaged pointer and convert it to filter source callback paramater The filter mode for current file being filtered The relative path to the file The blob id The working directory Represents a gitlink (a reference to a commit in another Git repository) Needed for mocking purposes. A GitObject The containing the object. Needed for mocking purposes. Initializes a new instance of the class. The containing the object. The it should be identified by. Gets the id of this object Determine if the object is missing This is common when dealing with partially cloned repositories as blobs or trees could be missing Gets the 40 character sha1 of this object. Peel this object to the specified type It will throw if the object cannot be peeled to the type. The kind of to peel to. The peeled object Determines whether the specified is equal to the current . The to compare with the current . True if the specified is equal to the current ; otherwise, false. Determines whether the specified is equal to the current . The to compare with the current . True if the specified is equal to the current ; otherwise, false. Returns the hash code for this instance. A 32-bit signed integer hash code. Tests if two are equal. First to compare. Second to compare. True if the two objects are equal; false otherwise. Tests if two are different. First to compare. Second to compare. True if the two objects are different; false otherwise. Returns the , a representation of the current . The that represents the current . Exposes low level Git object metadata Size of the Object Object Type Global settings for libgit2 and LibGit2Sharp. Returns information related to the current LibGit2Sharp library. Registers a new as a custom smart-protocol transport with libgit2. Any Git remote with the scheme registered will delegate to the given transport for all communication with the server. This is not commonly used: some callers may want to re-use an existing connection to perform fetch / push operations to a remote. Note that this configuration is global to an entire process and does not honor application domains. The type of SmartSubtransport to register The scheme (eg "http" or "gopher") to register Unregisters a previously registered as a custom smart-protocol transport with libgit2. The type of SmartSubtransport to register The previous registration Registers a new to receive information logging information from libgit2 and LibGit2Sharp. Note that this configuration is global to an entire process and does not honor application domains. Sets a path for loading native binaries on .NET Framework or .NET Core. When specified, native library will first be searched under the given path. If the library is not found it will be searched in standard search paths: , and . This must be set before any other calls to the library, and is not available on other platforms than .NET Framework and .NET Core. Takes a snapshot of the currently registered filters. An array of . Register a filter globally with a default priority of 200 allowing the custom filter to imitate a core Git filter driver. It will be run last on checkout and first on checkin. Registers a to be invoked when matches .gitattributes 'filter=name' The filter to be invoked at run time. The priroty of the filter to invoked. A value of 0 () will be run first on checkout and last on checkin. A value of 200 () will be run last on checkout and first on checkin. A object used to manage the lifetime of the registration. Unregisters the associated filter. Registration object with an associated filter. Get the paths under which libgit2 searches for the configuration file of a given level. The level (global/system/XDG) of the config. The paths that are searched Set the paths under which libgit2 searches for the configuration file of a given level. . The level (global/system/XDG) of the config. The new search paths to set. Pass null to reset to the default. The special string "$PATH" will be substituted with the current search path. Enable or disable strict hash verification. true to enable strict hash verification; false otherwise. Enable or disable the libgit2 cache true to enable the cache, false otherwise Enable or disable the ofs_delta capability true to enable the ofs_delta capability, false otherwise Enable or disable the libgit2 strict_object_creation capability true to enable the strict_object_creation capability, false otherwise Sets the user-agent string to be used by the HTTP(S) transport. Note that "git/2.0" will be prepended for compatibility. The user-agent string to use Set that the given git extensions are supported by the caller. Extensions supported by libgit2 may be negated by prefixing them with a `!`. For example: setting extensions to { "!noop", "newext" } indicates that the caller does not want to support repositories with the `noop` extension but does want to support repositories with the `newext` extension. Supported extensions Returns the list of git extensions that are supported. This is the list of built-in extensions supported by libgit2 and custom extensions that have been added with `SetExtensions`. Extensions that have been negated will not be returned. Gets the user-agent string used by libgit2. The user-agent string. Gets the owner validation setting for repository directories. Sets whether repository directories should be owned by the current user. The default is to validate ownership. Disabling owner validation can lead to security vulnerabilities (see CVE-2022-24765). true to enable owner validation; otherwise, false. Delegate definition to handle Progress callback. Returns the text as reported by the server. The text in the serverProgressOutput parameter is not delivered in any particular units (i.e. not necessarily delivered as whole lines) and is likely to be chunked as partial lines. text reported by the server. Text can be chunked at arbitrary increments (i.e. can be composed of a partial line of text). True to continue, false to cancel. Delegate definition to handle UpdateTips callback. Name of the updated reference. Old ID of the reference. New ID of the reference. True to continue, false to cancel. Delegate definition for the credentials retrieval callback The url Username which was extracted from the url, if any Credential types which the server accepts Delegate definition for the certificate validation The certificate which the server sent The hostname which we tried to connect to Whether libgit2 thinks this certificate is valid True to continue, false to cancel Delegate definition for transfer progress callback. The object containing progress information. True to continue, false to cancel. Delegate definition to indicate that a repository is about to be operated on. (In the context of a recursive operation). Context on the repository that is being operated on. true to continue, false to cancel. Delegate definition to indicate that an operation is done in a repository. (In the context of a recursive operation). Context on the repository that is being operated on. Delegate definition for callback reporting push network progress. The current number of objects sent to server. The total number of objects to send to the server. The number of bytes sent to the server. True to continue, false to cancel. Delegate definition for callback reporting pack builder progress. The current stage progress is being reported for. The current number of objects processed in this this stage. The total number of objects to process for the current stage. True to continue, false to cancel. Provides information about what updates will be performed before a push occurs List of updates about to be performed via push True to continue, false to cancel. Delegate definition to handle reporting errors when updating references on the remote. The reference name and error from the server. Delegate definition for checkout progress callback. Path of the updated file. Number of completed steps. Total number of steps. Delegate definition for checkout notification callback. The path the callback corresponds to. The checkout notification type. True to continue checkout operation; false to cancel checkout operation. Delegate definition for unmatched path callback. This callback will be called to notify the caller of unmatched path. The unmatched path. Delegate definition for remote rename failure callback. This callback will be called to notify the caller of fetch refspecs that haven't been automatically updated and need potential manual tweaking. The refspec which didn't match the default. Delegate definition for stash application callback. The current step of the stash application. True to continue checkout operation; false to cancel checkout operation. Delegate to report information on a rebase step that is about to be performed. Delegate to report information on the rebase step that was just completed. The stages of pack building. Counting stage. Deltafying stage. Delegate definition for logging. This callback will be used to write logging messages in libgit2 and LibGit2Sharp. The level of the log message. The log message. Holds information about the potential ancestor and distance from it and two specified s. Needed for mocking purposes. Gets the being used as a reference. Gets the being compared against . Gets the number of commits that are reachable from , but not from . This property will return null when and do not share a common ancestor. Gets the number of commits that are reachable from , but not from . This property will return null when and do not share a common ancestor. Returns the best possible common ancestor of and or null if none found. Can be used to reference the from which an instance was created. While convenient in some situations (e.g. Checkout branch bound to UI element), it is important to ensure instances created from an are not used after it is disposed. It's generally better to create and dependant instances on demand, with a short lifespan. The from which this instance was created. The returned value should not be disposed. A log of commits in a . Gets the current sorting strategy applied when enumerating the log. Represents the identity used when writing reflog entries. Initializes a new instance of the class. The name. The email. Gets the email. Gets the name. Build the handle for the Indentity with the current time, or return a handle to an empty signature. Marker interface to identify Diff results. Provides methods to manage the rules ensuring that some specific untracked files are ignored. Needed for mocking purposes. Adds a custom .gitignore rule that will be applied to futher operations to the Index. This is in addition to the standard .gitignore rules that would apply as a result of the system/user/repo .gitignore The content of a .gitignore file that will be applied. Resets all custom rules that were applied via calls to - note that this will not affect the application of the user/repo .gitignores. Given a relative path, this method determines whether a path should be ignored, checking both the custom ignore rules as well as the "normal" .gitignores. A path relative to the repository true if the path should be ignored. The Index is a staging area between the Working directory and the Repository. It's used to prepare and aggregate the changes that will be part of the next commit. Needed for mocking purposes. Gets the number of in the . Determines if the is free from conflicts. Gets the with the specified relative path. Returns an enumerator that iterates through the collection. An object that can be used to iterate through the collection. Returns an enumerator that iterates through the collection. An object that can be used to iterate through the collection. Replaces entries in the with entries from the specified . This overwrites all existing state in the . The to read the entries from. Clears all entries the . This is semantically equivalent to creating an empty object and resetting the to that . This overwrites all existing state in the . Removes a specified entry from the . The path of the entry to be removed. Adds a file from the working directory in the . If an entry with the same path already exists in the , the newly added one will overwrite it. The path, in the working directory, of the file to be added. Adds an entry in the from a . If an entry with the same path already exists in the , the newly added one will overwrite it. The which content should be added to the . The path to be used in the . Either , or . Gets the conflicts that exist. Replaces entries in the with entries from the specified . The target object. Replaces entries in the with entries from the specified . The target object. The list of paths (either files or directories) that should be considered. Replaces entries in the with entries from the specified . The target object. The list of paths (either files or directories) that should be considered. If set, the passed will be treated as explicit paths. Use these options to determine how unmatched explicit paths should be handled. Write the contents of this to disk Write the contents of this to a tree A reference to a known by the . Gets the relative path to the file within the working directory. Gets the file mode. Gets the stage number. Whether the file is marked as assume-unchanged Gets the id of the pointed at by this index entry. Determines whether the specified is equal to the current . The to compare with the current . True if the specified is equal to the current ; otherwise, false. Determines whether the specified is equal to the current . The to compare with the current . True if the specified is equal to the current ; otherwise, false. Returns the hash code for this instance. A 32-bit signed integer hash code. Tests if two are equal. First to compare. Second to compare. True if the two objects are equal; false otherwise. Tests if two are different. First to compare. Second to compare. True if the two objects are different; false otherwise. A reference to the paths involved in a rename , known by the . Needed for mocking purposes. Gets the path of the ancestor side of the conflict. Gets the path of the "ours" side of the conflict. Gets the path of the "theirs" side of the conflict. Determines whether the specified is equal to the current . The to compare with the current . True if the specified is equal to the current ; otherwise, false. Determines whether the specified is equal to the current . The to compare with the current . True if the specified is equal to the current ; otherwise, false. Returns the hash code for this instance. A 32-bit signed integer hash code. Tests if two are equal. First to compare. Second to compare. True if the two objects are equal; false otherwise. Tests if two are different. First to compare. Second to compare. True if the two objects are different; false otherwise. The collection of s in a index that reflect the original paths of any rename conflicts that exist in the index. Needed for mocking purposes. Returns an enumerator that iterates through the collection. An object that can be used to iterate through the collection. Returns an enumerator that iterates through the collection. An object that can be used to iterate through the collection. A reference to a resolved , known by the . Needed for mocking purposes. Gets the path of this conflict. Gets the that was the ancestor of this conflict. Gets the of the file that was the ancestor of conflict. Gets the that was "our" side of this conflict. Gets the of the file that was "our" side of the conflict. Gets the that was "their" side of this conflict. Gets the of the file that was "their" side of the conflict. Determines whether the specified is equal to the current . The to compare with the current . True if the specified is equal to the current ; otherwise, false. Determines whether the specified is equal to the current . The to compare with the current . True if the specified is equal to the current ; otherwise, false. Returns the hash code for this instance. A 32-bit signed integer hash code. Tests if two are equal. First to compare. Second to compare. True if the two objects are equal; false otherwise. Tests if two are different. First to compare. Second to compare. True if the two objects are different; false otherwise. The collection of s in a index that reflect the resolved conflicts. Needed for mocking purposes. Gets the with the specified relative path. Returns an enumerator that iterates through the collection. An object that can be used to iterate through the collection. Returns an enumerator that iterates through the collection. An object that can be used to iterate through the collection. The exception that is thrown when a provided specification is bad. This can happen if the provided specification is syntactically incorrect, or if the spec refers to an object of an incorrect type (e.g. asking to create a branch from a blob, or peeling a blob to a commit). Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. A message that describes the error. Initializes a new instance of the class with a specified error message. A composite format string for use in . An object array that contains zero or more objects to format. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception. If the parameter is not a null reference, the current exception is raised in a catch block that handles the inner exception. Initializes a new instance of the class with a serialized data. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. A log of commits in a that can be filtered with queries. Returns the list of commits of the repository matching the specified . The options used to control which commits will be returned. A list of commits, ready to be enumerated. Returns the list of commits of the repository representing the history of a file beyond renames. The file's path. A list of file history entries, ready to be enumerated. Returns the list of commits of the repository representing the history of a file beyond renames. The file's path. The options used to control which commits will be returned. A list of file history entries, ready to be enumerated. A Repository is the primary interface into a git repository Shortcut to return the branch pointed to by HEAD Provides access to the configuration settings for this repository. Gets the index. Lookup and enumerate references in the repository. Lookup and enumerate commits in the repository. Iterating this collection directly starts walking from the HEAD. Lookup and enumerate branches in the repository. Lookup and enumerate tags in the repository. Provides high level information about this repository. Provides access to diffing functionalities to show changes between the working tree and the index or a tree, changes between the index and a tree, changes between two trees, or changes between two files on disk. Gets the database. Lookup notes in the repository. Submodules in the repository. Worktrees in the repository. Checkout the specified tree. The to checkout. The paths to checkout. Collection of parameters controlling checkout behavior. Updates specifed paths in the index and working directory with the versions from the specified branch, reference, or SHA. This method does not switch branches or update the current repository HEAD. A revparse spec for the commit or branch to checkout paths from. The paths to checkout. Collection of parameters controlling checkout behavior. Try to lookup an object by its . If no matching object is found, null will be returned. The id to lookup. The or null if it was not found. Try to lookup an object by its sha or a reference canonical name. If no matching object is found, null will be returned. A revparse spec for the object to lookup. The or null if it was not found. Try to lookup an object by its and . If no matching object is found, null will be returned. The id to lookup. The kind of GitObject being looked up The or null if it was not found. Try to lookup an object by its sha or a reference canonical name and . If no matching object is found, null will be returned. A revparse spec for the object to lookup. The kind of being looked up The or null if it was not found. Stores the content of the as a new into the repository. The tip of the will be used as the parent of this new Commit. Once the commit is created, the will move forward to point at it. The description of why a change was made to the repository. The of who made the change. The of who added the change to the repository. The that specify the commit behavior. The generated . Sets the current to the specified commit and optionally resets the and the content of the working tree to match. Flavor of reset operation to perform. The target commit object. Sets to the specified commit and optionally resets the and the content of the working tree to match. Flavor of reset operation to perform. The target commit object. Collection of parameters controlling checkout behavior. Clean the working tree by removing files that are not under version control. Revert the specified commit. The to revert. The of who is performing the reverte. controlling revert behavior. The result of the revert. Merge changes from commit into the branch pointed at by HEAD.. The commit to merge into the branch pointed at by HEAD. The of who is performing the merge. Specifies optional parameters controlling merge behavior; if null, the defaults are used. The of the merge. Merges changes from branch into the branch pointed at by HEAD.. The branch to merge into the branch pointed at by HEAD. The of who is performing the merge. Specifies optional parameters controlling merge behavior; if null, the defaults are used. The of the merge. Merges changes from the commit into the branch pointed at by HEAD. The commit to merge into branch pointed at by HEAD. The of who is performing the merge. Specifies optional parameters controlling merge behavior; if null, the defaults are used. The of the merge. Access to Rebase functionality. Merge the reference that was recently fetched. This will merge the branch on the fetched remote that corresponded to the current local branch when we did the fetch. This is the second step in performing a pull operation (after having performed said fetch). The of who is performing the merge. Specifies optional parameters controlling merge behavior; if null, the defaults are used. The of the merge. Cherry picks changes from the commit into the branch pointed at by HEAD. The commit to cherry pick into branch pointed at by HEAD. The of who is performing the cherry pick. Specifies optional parameters controlling cherry pick behavior; if null, the defaults are used. The of the merge. Manipulate the currently ignored files. Provides access to network functionality for a repository. Lookup and enumerate stashes in the repository. Find where each line of a file originated. Path of the file to blame. Specifies optional parameters; if null, the defaults are used. The blame for the file. Retrieves the state of a file in the working directory, comparing it against the staging area and the latest commit. The relative path within the working directory to the file. A representing the state of the parameter. Retrieves the state of all files in the working directory, comparing them against the staging area and the latest commit. If set, the options that control the status investigation. A holding the state of all the files. Finds the most recent annotated tag that is reachable from a commit. If the tag points to the commit, then only the tag is shown. Otherwise, it suffixes the tag name with the number of additional commits on top of the tagged object and the abbreviated object name of the most recent commit. Optionally, the parameter allow to tweak the search strategy (considering lightweight tags, or even branches as reference points) and the formatting of the returned identifier. The commit to be described. Determines how the commit will be described. A descriptive identifier for the commit based on the nearest annotated tag. Parse an extended SHA-1 expression and retrieve the object and the reference mentioned in the revision (if any). An extended SHA-1 expression for the object to look up The reference mentioned in the revision (if any) The object which the revision resolves to The exception that is thrown when an error occurs during application execution. Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. A message that describes the error. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception. If the parameter is not a null reference, the current exception is raised in a catch block that handles the inner exception. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. A composite format string for use in . An object array that contains zero or more objects to format. Initializes a new instance of the class with a serialized data. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. Represents a line with line number and content. The line number of the original line in the blob. The content of the line in the original blob. The exception that is thrown attempting to open a locked file. Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. A message that describes the error. Initializes a new instance of the class with a specified error message. A composite format string for use in . An object array that contains zero or more objects to format. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception. If the parameter is not a null reference, the current exception is raised in a catch block that handles the inner exception. Initializes a new instance of the class with a serialized data. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. Logging and tracing configuration for libgit2 and LibGit2Sharp. The default logging configuration, which performs no logging at all. Creates a new logging configuration to call the given delegate when logging occurs at the given level. Level to log at Handler to call when logging occurs This private method will be called from LibGit2 (from C code via the GitTraceCallback delegate) to route LibGit2 log messages to the same LogHandler as LibGit2Sharp messages. An entry in a file's commit history. The file's path relative to the repository's root. The commit in which the file was created or changed. Available logging levels. When logging is enabled at a particular level, callers will be provided logging at the given level and all lower levels. No logging will be provided. Severe errors that may impact the program's execution. Errors that do not impact the program's execution. Warnings that suggest abnormal data. Informational messages about program execution. Detailed data that allows for debugging. Tracing is exceptionally detailed debugging data. The delegate with a signature that matches the native diff git_diff_notify_cb function's signature. The diff list so far, before the delta is inserted. The delta that is being diffed The pathsec that matched the path of the diffed files. Payload object. Options controlling the behavior of things that do a merge and then check out the merge results (eg: merge, revert, cherry-pick). Initializes a new instance of the class. Default behavior: A fast-forward merge will be performed if possible, unless the merge.ff configuration option is set. A merge commit will be committed, if one was created. Merge will attempt to find renames. The Flags specifying what conditions are reported through the OnCheckoutNotify delegate. Commit the merge if the merge is successful and this is a non-fast-forward merge. If this is a fast-forward merge, then there is no merge commit and this option will not affect the merge. How conflicting index entries should be written out during checkout. Delegate that the checkout will report progress through. Delegate that checkout will notify callers of certain conditions. The conditions that are reported is controlled with the CheckoutNotifyFlags property. The exception that is thrown when the ref to merge with was as part of a pull operation not fetched. Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. A message that describes the error. Initializes a new instance of the class with a specified error message. A composite format string for use in . An object array that contains zero or more objects to format. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception. If the parameter is not a null reference, the current exception is raised in a catch block that handles the inner exception. Initializes a new instance of the class with a serialized data. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. A merge head is a parent for the next commit. Needed for mocking purposes. Gets the that this merge head points to. Returns "MERGE_HEAD[i]", where i is the index of this merge head. Options controlling Merge behavior. Initializes a new instance of the class. Default behavior: A fast-forward merge will be performed if possible, unless the merge.ff configuration option is set. A merge commit will be committed, if one was created. Merge will attempt to find renames. The type of merge to perform. Strategy used for merging. Default fast-forward strategy. If the merge.ff configuration option is set, it will be used. If it is not set, this will perform a fast-forward merge if possible, otherwise a non-fast-forward merge that results in a merge commit. Do not fast-forward. Always creates a merge commit. Only perform fast-forward merges. Options controlling the behavior of actions that use merge (merge proper, cherry-pick, revert) Initializes a new instance of the class. The default behavior is to attempt to find renames. Find renames. Default is true. If set, do not create or return conflict entries, but stop and return an error result after finding the first conflict. Do not write the Resolve Undo Cache extension on the generated index. This can be useful when no merge resolution will be presented to the user (e.g. a server-side merge attempt). Similarity to consider a file renamed. Maximum similarity sources to examine (overrides 'merge.renameLimit' config (default 200) How to handle conflicts encountered during a merge. Ignore changes in amount of whitespace Enum specifying how merge should deal with conflicting regions of the files. When a region of a file is changed in both branches, a conflict will be recorded in the index so that the checkout operation can produce a merge file with conflict markers in the working directory. This is the default. When a region of a file is changed in both branches, the file created in the index will contain the "ours" side of any conflicting region. The index will not record a conflict. When a region of a file is changed in both branches, the file created in the index will contain the "theirs" side of any conflicting region. The index will not record a conflict. When a region of a file is changed in both branches, the file created in the index will contain each unique line from each side, which has the result of combining both files. The index will not record a conflict. Class to report the result of a merge. Needed for mocking purposes. The status of the merge. The resulting commit of the merge. For fast-forward merges, this is the commit that merge was fast forwarded to. This will return null if the merge has been unsuccessful due to conflicts. The status of what happened as a result of a merge. Merge was up-to-date. Fast-forward merge. Non-fast-forward merge. Merge resulted in conflicts. Options controlling the behavior of two trees being merged. Initializes a new instance of the class. Default behavior: Merge will attempt to find renames. The results of a merge of two trees. Needed for mocking purposes. The status of the merge. The resulting tree of the merge. This will return null if the merge has been unsuccessful due to conflicts. The resulting conflicts from the merge. This will return null if the merge was successful and there were no conflicts. The status of what happened as a result of a merge. Merge succeeded. Merge resulted in conflicts. Git specific modes for entries. 000000 file mode (the entry doesn't exist or is unreadable) 040000 file mode 100644 file mode Obsolete 100664 file mode. 0100664 mode is an early Git design mistake. It's kept for ascendant compatibility as some and entries may still bear this mode in some old git repositories, but it's now deprecated. 100755 file mode 120000 file mode 160000 file mode The exception that is thrown when a reference, a remote, a submodule... with the same name already exists in the repository Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. A message that describes the error. Initializes a new instance of the class with a specified error message. A composite format string for use in . An object array that contains zero or more objects to format. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception. If the parameter is not a null reference, the current exception is raised in a catch block that handles the inner exception. Initializes a new instance of the class with a serialized data. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. An exception thrown that corresponds to a libgit2 (native library) error. Needed for mocking purposes. Provides access to network functionality for a repository. Needed for mocking purposes. Lookup and manage remotes in the repository. List references in a repository. When the remote tips are ahead of the local ones, the retrieved s may point to non existing s in the local repository. In that case, will return null. The to list from. The references in the repository. List references in a repository. When the remote tips are ahead of the local ones, the retrieved s may point to non existing s in the local repository. In that case, will return null. The to list from. Options for connecting through a proxy. The references in the repository. List references in a repository. When the remote tips are ahead of the local ones, the retrieved s may point to non existing s in the local repository. In that case, will return null. The to list from. The used to connect to remote repository. The references in the repository. List references in a repository. When the remote tips are ahead of the local ones, the retrieved s may point to non existing s in the local repository. In that case, will return null. The to list from. The used to connect to remote repository. Options for connecting through a proxy. The references in the repository. List references in a remote repository. When the remote tips are ahead of the local ones, the retrieved s may point to non existing s in the local repository. In that case, will return null. The url to list from. The references in the remote repository. List references in a remote repository. When the remote tips are ahead of the local ones, the retrieved s may point to non existing s in the local repository. In that case, will return null. The url to list from. Options for connecting through a proxy. The references in the remote repository. List references in a remote repository. When the remote tips are ahead of the local ones, the retrieved s may point to non existing s in the local repository. In that case, will return null. The url to list from. The used to connect to remote repository. The references in the remote repository. List references in a remote repository. When the remote tips are ahead of the local ones, the retrieved s may point to non existing s in the local repository. In that case, will return null. The url to list from. The used to connect to remote repository. Options for connecting through a proxy. The references in the remote repository. Fetch from a url with a set of fetch refspecs The url to fetch from The list of resfpecs to use Fetch from a url with a set of fetch refspecs The url to fetch from The list of resfpecs to use controlling fetch behavior Fetch from a url with a set of fetch refspecs The url to fetch from The list of resfpecs to use Message to use when updating the reflog. Fetch from a url with a set of fetch refspecs The url to fetch from The list of resfpecs to use controlling fetch behavior Message to use when updating the reflog. Push the specified branch to its tracked branch on the remote. The branch to push. Throws if either the Remote or the UpstreamBranchCanonicalName is not set. Push the specified branch to its tracked branch on the remote. The branch to push. controlling push behavior Throws if either the Remote or the UpstreamBranchCanonicalName is not set. Push the specified branches to their tracked branches on the remote. The branches to push. Throws if either the Remote or the UpstreamBranchCanonicalName is not set. Push the specified branches to their tracked branches on the remote. The branches to push. controlling push behavior Throws if either the Remote or the UpstreamBranchCanonicalName is not set. Push the objectish to the destination reference on the . The to push to. The source objectish to push. The reference to update on the remote. Push the objectish to the destination reference on the . The to push to. The source objectish to push. The reference to update on the remote. controlling push behavior Push specified reference to the . The to push to. The pushRefSpec to push. Push specified reference to the . The to push to. The pushRefSpec to push. controlling push behavior Push specified references to the . The to push to. The pushRefSpecs to push. Push specified references to the . The to push to. The pushRefSpecs to push. controlling push behavior The heads that have been updated during the last fetch. The exception that is thrown when push cannot be performed against the remote without losing commits. Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. A message that describes the error. Initializes a new instance of the class with a specified error message. A composite format string for use in . An object array that contains zero or more objects to format. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception. If the parameter is not a null reference, the current exception is raised in a catch block that handles the inner exception. Initializes a new instance of the class with a serialized data. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. A note, attached to a given . Needed for mocking purposes. The of the blob containing the note message. The message. The namespace with which this note is associated. This is the abbreviated namespace (e.g.: commits), and not the canonical namespace (e.g.: refs/notes/commits). The of the target object. Determines whether the specified is equal to the current . The to compare with the current . True if the specified is equal to the current ; otherwise, false. Determines whether the specified is equal to the current . The to compare with the current . True if the specified is equal to the current ; otherwise, false. Returns the hash code for this instance. A 32-bit signed integer hash code. Tests if two are equal. First to compare. Second to compare. True if the two objects are equal; false otherwise. Tests if two are different. First to compare. Second to compare. True if the two objects are different; false otherwise. A collection of exposed in the . Needed for mocking purposes. Returns an enumerator that iterates through the collection. An object that can be used to iterate through the collection. Returns an enumerator that iterates through the collection. An object that can be used to iterate through the collection. The default namespace for notes. The list of canonicalized namespaces related to notes. Gets the collection of associated with the specified . Gets the collection of associated with the specified namespace. This is similar to the 'get notes list' command. Gets the associated with the specified objectId and the specified namespace. Creates or updates a on the specified object, and for the given namespace. The target , for which the note will be created. The note message. The author. The committer. The namespace on which the note will be created. It can be either a canonical namespace or an abbreviated namespace ('refs/notes/myNamespace' or just 'myNamespace'). The note which was just saved. Deletes the note on the specified object, and for the given namespace. The target , for which the note will be created. The author. The committer. The namespace on which the note will be removed. It can be either a canonical namespace or an abbreviated namespace ('refs/notes/myNamespace' or just 'myNamespace'). The exception that is thrown attempting to reference a resource that does not exist. Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. A message that describes the error. Initializes a new instance of the class with a specified error message. A composite format string for use in . An object array that contains zero or more objects to format. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception. If the parameter is not a null reference, the current exception is raised in a catch block that handles the inner exception. Initializes a new instance of the class with a serialized data. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. Provides methods to directly work against the Git object database without involving the index nor the working directory. Needed for mocking purposes. Returns an enumerator that iterates through the collection. An object that can be used to iterate through the collection. Returns an enumerator that iterates through the collection. An object that can be used to iterate through the collection. Determines if the given object can be found in the object database. Identifier of the object being searched for. True if the object has been found; false otherwise. Retrieves the header of a GitObject from the object database. The header contains the Size and Type of the object. Note that most backends do not support reading only the header of an object, so the whole object will be read and then size would be returned. Object Id of the queried object GitObjectMetadata object instance containg object header information Inserts a into the object database, created from the content of a file. Path to the file to create the blob from. A relative path is allowed to be passed if the is a standard, non-bare, repository. The path will then be considered as a path relative to the root of the working directory. The created . Adds the provided backend to the object database with the specified priority. If the provided backend implements , the method will be honored and invoked upon the disposal of the repository. The backend to add The priority at which libgit2 should consult this backend (higher values are consulted first) Writes an object to the object database. The contents of the object The type of object to write Writes an object to the object database. The contents of the object The number of bytes to consume from the stream The type of object to write Inserts a into the object database, created from the content of a stream. Optionally, git filters will be applied to the content before storing it. The stream from which will be read the content of the blob to be created. The created . Inserts a into the object database, created from the content of a stream. Optionally, git filters will be applied to the content before storing it. The stream from which will be read the content of the blob to be created. The hintpath is used to determine what git filters should be applied to the object before it can be placed to the object database. The created . Inserts a into the object database, created from the content of a stream. Optionally, git filters will be applied to the content before storing it. The stream from which will be read the content of the blob to be created. The hintpath is used to determine what git filters should be applied to the object before it can be placed to the object database. The number of bytes to consume from the stream. The created . Inserts a into the object database created from the content of the stream. The stream from which will be read the content of the blob to be created. Number of bytes to consume from the stream. The created . Inserts a into the object database, created from a . The . The created . Inserts a into the object database, created from the . It recursively creates tree objects for each of the subtrees stored in the index, but only returns the root tree. The index must be fully merged. The . The created . This can be used e.g. to create a . Inserts a into the object database, referencing an existing . Prettifing the message includes: * Removing empty lines from the beginning and end. * Removing trailing spaces from every line. * Turning multiple consecutive empty lines between paragraphs into just one empty line. * Ensuring the commit message ends with a newline. * Removing every line starting with "#". The of who made the change. The of who added the change to the repository. The description of why a change was made to the repository. The of the to be created. The parents of the to be created. True to prettify the message, or false to leave it as is. The created . Inserts a into the object database, referencing an existing . Prettifing the message includes: * Removing empty lines from the beginning and end. * Removing trailing spaces from every line. * Turning multiple consecutive empty lines between paragraphs into just one empty line. * Ensuring the commit message ends with a newline. * Removing every line starting with the . The of who made the change. The of who added the change to the repository. The description of why a change was made to the repository. The of the to be created. The parents of the to be created. True to prettify the message, or false to leave it as is. When non null, lines starting with this character will be stripped if prettifyMessage is true. The created . Inserts a into the object database after attaching the given signature. The raw unsigned commit The signature data The header field in the commit in which to store the signature The created . Inserts a into the object database after attaching the given signature. This overload uses the default header field of "gpgsig" The raw unsigned commit The signature data The created . Inserts a into the object database, pointing to a specific . The name. The being pointed at. The tagger. The message. The created . Create a TAR archive of the given tree. The tree. The archive path. Create a TAR archive of the given commit. commit. The archive path. Archive the given commit. The commit. The archiver to use. Archive the given tree. The tree. The archiver to use. Returns the merge base (best common ancestor) of the given commits and the distance between each of these commits and this base. The being used as a reference. The being compared against . A instance of . Performs a cherry-pick of onto commit. The commit to cherry-pick. The commit to cherry-pick onto. Which commit to consider the parent for the diff when cherry-picking a merge commit. The options for the merging in the cherry-pick operation. A result containing a if the cherry-pick was successful and a list of s if it is not. Calculates the current shortest abbreviated string representation for a . The which identifier should be shortened. A short string representation of the . Calculates the current shortest abbreviated string representation for a . The which identifier should be shortened. Minimum length of the shortened representation. A short string representation of the . Returns whether merging into would result in merge conflicts. The commit wrapping the base tree to merge into. The commit wrapping the tree to merge into . True if the merge does not result in a conflict, false otherwise. Find the best possible merge base given two s. The first . The second . The merge base or null if none found. Find the best possible merge base given two or more according to the . The s for which to find the merge base. The strategy to leverage in order to find the merge base. The merge base or null if none found. Perform a three-way merge of two commits, looking up their commit ancestor. The returned will contain the results of the merge and can be examined for conflicts. The first commit The second commit The controlling the merge The containing the merged trees and any conflicts Packs all the objects in the and write a pack (.pack) and index (.idx) files for them. Packing options This method will invoke the default action of packing all objects in an arbitrary order. Packing results Packs objects in the chosen by the packDelegate action and write a pack (.pack) and index (.idx) files for them Packing options Packing action Packing results Perform a three-way merge of two commits, looking up their commit ancestor. The returned index will contain the results of the merge and can be examined for conflicts. The first tree The second tree The controlling the merge The containing the merged trees and any conflicts, or null if the merge stopped early due to conflicts. The index must be disposed by the caller. Performs a cherry-pick of onto commit. The commit to cherry-pick. The commit to cherry-pick onto. Which commit to consider the parent for the diff when cherry-picking a merge commit. The options for the merging in the cherry-pick operation. The containing the cherry-pick result tree and any conflicts, or null if the merge stopped early due to conflicts. The index must be disposed by the caller. Perform a three-way merge of two commits, looking up their commit ancestor. The returned index will contain the results of the merge and can be examined for conflicts. The first tree The second tree The controlling the merge True if the merge stopped early due to conflicts The containing the merged trees and any conflicts Performs a cherry-pick of onto commit. The commit to cherry-pick. The commit to cherry-pick onto. Which commit to consider the parent for the diff when cherry-picking a merge commit. The options for the merging in the cherry-pick operation. True if the cherry-pick stopped early due to conflicts The containing the cherry-pick result tree and any conflicts Packs objects in the and write a pack (.pack) and index (.idx) files for them. For internal use only. Packing options Packing action Packing results Performs a revert of onto commit. The commit to revert. The commit to revert onto. Which commit to consider the parent for the diff when reverting a merge commit. The options for the merging in the revert operation. A result containing a if the revert was successful and a list of s if it is not. Uniquely identifies a . Size of the string-based representation of a SHA-1. Zero ObjectId Initializes a new instance of the class. The oid. Initializes a new instance of the class. The byte array. Initializes a new instance of the class. The sha. Gets the raw id. Gets the sha. Converts the specified string representation of a Sha-1 to its equivalent and returns a value that indicates whether the conversion succeeded. A string containing a Sha-1 to convert. When this method returns, contains the value equivalent to the Sha-1 contained in , if the conversion succeeded, or null if the conversion failed. true if the parameter was converted successfully; otherwise, false. Determines whether the specified is equal to the current . The to compare with the current . True if the specified is equal to the current ; otherwise, false. Determines whether the specified is equal to the current . The to compare with the current . True if the specified is equal to the current ; otherwise, false. Returns the hash code for this instance. A 32-bit signed integer hash code. Returns the , a representation of the current . The that represents the current . Returns the , a representation of the current . The number of chars the should be truncated to. The that represents the current . Tests if two are equal. First to compare. Second to compare. True if the two objects are equal; false otherwise. Tests if two are different. First to compare. Second to compare. True if the two objects are different; false otherwise. Create an for the given . The object SHA. An , or null if is null. Determine whether matches the hexified representation of the first nibbles of this instance. Comparison is made in a case insensitive-manner. True if this instance starts with , false otherwise. Underlying type of a A commit object. A tree (directory listing) object. A file revision object. An annotated tag object. Base class for all custom managed backends for the libgit2 object database (ODB). If the derived backend implements , the method will be honored and invoked upon the disposal of the repository. Invoked by libgit2 when this backend is no longer needed. In your subclass, override this member to provide the list of actions your backend supports. Call this method from your implementations of Read and ReadPrefix to allocate a buffer in which to return the object's data. The bytes to be copied to the stream. A Stream already filled with the content of provided the byte array. Do not dispose this object before returning it. Call this method from your implementations of Read and ReadPrefix to allocate a buffer in which to return the object's data. Number of bytes to allocate A Stream for you to write to and then return. Do not dispose this object before returning it. Requests that this backend read an object. Requests that this backend read an object. The object ID may not be complete (may be a prefix). Requests that this backend read an object's header (length and object type) but not its contents. Requests that this backend write an object to the backing store. Requests that this backend read an object. Returns a stream so that the caller can read the data in chunks. Requests that this backend write an object to the backing store. Returns a stream so that the caller can write the data in chunks. Requests that this backend check if an object ID exists. Requests that this backend check if an object ID exists. The object ID may not be complete (may be a prefix). Requests that this backend enumerate all items in the backing store. The signature of the callback method provided to the Foreach method. The object ID of the object in the backing store. A non-negative result indicates the enumeration should continue. Otherwise, the enumeration should stop. Flags used by subclasses of OdbBackend to indicate which operations they support. This OdbBackend declares that it supports the Read method. This OdbBackend declares that it supports the ReadPrefix method. This OdbBackend declares that it supports the ReadHeader method. This OdbBackend declares that it supports the Write method. This OdbBackend declares that it supports the ReadStream method. This OdbBackend declares that it supports the WriteStream method. This OdbBackend declares that it supports the Exists method. This OdbBackend declares that it supports the ExistsPrefix method. This OdbBackend declares that it supports the Foreach method. Libgit2 expected backend return codes. No error has occured. No object matching the oid, or short oid, can be found in the backend. The given short oid is ambiguous. Interruption of the foreach() callback is requested. When an OdbBackend implements the WriteStream or ReadStream methods, it returns an OdbBackendStream to libgit2. Libgit2 then uses the OdbBackendStream to read or write from the backend in a streaming fashion. This is to quiet the MetaFixture.TypesInLibGit2SharpMustBeExtensibleInATestingContext test. Do not use this constructor. Base constructor for OdbBackendStream. Make sure that your derived class calls this base constructor. The backend to which this backend stream is attached. Invoked by libgit2 when this stream is no longer needed. If true, then it is legal to call the Read method. If true, then it is legal to call the Write and FinalizeWrite methods. Requests that the stream write the next length bytes of the stream to the provided Stream object. Requests that the stream write the first length bytes of the provided Stream object to the stream. After all bytes have been written to the stream, the object ID is provided to FinalizeWrite. The backend object this stream was created by. Representation of a git PackBuilder. Constructs a PackBuilder for a . Inserts a single to the PackBuilder. For an optimal pack it's mandatory to insert objects in recency order, commits followed by trees and blobs. (quoted from libgit2 API ref) The object to be inserted. if the gitObject is null Recursively inserts a and its referenced objects. Inserts the object as well as any object it references. The object to be inserted recursively. if the gitObject is null Inserts a single object to the PackBuilder by its . For an optimal pack it's mandatory to insert objects in recency order, commits followed by trees and blobs. (quoted from libgit2 API ref) The object ID to be inserted. if the id is null Recursively inserts an object and its referenced objects by its . Inserts the object as well as any object it references. The object ID to be recursively inserted. if the id is null Disposes the PackBuilder object. Writes the pack file and corresponding index file to path. The path that pack and index files will be written to it. Sets number of threads to spawn. Returns the number of actual threads to be used. The Number of threads to spawn. An argument of 0 ensures using all available CPUs Number of objects the PackBuilder will write out. Number of objects the PackBuilder has already written out. This is only correct after the pack file has been written. The results of pack process of the . Number of objects the PackBuilder has already written out. Packing options of the . Constructor Directory path to write the pack and index files to it The default value for maximum number of threads to spawn is 0 which ensures using all available CPUs. if packDirectory is null or empty if packDirectory doesn't exist Directory path to write the pack and index files to it. Maximum number of threads to spawn. The default value is 0 which ensures using all available CPUs. Holds the patch between two trees. The individual patches for each file can be accessed through the indexer of this class. Building a patch is an expensive operation. If you only need to know which files have been added, deleted, modified, ..., then consider using a simpler . Needed for mocking purposes. Returns an enumerator that iterates through the collection. An object that can be used to iterate through the collection. Returns an enumerator that iterates through the collection. An object that can be used to iterate through the collection. Gets the corresponding to the specified . The total number of lines added in this diff. The total number of lines deleted in this diff. The full patch file of this diff. Implicit operator for string conversion. . The patch content as string. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Releases unmanaged and - optionally - managed resources. true to release both managed and unmanaged resources; false to release only unmanaged resources. Holds the changes between two versions of a file. Needed for mocking purposes. The new path. The new . The new content hash. The kind of change that has been done (added, deleted, modified ...). The old path. The old . The old content hash. Holds summary information for a diff. The individual patches for each file can be accessed through the indexer of this class. For mocking. Returns an enumerator that iterates through the collection. An object that can be used to iterate through the collection. Returns an enumerator that iterates through the collection. An object that can be used to iterate through the collection. Gets the corresponding to the specified . The total number of lines added in this diff. The total number of lines deleted in this diff. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Releases unmanaged and - optionally - managed resources. true to release both managed and unmanaged resources; false to release only unmanaged resources. The exception that is thrown when a tag cannot be peeled to the target type due to the object model. Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. A message that describes the error. Initializes a new instance of the class with a specified error message. A composite format string for use in . An object array that contains zero or more objects to format. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception. If the parameter is not a null reference, the current exception is raised in a catch block that handles the inner exception. Initializes a new instance of the class with a serialized data. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. Options for connecting through a proxy. The type of proxy to use. Set to Auto by default. The URL of the proxy when is set to Specified. Handler to generate for authentication. This handler will be called to let the user make a decision on whether to allow the connection to proceed based on the certificate presented by the server. The type of proxy to use. Do not attempt to connect through a proxy. Try to auto-detect the proxy from the git configuration. Connect via the URL given in the options. Parameters controlling Pull behavior. Constructor. Parameters controlling Fetch behavior. Parameters controlling Merge behavior. Collection of parameters controlling Push behavior. Handler to generate for authentication. This handler will be called to let the user make a decision on whether to allow the connection to preoceed based on the certificate presented by the server. If the transport being used to push to the remote requires the creation of a pack file, this controls the number of worker threads used by the packbuilder when creating that pack file to be sent to the remote. The default is 0, which indicates that the packbuilder will auto-detect the number of threads to create. Delegate to report errors when updating references on the remote. Delegate that progress updates of the network transfer portion of push will be reported through. The frequency of progress updates will not be more than once every 0.5 seconds (in general). Delegate that progress updates of the pack building portion of push will be reported through. The frequency of progress updates will not be more than once every 0.5 seconds (in general). Called once between the negotiation step and the upload. It provides information about what updates will be performed. Get/Set the custom headers. This allows you to set custom headers (e.g. X-Forwarded-For, X-Request-Id, etc), Libgit2 sets some headers for HTTP requests (User-Agent, Host, Accept, Content-Type, Transfer-Encoding, Content-Length, Accept) that cannot be overriden. var pushOptions - new PushOptions() { CustomHeaders = new String[] {"X-Request-Id: 12345"} }; The custom headers string array Options for connecting through a proxy. Contains the results of a push operation. Needed for mocking purposes. s that failed to update. Flag indicating if there were errors reported when updating references on the remote. Information on an error updating reference on remote during a push. Needed for mocking purposes. The reference this status refers to. The message regarding the update of this reference. Represents an update which will be performed on the remote during push Empty constructor to support test suites The source name of the reference The name of the reference to update on the server The current target of the reference The new target for the reference The type of operation to be performed in a rebase step. Commit is to be cherry-picked. Cherry-pick the commit and edit the commit message. Cherry-pick the commit but allow user to edit changes. Commit is to be squashed into previous commit. The commit message will be merged with the previous message. Commit is to be squashed into previous commit. The commit message will be discarded. Encapsulates a rebase operation. Needed for mocking purposes. Start a rebase operation. The branch to rebase. The starting commit to rebase. The branch to rebase onto. The of who added the change to the repository. The that specify the rebase behavior. true if completed successfully, false if conflicts encountered. Continue the current rebase. The of who added the change to the repository. The that specify the rebase behavior. Abort the rebase operation. Abort the rebase operation. The that specify the rebase behavior. The info on the current step. Get info on the specified step Run a rebase to completion, a conflict, or a requested stop point. Handle to the rebase operation. Repository in which rebase operation is being run. Committer Identity to use for the rebased commits. Options controlling rebase behavior. RebaseResult that describes the result of the rebase operation. Run the current rebase step. This will handle reporting that we are about to run a rebase step, identifying and running the operation for the current step, and reporting the current step is completed. Verify that the information in a GitRebaseOperation and a RebaseStepInfo agree Returns the next rebase step, or null if there are none, and the rebase operation needs to be finished. The ID of the commit that was generated, if any bool to indicate if the patch was already applied. If Patch was already applied, then CommitId will be empty (all zeros). Options controlling rebase behavior. Delegate that is called before each rebase step. Delegate that is called after each rebase step is completed. The Flags specifying what conditions are reported through the OnCheckoutNotify delegate. Delegate that the checkout will report progress through. Delegate that checkout will notify callers of certain conditions. The conditions that are reported is controlled with the CheckoutNotifyFlags property. How conflicting index entries should be written out during checkout. The status of the rebase. The rebase operation was run to completion The rebase operation hit a conflict and stopped. The rebase operation has hit a user requested stop point (edit, reword, ect.) Information on a rebase operation. Needed for mocking. Information on the operation to be performed in the current step. If the overall Rebase operation has completed successfully, this will be null. Did the rebase operation run until it should stop (completed the rebase, or the operation for the current step is one that sequencing should stop. The number of completed steps. The total number of steps in the rebase. Information on a particular step of a rebase operation. Needed for mocking purposes. The rebase operation type. The object ID the step is operating on. Command to execute, if any. The exception that is thrown when an error is encountered while recursing through submodules. The inner exception contains the exception that was initially thrown while operating on the submodule. Initializes a new instance of the class. The path to the initial repository the operation was run on. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception. If the parameter is not a null reference, the current exception is raised in a catch block that handles the inner exception. The path to the initial repository the operation was performed on. Initializes a new instance of the class with a serialized data. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. A Reference to another git object Needed for mocking purposes. Determines if the proposed reference name is well-formed. - Top-level names must contain only capital letters and underscores, and must begin and end with a letter. (e.g. "HEAD", "ORIG_HEAD"). - Names prefixed with "refs/" can be almost anything. You must avoid the characters '~', '^', ':', '\\', '?', '[', and '*', and the sequences ".." and "@{" which have special meaning to revparse. The name to be checked. true is the name is valid; false otherwise. Determine if the current is a local branch. true if the current is a local branch, false otherwise. Determine if the current is a remote tracking branch. true if the current is a remote tracking branch, false otherwise. Determine if the current is a tag. true if the current is a tag, false otherwise. Determine if the current is a note. true if the current is a note, false otherwise. Gets the full name of this reference. Recursively peels the target of the reference until a direct reference is encountered. The this points to. Gets the target declared by the reference. If this reference is a , returns the canonical name of the target. Otherwise, if this reference is a , returns the sha of the target. Determines whether the specified is equal to the current . The to compare with the current . True if the specified is equal to the current ; otherwise, false. Determines whether the specified is equal to the current . The to compare with the current . True if the specified is equal to the current ; otherwise, false. Returns the hash code for this instance. A 32-bit signed integer hash code. Tests if two are equal. First to compare. Second to compare. True if the two objects are equal; false otherwise. Tests if two are different. First to compare. Second to compare. True if the two objects are different; false otherwise. Returns the , a representation of the current . The that represents the current . The Collection of references in a Needed for mocking purposes. Initializes a new instance of the class. The repo. Gets the with the specified name. The canonical name of the reference to resolve. The resolved if it has been found, null otherwise. Returns an enumerator that iterates through the collection. An object that can be used to iterate through the collection. Returns an enumerator that iterates through the collection. An object that can be used to iterate through the collection. Creates a direct or symbolic reference with the specified name and target The name of the reference to create. The target which can be either the canonical name of a reference or a revparse spec. The optional message to log in the when adding the A new . Creates a direct or symbolic reference with the specified name and target The name of the reference to create. The target which can be either the canonical name of a reference or a revparse spec. The optional message to log in the when adding the True to allow silent overwriting a potentially existing reference, false otherwise. A new . Creates a direct or symbolic reference with the specified name and target The name of the reference to create. The target which can be either the canonical name of a reference or a revparse spec. A new . Creates a direct or symbolic reference with the specified name and target The name of the reference to create. The target which can be either the canonical name of a reference or a revparse spec. True to allow silent overwriting a potentially existing reference, false otherwise. A new . Creates a direct reference with the specified name and target The canonical name of the reference to create. Id of the target object. The optional message to log in the when adding the A new . Creates a direct reference with the specified name and target The canonical name of the reference to create. Id of the target object. The optional message to log in the when adding the True to allow silent overwriting a potentially existing reference, false otherwise. A new . Creates a direct reference with the specified name and target The canonical name of the reference to create. Id of the target object. A new . Creates a direct reference with the specified name and target The canonical name of the reference to create. Id of the target object. True to allow silent overwriting a potentially existing reference, false otherwise. A new . Creates a symbolic reference with the specified name and target The canonical name of the reference to create. The target reference. The optional message to log in the when adding the A new . Creates a symbolic reference with the specified name and target The canonical name of the reference to create. The target reference. The optional message to log in the when adding the True to allow silent overwriting a potentially existing reference, false otherwise. A new . Creates a symbolic reference with the specified name and target The canonical name of the reference to create. The target reference. A new . Creates a symbolic reference with the specified name and target The canonical name of the reference to create. The target reference. True to allow silent overwriting a potentially existing reference, false otherwise. A new . Remove a reference with the specified name The canonical name of the reference to delete. Remove a reference from the repository The reference to delete. Rename an existing reference with a new name, and update the reflog The reference to rename. The new canonical name. Message added to the reflog. A new . Rename an existing reference with a new name, and update the reflog The reference to rename. The new canonical name. Message added to the reflog. True to allow silent overwriting a potentially existing reference, false otherwise. A new . Rename an existing reference with a new name The canonical name of the reference to rename. The new canonical name. A new . Rename an existing reference with a new name The canonical name of the reference to rename. The new canonical name. True to allow silent overwriting a potentially existing reference, false otherwise. A new . Rename an existing reference with a new name The canonical name of the reference to rename. The new canonical name. The optional message to log in the A new . Rename an existing reference with a new name The canonical name of the reference to rename. The new canonical name. The optional message to log in the True to allow silent overwriting a potentially existing reference, false otherwise. A new . Rename an existing reference with a new name The reference to rename. The new canonical name. A new . Rename an existing reference with a new name The reference to rename. The new canonical name. True to allow silent overwriting a potentially existing reference, false otherwise. A new . Updates the target of a direct reference. The direct reference which target should be updated. The new target. The optional message to log in the of the reference A new . Updates the target of a direct reference. The direct reference which target should be updated. The revparse spec of the target. The optional message to log in the A new . Updates the target of a direct reference The direct reference which target should be updated. The revparse spec of the target. A new . Updates the target of a reference The canonical name of the reference. The target which can be either the canonical name of a reference or a revparse spec. The optional message to log in the of the reference. A new . Updates the target of a reference The canonical name of the reference. The target which can be either the canonical name of a reference or a revparse spec. A new . Updates the target of a direct reference The direct reference which target should be updated. The new target. A new . Updates the target of a symbolic reference The symbolic reference which target should be updated. The new target. The optional message to log in the of the reference. A new . Updates the target of a symbolic reference The symbolic reference which target should be updated. The new target. A new . Returns the list of references of the repository matching the specified . The glob pattern the reference name should match. A list of references, ready to be enumerated. Shortcut to return the HEAD reference. A if the HEAD is detached; otherwise a . Find the s among that can reach at least one in the specified . The set of s to examine. The set of s that are interesting. A subset of that can reach at least one within . Find the s that can reach at least one in the specified . The set of s that are interesting. The list of that can reach at least one within . Returns as a the reflog of the named The canonical name of the reference a , enumerable of Returns as a the reflog of the The reference a , enumerable of Rewrite some of the commits in the repository and all the references that can reach them. Specifies behavior for this rewrite. The objects to rewrite. Rewrite some of the commits in the repository and all the references that can reach them. Specifies behavior for this rewrite. The objects to rewrite. Ensure that a reflog exists for the given canonical name Canonical name of the reference Provides helpers to a . A base class for things that wrap a (branch, tag, etc). The type of the referenced Git object. The repository. Needed for mocking purposes. The repository. The reference. A function to construct the reference's canonical name. Gets the full name of this reference. Gets the human-friendly name of this reference. The underlying Returns the , a representation of the current reference. The that represents the current reference. Gets the this points to. Removes redundent leading namespaces (regarding the kind of reference being wrapped) from the canonical name. The friendly shortened name Determines whether the specified is equal to the current . The to compare with the current . True if the specified is equal to the current ; otherwise, false. Determines whether the specified is equal to the current . The to compare with the current . True if the specified is equal to the current ; otherwise, false. Returns the hash code for this instance. A 32-bit signed integer hash code. Tests if two are equal. First to compare. Second to compare. True if the two objects are equal; false otherwise. Tests if two are different. First to compare. Second to compare. True if the two objects are different; false otherwise. The is the reflog of a given , as a enumerable of . Reflog is a mechanism to record when the tip of a is updated. Needed for mocking purposes. Initializes a new instance of the class. The repo. the canonical name of the to retrieve reflog entries on. Returns an enumerator that iterates through the collection. The enumerator returns the by descending order (last reflog entry is returned first). An object that can be used to iterate through the collection. Returns an enumerator that iterates through the collection. An object that can be used to iterate through the collection. As single entry of a a describes one single update on a particular reference Needed for mocking purposes. Initializes a new instance of the class. a to the reflog entry targeted before the reference update described by this targeted after the reference update described by this of the committer of this reference update the message assiocated to this reference update A push or fetch reference specification Needed for mocking purposes. Gets the pattern describing the mapping between remote and local references Indicates whether this is intended to be used during a Push or Fetch operation The source reference specifier The target reference specifier Indicates whether the destination will be force-updated if fast-forwarding is not possible Check whether the given reference matches the source (lhs) part of this refspec. The reference name to check Check whether the given reference matches the target (rhs) part of this refspec. The reference name to check Perform the transformation described by this refspec on the given reference name (from source to destination). The reference name to transform Perform the reverse of the transformation described by this refspec on the given reference name (from destination to source). The reference name to transform The collection of s in a Needed for mocking purposes. Returns an enumerator that iterates through the collection. An object that can be used to iterate through the collection. Returns an enumerator that iterates through the collection. An object that can be used to iterate through the collection. Indicates whether a refspec is a push refspec or a fetch refspec Indicates that the refspec is a fetch refspec Indicates that the refspec is a push refspec A remote repository whose branches are tracked. Needed for mocking purposes. The finalizer for the class. Release the unmanaged remote object Gets the alias of this remote repository. Gets the url to use to communicate with this remote repository. Gets the distinct push url for this remote repository, if set. Defaults to the fetch url () if not set. Gets the Tag Fetch Mode of the remote - indicating how tags are fetched. Gets the list of s defined for this Gets the list of s defined for this that are intended to be used during a Fetch operation Gets the list of s defined for this that are intended to be used during a Push operation Transform a reference to its source reference using the 's default fetchspec. The reference to transform. The transformed reference. Determines if the proposed remote name is well-formed. The name to be checked. true if the name is valid; false otherwise. Gets the configured behavior regarding the deletion of stale remote tracking branches. If defined, will return the value of the remote.<name>.prune entry. Otherwise return the value of fetch.prune. Class to translate libgit2 callbacks into delegates exposed by LibGit2Sharp. Handles generating libgit2 git_remote_callbacks datastructure given a set of LibGit2Sharp delegates and handles propagating libgit2 callbacks into corresponding LibGit2Sharp exposed delegates. Progress callback. Corresponds to libgit2 progress callback. UpdateTips callback. Corresponds to libgit2 update_tips callback. PushStatusError callback. It will be called when the libgit2 push_update_reference returns a non null status message, which means that the update was rejected by the remote server. Managed delegate to be called in response to a git_transfer_progress_callback callback from libgit2. This will in turn call the user provided delegate. Push transfer progress callback. Pack builder creation progress callback. Called during remote push operation after negotiation, before upload The credentials to use for authentication. Callback to perform validation on the certificate Handler for libgit2 Progress callback. Converts values received from libgit2 callback to more suitable types and calls delegate provided by LibGit2Sharp consumer. IntPtr to string from libgit2 length of string IntPtr to optional payload passed back to the callback. 0 on success; a negative value to abort the process. Handler for libgit2 update_tips callback. Converts values received from libgit2 callback to more suitable types and calls delegate provided by LibGit2Sharp consumer. IntPtr to string Old reference ID New referene ID IntPtr to optional payload passed back to the callback. 0 on success; a negative value to abort the process. The delegate with the signature that matches the native push_update_reference function's signature IntPtr to string, the name of the reference IntPtr to string, the update status message IntPtr to optional payload passed back to the callback. 0 on success; a negative value to abort the process. The delegate with the signature that matches the native git_transfer_progress_callback function's signature. structure containing progress information. Payload data. the result of the wrapped The collection of in a Needed for mocking purposes. Gets the with the specified name. The name of the remote to retrieve. The retrived if it has been found, null otherwise. Update properties of a remote. These updates will be performed as a bulk update at the end of the method. The name of the remote to update. Delegate to perform updates on the remote. Returns an enumerator that iterates through the collection. An object that can be used to iterate through the collection. Returns an enumerator that iterates through the collection. An object that can be used to iterate through the collection. Creates a with the specified name and for the repository at the specified location. A default fetch refspec will be added for this remote. The name of the remote to create. The location of the repository. A new . Creates a with the specified name and for the repository at the specified location. The name of the remote to create. The location of the repository. The refSpec to be used when fetching from this remote. A new . Deletes the with the specified name. The name of the remote to remove. A new . Renames an existing . The current remote name. The new name the existing remote should bear. A new . Renames an existing . The current remote name. The new name the existing remote should bear. The callback to be used when problems with renaming occur. (e.g. non-default fetch refspecs) A new . git_remote_completion types. Download. Indexing. Error. Remote redirection settings; whether redirects to another host are permitted. By default, git will follow a redirect on the initial request (`/info/refs`) but not subsequent requests. Do not follow any off-site redirects at any stage of the fetch or push. Allow off-site redirects only upon the initial request. This is the default. Allow redirects at any stage in the fetch or push. Exposes properties of a remote that can be updated. Needed for mocking purposes. Set the default TagFetchMode value for the remote. Sets the url defined for this Sets the push url defined for this Sets the list of s defined for this that are intended to be used during a Fetch operation Sets or gets the list of s defined for this that are intended to be used during a Push operation The exception that is thrown when a file cannot be removed from the index. Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. A message that describes the error. Initializes a new instance of the class with a specified error message. A composite format string for use in . An object array that contains zero or more objects to format. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception. If the parameter is not a null reference, the current exception is raised in a catch block that handles the inner exception. Initializes a new instance of the class with a serialized data. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. Holds the rename details of a particular file. Needed for mocking purposes. Gets the relative filepath to the working directory of the old file (the rename source). Gets the relative filepath to the working directory of the new file (the rename target). Gets the similarity between the old file an the new file (0-100). Determines whether the specified is equal to the current . The to compare with the current . True if the specified is equal to the current ; otherwise, false. Determines whether the specified is equal to the current . The to compare with the current . True if the specified is equal to the current ; otherwise, false. Returns the hash code for this instance. A 32-bit signed integer hash code. Tests if two are equal. First to compare. Second to compare. True if the two objects are equal; false otherwise. Tests if two are different. First to compare. Second to compare. True if the two objects are different; false otherwise. A Repository is the primary interface into a git repository Initializes a new instance of the class that does not point to an on-disk Git repository. This is suitable only for custom, in-memory Git repositories that are configured with custom object database, reference database and/or configuration backends. Initializes a new instance of the class. For a standard repository, should either point to the ".git" folder or to the working directory. For a bare repository, should directly point to the repository folder. The path to the git repository to open, can be either the path to the git directory (for non-bare repositories this would be the ".git" folder inside the working directory) or the path to the working directory. Initializes a new instance of the class, providing optional behavioral overrides through the parameter. For a standard repository, may either point to the ".git" folder or to the working directory. For a bare repository, should directly point to the repository folder. The path to the git repository to open, can be either the path to the git directory (for non-bare repositories this would be the ".git" folder inside the working directory) or the path to the working directory. Overrides to the way a repository is opened. Check if parameter leads to a valid git repository. The path to the git repository to check, can be either the path to the git directory (for non-bare repositories this would be the ".git" folder inside the working directory) or the path to the working directory. True if a repository can be resolved through this path; false otherwise Shortcut to return the branch pointed to by HEAD Provides access to the configuration settings for this repository. Gets the index. Manipulate the currently ignored files. Provides access to network functionality for a repository. Provides access to rebase functionality for a repository. Gets the database. Lookup and enumerate references in the repository. Lookup and enumerate commits in the repository. Iterating this collection directly starts walking from the HEAD. Lookup and enumerate branches in the repository. Lookup and enumerate tags in the repository. Lookup and enumerate stashes in the repository. Provides high level information about this repository. Provides access to diffing functionalities to show changes between the working tree and the index or a tree, changes between the index and a tree, changes between two trees, or changes between two files on disk. Lookup notes in the repository. Submodules in the repository. Worktrees in the repository. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Initialize a repository at the specified . The path to the working folder when initializing a standard ".git" repository. Otherwise, when initializing a bare repository, the path to the expected location of this later. The path to the created repository. Initialize a repository at the specified . The path to the working folder when initializing a standard ".git" repository. Otherwise, when initializing a bare repository, the path to the expected location of this later. true to initialize a bare repository. False otherwise, to initialize a standard ".git" repository. The path to the created repository. Initialize a repository by explictly setting the path to both the working directory and the git directory. The path to the working directory. The path to the git repository to be created. The path to the created repository. Try to lookup an object by its . If no matching object is found, null will be returned. The id to lookup. The or null if it was not found. Try to lookup an object by its sha or a reference canonical name. If no matching object is found, null will be returned. A revparse spec for the object to lookup. The or null if it was not found. Try to lookup an object by its and . If no matching object is found, null will be returned. The id to lookup. The kind of GitObject being looked up The or null if it was not found. Try to lookup an object by its sha or a reference canonical name and . If no matching object is found, null will be returned. A revparse spec for the object to lookup. The kind of being looked up The or null if it was not found. Lists the Remote Repository References. Does not require a local Repository. The retrieved throws in this case. The url to list from. The references in the remote repository. Lists the Remote Repository References. The url to list from. Options for connecting through a proxy. The references in the remote repository. Lists the Remote Repository References. Does not require a local Repository. The retrieved throws in this case. The url to list from. The used to connect to remote repository. The references in the remote repository. Lists the Remote Repository References. Does not require a local Repository. The retrieved throws in this case. The url to list from. The used to connect to remote repository. Options for connecting through a proxy. The references in the remote repository. Probe for a git repository. The lookup start from and walk upward parent directories if nothing has been found. The base path where the lookup starts. The path to the git repository, or null if no repository was found. Clone using default options. This exception is thrown when there is an error is encountered while recursively cloning submodules. The inner exception will contain the original exception. The initially cloned repository would be reported through the property." Exception thrown when the cancelling the clone of the initial repository." URI for the remote repository Local path to clone into The path to the created repository. Clone with specified options. This exception is thrown when there is an error is encountered while recursively cloning submodules. The inner exception will contain the original exception. The initially cloned repository would be reported through the property." Exception thrown when the cancelling the clone of the initial repository." URI for the remote repository Local path to clone into controlling clone behavior The path to the created repository. Recursively clone submodules if directed to do so by the clone options. Options controlling clone behavior. Path of the parent repository. The current depth of the recursion. If a callback has been provided to notify callers that we are either starting to work on a repository. The callback to notify change. Context of the repository this operation affects. true to continue the operation, false to cancel. Find where each line of a file originated. Path of the file to blame. Specifies optional parameters; if null, the defaults are used. The blame for the file. Checkout the specified tree. The to checkout. The paths to checkout. Collection of parameters controlling checkout behavior. Checkout the specified tree. The to checkout. The paths to checkout. Collection of parameters controlling checkout behavior. Sets the current to the specified commit and optionally resets the and the content of the working tree to match. Flavor of reset operation to perform. The target commit object. Sets to the specified commit and optionally resets the and the content of the working tree to match. Flavor of reset operation to perform. The target commit object. Collection of parameters controlling checkout behavior. Updates specifed paths in the index and working directory with the versions from the specified branch, reference, or SHA. This method does not switch branches or update the current repository HEAD. A revparse spec for the commit or branch to checkout paths from. The paths to checkout. Will throw if null is passed in. Passing an empty enumeration results in nothing being checked out. Collection of parameters controlling checkout behavior. Stores the content of the as a new into the repository. The tip of the will be used as the parent of this new Commit. Once the commit is created, the will move forward to point at it. The description of why a change was made to the repository. The of who made the change. The of who added the change to the repository. The that specify the commit behavior. The generated . Clean the working tree by removing files that are not under version control. Merges changes from commit into the branch pointed at by HEAD. The commit to merge into the branch pointed at by HEAD. The of who is performing the merge. Specifies optional parameters controlling merge behavior; if null, the defaults are used. The of the merge. Merges changes from branch into the branch pointed at by HEAD. The branch to merge into the branch pointed at by HEAD. The of who is performing the merge. Specifies optional parameters controlling merge behavior; if null, the defaults are used. The of the merge. Merges changes from the commit into the branch pointed at by HEAD. The commit to merge into the branch pointed at by HEAD. The of who is performing the merge. Specifies optional parameters controlling merge behavior; if null, the defaults are used. The of the merge. Merge the reference that was recently fetched. This will merge the branch on the fetched remote that corresponded to the current local branch when we did the fetch. This is the second step in performing a pull operation (after having performed said fetch). The of who is performing the merge. Specifies optional parameters controlling merge behavior; if null, the defaults are used. The of the merge. Revert the specified commit. If the revert is successful but there are no changes to commit, then the will be . If the revert is successful and there are changes to revert, then the will be . If the revert resulted in conflicts, then the will be . The to revert. The of who is performing the revert. controlling revert behavior. The result of the revert. Cherry-picks the specified commit. The to cherry-pick. The of who is performing the cherry pick. controlling cherry pick behavior. The result of the cherry pick. Internal implementation of merge. Merge heads to operate on. The of who is performing the merge. Specifies optional parameters controlling merge behavior; if null, the defaults are used. The of the merge. Perform a normal merge (i.e. a non-fast-forward merge). The merge head handles to merge. The of who is performing the merge. Specifies optional parameters controlling merge behavior; if null, the defaults are used. The of the merge. Perform a fast-forward merge. The merge head handle to fast-forward merge. Options controlling merge behavior. The of the merge. Gets the references to the tips that are currently being merged. Retrieves the state of a file in the working directory, comparing it against the staging area and the latest commit. The relative path within the working directory to the file. A representing the state of the parameter. Retrieves the state of all files in the working directory, comparing them against the staging area and the latest commit. If set, the options that control the status investigation. A holding the state of all the files. Finds the most recent annotated tag that is reachable from a commit. If the tag points to the commit, then only the tag is shown. Otherwise, it suffixes the tag name with the number of additional commits on top of the tagged object and the abbreviated object name of the most recent commit. Optionally, the parameter allow to tweak the search strategy (considering lightweight tags, or even branches as reference points) and the formatting of the returned identifier. The commit to be described. Determines how the commit will be described. A descriptive identifier for the commit based on the nearest annotated tag. Parse an extended SHA-1 expression and retrieve the object and the reference mentioned in the revision (if any). An extended SHA-1 expression for the object to look up The reference mentioned in the revision (if any) The object which the revision resolves to Provides helper overloads to a . Try to lookup an object by its sha or a reference name. The kind of to lookup. The being looked up. The revparse spec for the object to lookup. The retrieved , or null if none was found. Try to lookup an object by its . The kind of to lookup. The being looked up. The id. The retrieved , or null if none was found. Creates a lightweight tag with the specified name. This tag will point at the commit pointed at by the . The being worked with. The name of the tag to create. Creates a lightweight tag with the specified name. This tag will point at the . The being worked with. The name of the tag to create. The revparse spec for the target object. Creates an annotated tag with the specified name. This tag will point at the commit pointed at by the . The being worked with. The name of the tag to create. The identity of the creator of this tag. The annotation message. Creates an annotated tag with the specified name. This tag will point at the . The being worked with. The name of the tag to create. The revparse spec for the target object. The identity of the creator of this tag. The annotation message. Creates a branch with the specified name. This branch will point at the commit pointed at by the . The being worked with. The name of the branch to create. Creates a branch with the specified name. This branch will point at . The being worked with. The name of the branch to create. The commit which should be pointed at by the Branch. Creates a branch with the specified name. This branch will point at the commit pointed at by the . The being worked with. The name of the branch to create. The revparse spec for the target commit. Sets the current and resets the and the content of the working tree to match. The being worked with. Flavor of reset operation to perform. Sets the current to the specified commitish and optionally resets the and the content of the working tree to match. The being worked with. Flavor of reset operation to perform. A revparse spec for the target commit object. Stores the content of the as a new into the repository. The tip of the will be used as the parent of this new Commit. Once the commit is created, the will move forward to point at it. The being worked with. The description of why a change was made to the repository. The of who made the change. The of who added the change to the repository. The generated . Dereferences the passed identifier to a commit. If the identifier is enumerable, all items are dereferenced. Repository to search Committish to dereference If true, allow thrown exceptions to propagate. If false, exceptions will be swallowed and null returned. A series of commit s which identify commit objects. Dereference the identifier to a commit. If the identifier is enumerable, dereference the first element. The to search Committish to dereference An for a commit object. Merges changes from branch into the branch pointed at by HEAD. The being worked with. The branch to merge into the branch pointed at by HEAD. The of who is performing the merge. The of the merge. Merges changes from the commit into the branch pointed at by HEAD. The being worked with. The commit to merge into the branch pointed at by HEAD. The of who is performing the merge. The of the merge. Updates specifed paths in the index and working directory with the versions from the specified branch, reference, or SHA. This method does not switch branches or update the current repository HEAD. The being worked with. A revparse spec for the commit or branch to checkout paths from. The paths to checkout. Will throw if null is passed in. Passing an empty enumeration results in nothing being checked out. Sets the current to the specified commit and optionally resets the and the content of the working tree to match. The being worked with. Flavor of reset operation to perform. The target commit object. Find where each line of a file originated. The being worked with. Path of the file to blame. The blame for the file. Cherry-picks the specified commit. The being worked with. The to cherry-pick. The of who is performing the cherry pick. The result of the cherry pick. Merges changes from commit into the branch pointed at by HEAD. The being worked with. The commit to merge into the branch pointed at by HEAD. The of who is performing the merge. The of the merge. Revert the specified commit. The being worked with. The to revert. The of who is performing the revert. The result of the revert. Retrieves the state of all files in the working directory, comparing them against the staging area and the latest commit. A holding the state of all the files. The being worked with. Finds the most recent annotated tag that is reachable from a commit. If the tag points to the commit, then only the tag is shown. Otherwise, it suffixes the tag name with the number of additional commits on top of the tagged object and the abbreviated object name of the most recent commit. The being worked with. The commit to be described. A descriptive identifier for the commit based on the nearest annotated tag. Provides high level information about a repository. Needed for mocking purposes. Gets the normalized path to the git repository. Gets the normalized path to the working directory. If the repository is bare, null is returned. Indicates whether the repository has a working directory. Indicates whether the repository is shallow (the result of `git clone --depth ...`) Indicates whether the Head points to an arbitrary commit instead of the tip of a local branch. Indicates whether the Head points to a reference which doesn't exist. The pending interactive operation. The message for a pending interactive operation. The exception that is thrown when a is being built with a path that doesn't point at a valid Git repository or workdir. Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. A message that describes the error. Initializes a new instance of the class with a specified error message. A composite format string for use in . An object array that contains zero or more objects to format. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception. If the parameter is not a null reference, the current exception is raised in a catch block that handles the inner exception. Initializes a new instance of the class with a serialized data. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. Class to convey information about the repository that is being operated on for operations that can recurse into submodules. Needed for mocking. Constructor suitable for use on the repository the main operation is being run on (i.e. the super project, not a submodule). The path of the repository being operated on. The URL that this operation will download from. Constructor suitable for use on the sub repositories. The path of the repository being operated on. The URL that this operation will download from. The path to the super repository. The logical name of this submodule. The depth of this sub repository from the original super repository. If this is a submodule repository, the full path to the parent repository. If this is not a submodule repository, then this is empty. The recursion depth for the current repository being operated on with respect to the repository the original operation was run against. The initial repository has a recursion depth of 0, the 1st level of subrepositories has a recursion depth of 1. The remote URL this operation will work against, if any. Full path of the repository. The submodule's logical name in the parent repository, if this is a submodule repository. If this is not a submodule repository, then this is empty. Provides optional additional information to the Repository to be opened. Overrides the probed location of the working directory of a standard repository, or, combined with , would allow to work against a bare repository as it was a standard one. The path has to lead to an existing directory. Overrides the probed location of the Index file of a standard repository, or, combined with , would allow to work against a bare repository as it was a standard one. The path has either to lead to an existing valid Index file, or to a non existent Index file which will be eventually created. Overrides the default identity to be used when creating reflog entries. When unset the identity will be retreived from the repository's configuration. When no identity can be found in the repository configuration stores, a fake identity ("unknown" as both name and email), will be used. Holds the result of the determination of the state of the working directory. Only files that differ from the current index and/or commit will be considered. Needed for mocking purposes. Gets the for the specified relative path. Returns an enumerator that iterates through the collection. An object that can be used to iterate through the collection. Returns an enumerator that iterates through the collection. An object that can be used to iterate through the collection. List of files added to the index, which are not in the current commit List of files added to the index, which are already in the current commit with different content List of files removed from the index but are existent in the current commit List of files existent in the index but are missing in the working directory List of files with unstaged modifications. A file may be modified and staged at the same time if it has been modified after adding. List of files existing in the working directory but are neither tracked in the index nor in the current commit. List of files existing in the working directory that are ignored. List of files that were renamed and staged. List of files that were renamed in the working directory but have not been staged. List of files that were unmodified in the working directory. True if the index or the working directory has been altered since the last commit. False otherwise. Specifies the kind of operation that should perform. Moves the branch pointed to by HEAD to the specified commit object. Moves the branch pointed to by HEAD to the specified commit object and resets the index to the tree recorded by the commit. Moves the branch pointed to by HEAD to the specified commit object, resets the index to the tree recorded by the commit and updates the working directory to match the content of the index. Options controlling Revert behavior. Initializes a new instance of the class. By default the revert will be committed if there are no conflicts. When reverting a merge commit, the parent number to consider as mainline, starting from offset 1. As a merge commit has multiple parents, reverting a merge commit will reverse all the changes brought in by the merge except for one parent's line of commits. The parent to preserve is called the mainline, and must be specified by its number (i.e. offset). Class to report the result of a revert. Needed for mocking purposes. The resulting commit of the revert. This will return null if the revert was not committed. This can happen if: 1) The revert resulted in conflicts. 2) The option to not commit on success is set. The status of the revert. The status of what happened as a result of a revert. The commit was successfully reverted. The revert resulted in conflicts. Revert was run, but there were no changes to commit. Options for a RewriteHistory operation. Initializes a new instance of the class. Namespace where rewritten references should be stored. (required; default: "refs/original/") Rewriter for commit metadata. Rewriter for mangling parent links. Rewriter for commit trees. Rewriter for tag names. This is called with (OldTag.Name, OldTag.IsAnnotated, OldTarget.Identifier). OldTarget.Identifier is either the SHA of a direct reference, or the canonical name of a symbolic reference. Empty commits should be removed while rewriting. Action to exectute after rewrite succeeds, but before it is finalized. An exception thrown here will rollback the operation. This is useful to inspect the new state of the repository and throw if you need to adjust and try again. Action to execute if an error occurred during rewrite, before rollback of rewrite progress. Does not fire for exceptions thrown in . This is useful to inspect the state of the repository at the time of the exception for troubleshooting. It is not meant to be used for general error handling; for that use try/catch. An exception thrown here will replace the original exception. You may want to pass the callback exception as an innerException. Specifies Commit message prettifying behavior during rewrite. NOTE: Prettifying may result in losing one or multiple lines in the commit message. As such it is recommended to leave this set to false. true if Commit messages are prettified; otherwise, false. Class that uses to hold username and password credentials for remote repository access. Callback to acquire a credential object. The newly created credential object. 0 for success, < 0 to indicate an error, > 0 to indicate no credential was acquired. Username for username/password authentication (as in HTTP basic auth). Password for username/password authentication (as in HTTP basic auth). A signature Initializes a new instance of the class. The name. The email. The when. Initializes a new instance of the class. The identity. The when. Gets the name. Gets the email. Gets the date when this signature happened. Determines whether the specified is equal to the current . The to compare with the current . True if the specified is equal to the current ; otherwise, false. Determines whether the specified is equal to the current . The to compare with the current . True if the specified is equal to the current ; otherwise, false. Returns the hash code for this instance. A 32-bit signed integer hash code. Tests if two are equal. First to compare. Second to compare. True if the two objects are equal; false otherwise. Tests if two are different. First to compare. Second to compare. True if the two objects are different; false otherwise. Returns " <>" for the current . The and of the current . Build the handle for the Signature, or return a handle to an empty signature. Structure for holding a signature extracted from a commit or a tag The signature data, PGP/GPG or otherwise. The data which was signed. The object contents without the signature part. Represents a mode for handling whitespace while detecting renames and copies. Don't consider leading whitespace when comparing files Don't consider any whitespace when comparing files Include all whitespace when comparing files Represents a mode for detecting renames and copies. Obey the user's `diff.renames` configuration setting Attempt no rename or copy detection Detect exact renames and copies (compare SHA hashes only) Detect fuzzy renames (use similarity metric) Detect renames and copies Detect renames, and include unmodified files when looking for copies Options for handling file similarity Initializes a new instance of the class. Get a instance that does no rename detection Get a instance that detects renames Get a instance that detects exact renames only Get a instance that detects renames and copies Get a instance that detects renames, and includes unmodified files when detecting copies Get a instance that obeys the user's `diff.renames` setting The mode for detecting renames and copies The mode for handling whitespace when comparing files Similarity in order to consider a rename Similarity of a modified file in order to be eligible as a rename source Similarity to consider a file a copy Similarity to split modify into an add/delete pair Maximum similarity sources to examine for a file An enumeration of the type of connections which a "smart" subtransport may be asked to create on behalf of libgit2. For HTTP, this indicates a GET to /info/refs?service=git-upload-pack For HTTP, this indicates a POST to /git-upload-pack For HTTP, this indicates a GET to /info/refs?service=git-receive-pack For HTTP, this indicates a POST to /git-receive-pack Base class for custom RPC-based subtransports that use the standard "smart" git protocol. RPC-based subtransports perform work over multiple requests, like the http transport. Base class for typical custom subtransports for the "smart" transport that work over a single connection, like the git and ssh transports. Call the certificate check callback The certificate to send Whether we consider the certificate to be valid The hostname we connected to Acquires credentials. Receives the credentials if the operation is successful. The username. The credential types allowed. The only supported one is . May be empty but should not be null. 0 if successful; a non-zero error code that came from otherwise. libgit2 will call an action back with a null url to indicate that it should re-use the prior url; store the url so that we can replay. Invoked by libgit2 to create a connection using this subtransport. The endpoint to connect to The type of connection to create A SmartSubtransportStream representing the connection Invoked by libgit2 when this subtransport is no longer needed, but may be re-used in the future. Override this method to add additional cleanup steps to your subclass. Be sure to call base.Close(). Invoked by libgit2 when this subtransport is being freed. Override this method to add additional cleanup steps to your subclass. Be sure to call base.Dispose(). An object representing the registration of a SmartSubtransport type with libgit2 under a particular scheme (eg "http"). The type of SmartSubtransport to register Creates a new native registration for a smart protocol transport in libgit2. The URL scheme (eg "http") to register Information about a smart subtransport registration. The URI scheme for this transport, for example "http" or "ssh". A stream that represents a two-way connection (socket) for a SmartSubtransport. This is to quiet the MetaFixture.TypesInLibGit2SharpMustBeExtensibleInATestingContext test. Do not use this constructor. Base constructor for SmartTransportStream. Make sure that your derived class calls this base constructor. The subtransport that this stream represents a connection over. Invoked by libgit2 when this stream is no longer needed. Override this method to add additional cleanup steps to your subclass. Be sure to call base.Free(). Reads from the transport into the provided object. The stream to copy the read bytes into. The number of bytes expected from the underlying transport. Receives the number of bytes actually read. The error code to propagate back to the native code that requested this operation. 0 is expected, and exceptions may be thrown. Writes the content of a given stream to the transport. The stream with the data to write to the transport. The number of bytes to read from . The error code to propagate back to the native code that requested this operation. 0 is expected, and exceptions may be thrown. The smart transport that this stream represents a connection over. Disambiguates the different versions of an index entry during a merge. The standard fully merged state for an index entry. Version of the entry as it was in the common base merge commit. Version of the entry as it is in the commit of the Head. Version of the entry as it is in the commit being merged. Options to define file staging behavior. Stage ignored files. (Default = false) If set, the passed paths will be treated as explicit paths. Use these options to determine how unmatched explicit paths should be handled. (Default = null) A Stash A stash is a snapshot of the dirty state of the working directory (i.e. the modified tracked files and staged changes) Needed for mocking purposes. Gets the that contains to the captured content of the worktree when the stash was created. Gets the base (i.e. the HEAD when the stash was created). Gets the that contains the captured content of the index when the stash was created. Gets the that contains the list of either the untracked files, the ignored files, or both, depending on the options passed when the stash was created. Gets the message associated to this . Returns "stash@{i}", where i is the index of this . The options to be used for stash application. for controlling checkout index reinstating./> The flags. controlling checkout behavior. The checkout options. for controlling stash application progress./> The progress handler. The flags which control whether the index should be reinstated. Default. Will apply the stash and result in an index with conflicts if any arise. In case any conflicts arise, this will not apply the stash. The current progress of the stash application. Not passed by the callback. Used as dummy value. Loading the stashed data from the object database. The stored index is being analyzed. The modified files are being analyzed. The untracked and ignored files are being analyzed. The untracked files are being written to disk. The modified files are being written to disk. The stash was applied successfully. The result of a stash application operation. The stash application was successful. The stash application ended up with conflicts. The stash index given was not found. The stash application was aborted due to uncommitted changes in the index. The collection of es in a Needed for mocking purposes. Initializes a new instance of the class. The repo. Returns an enumerator that iterates through the collection. The enumerator returns the stashes by descending order (last stash is returned first). An object that can be used to iterate through the collection. Returns an enumerator that iterates through the collection. An object that can be used to iterate through the collection. Gets the corresponding to the specified index (0 being the most recent one). Creates a stash with the specified message. The of the user who stashes the newly created Creates a stash with the specified message. The of the user who stashes A combination of flags the newly created Creates a stash with the specified message. The of the user who stashes The message of the stash. the newly created Creates a stash with the specified message. The of the user who stashes The message of the stash. A combination of flags the newly created Applies a single stashed state from the stash list the index of the stash to remove (0 being the most recent one). the options to use for checking out the stash. Applies a single stashed state from the stash list using the default options. the index of the stash to remove (0 being the most recent one). Pops a single stashed state from the stash list the index of the stash to remove (0 being the most recent one). the options to use for checking out the stash. Pops a single stashed state from the stash list using the default options. the index of the stash to remove (0 being the most recent one). Remove a single stashed state from the stash list. The index of the stash to remove (0 being the most recent one). Options controlling Stash behavior. Default All changes already added to the index are left intact in the working directory All untracked files are also stashed and then cleaned up from the working directory All ignored files are also stashed and then cleaned up from the working directory Holds the calculated status of a particular file at a particular instant. Needed for mocking purposes. Gets the of the file. Gets the relative new filepath to the working directory of the file. Gets the rename details from the HEAD to the Index, if this contains Gets the rename details from the Index to the working directory, if this contains Determines whether the specified is equal to the current . The to compare with the current . True if the specified is equal to the current ; otherwise, false. Determines whether the specified is equal to the current . The to compare with the current . True if the specified is equal to the current ; otherwise, false. Returns the hash code for this instance. A 32-bit signed integer hash code. Tests if two are equal. First to compare. Second to compare. True if the two objects are equal; false otherwise. Tests if two are different. First to compare. Second to compare. True if the two objects are different; false otherwise. Flags controlling what files are reported by status. Both the index and working directory are examined for changes Only the index is examined for changes Only the working directory is examined for changes Options controlling the status behavior. Initializes a new instance of the class. By default, both the index and the working directory will be scanned for status, and renames will be detected from changes staged in the index only. Which files should be scanned and returned Examine the staged changes for renames. Examine unstaged changes in the working directory for renames. Exclude submodules from being scanned for status Recurse into ignored directories Recurse into untracked directories Limit the scope of paths to consider to the provided pathspecs If a PathSpec is given, the results from rename detection may not be accurate. When set to true, the PathSpec paths will be considered as explicit paths, and NOT as pathspecs containing globs. Include unaltered files when scanning for status Unaltered meaning the file is identical in the working directory, the index and HEAD. Include ignored files when scanning for status ignored meaning present in .gitignore. Defaults to true for back compat but may improve perf to not include if you have thousands of ignored files. Include untracked files when scanning for status A Submodule. Needed for mocking purposes. The name of the submodule. The path of the submodule. The URL of the submodule. The commit ID for this submodule in the current HEAD tree. The commit ID for this submodule in the index. The commit ID for this submodule in the current working directory. The fetchRecurseSubmodules rule for the submodule. Note that at this time, LibGit2Sharp does not honor this setting and the fetch functionality current ignores submodules. The ignore rule of the submodule. The update rule of the submodule. Retrieves the state of this submodule in the working directory compared to the staging area and the latest commit. The of this submodule. Determines whether the specified is equal to the current . The to compare with the current . True if the specified is equal to the current ; otherwise, false. Determines whether the specified is equal to the current . The to compare with the current . True if the specified is equal to the current ; otherwise, false. Returns the hash code for this instance. A 32-bit signed integer hash code. Returns the , a representation of the current . The that represents the current . The collection of submodules in a Needed for mocking purposes. Initializes a new instance of the class. The repo. Gets the with the specified name. Initialize specified submodule. Existing entries in the config file for this submodule are not be modified unless is true. The name of the submodule to update. Overwrite existing entries. Update specified submodule. This will: 1) Optionally initialize the if it not already initialized, 2) clone the sub repository if it has not already been cloned, and 3) checkout the commit ID for the submodule in the sub repository. The name of the submodule to update. Options controlling submodule update behavior and callbacks. Returns an enumerator that iterates through the collection. An object that can be used to iterate through the collection. Returns an enumerator that iterates through the collection. An object that can be used to iterate through the collection. Extensions related to submodules The submodule is unmodified. The submodule working directory is dirty. Values that could be specified for how closely to examine the working directory when getting submodule status. Reset to the last saved ignore rule. Any change or untracked == dirty Dirty if tracked files change Only dirty if HEAD moved Never dirty Submodule recurse rule options. Reset to the value in the config. Do not recurse into submodules. Recurse into submodules. Recurse into submodules only when commit not already in local clone. Calculated status of a submodule in the working directory considering the current and the . No submodule changes detected. Superproject head contains submodule. Can be returned even if ignore is set to "ALL". Superproject index contains submodule. Can be returned even if ignore is set to "ALL". Superproject gitmodules has submodule. Can be returned even if ignore is set to "ALL". Superproject working directory has submodule. Can be returned even if ignore is set to "ALL". Submodule is in index, but not in head. Can be returned unless ignore is set to "ALL". Submodule is in head, but not in index. Can be returned unless ignore is set to "ALL". Submodule in index and head don't match. Can be returned unless ignore is set to "ALL". Submodule in working directory is not initialized. Can be returned unless ignore is set to "ALL". Submodule is in working directory, but not index. Can be returned unless ignore is set to "ALL". Submodule is in index, but not working directory. Can be returned unless ignore is set to "ALL". Submodule in index and working directory head don't match. Can be returned unless ignore is set to "ALL". Submodule working directory index is dirty. Can only be returned if ignore is "NONE" or "UNTRACKED". Submodule working directory has modified files. Can only be returned if ignore is "NONE" or "UNTRACKED". Working directory contains untracked files. Can only be returned if ignore is "NONE". Submodule update rule options. Reset to the last saved update rule. Only used when you don't want to specify any particular update rule. This is the default - checkout the commit recorded in the superproject. Rebase the current branch of the submodule onto the commit recorded in the superproject. Merge the commit recorded in the superproject into the current branch of the submodule. Do not update the submodule. Options controlling Submodule Update behavior and callbacks. Initialize the submodule if it is not already initialized. Delegate to be called during checkout for files that match desired filter specified with the NotifyFlags property. Delegate through which checkout will notify callers of certain conditions. The conditions that are reported is controlled with the CheckoutNotifyFlags property. The flags specifying what conditions are reported through the OnCheckoutNotify delegate. Collection of parameters controlling Fetch behavior. Credential types supported by the server. If the server supports a particular type of authentication, it will be set to true. Plain username and password combination Ask Windows to provide its default credentials for the current user (e.g. NTLM) A SymbolicReference is a reference that points to another reference Needed for mocking purposes. Gets the target of this Recursively peels the target of the reference until a direct reference is encountered. The this points to. A Tag Needed for mocking purposes. Gets the optional information associated to this tag. When the is a lightweight tag, null is returned. Gets the that this tag points to. Gets the peeled that this tag points to. Indicates whether the tag holds any metadata. Removes redundent leading namespaces (regarding the kind of reference being wrapped) from the canonical name. The friendly shortened name A TagAnnotation Needed for mocking purposes. Gets the name of this tag. Gets the message of this tag. Gets the that this tag annotation points to. Gets the tagger. The collection of s in a Needed for mocking purposes. Initializes a new instance of the class. The repo. Gets the with the specified name. Returns an enumerator that iterates through the collection. An object that can be used to iterate through the collection. Returns an enumerator that iterates through the collection. An object that can be used to iterate through the collection. Creates an annotated tag with the specified name. The name. Revparse spec for the target object. The tagger. The message. Creates an annotated tag with the specified name. The name. Revparse spec for the target object. The tagger. The message. True to allow silent overwriting a potentially existing tag, false otherwise. Creates a lightweight tag with the specified name. The name. Revparse spec for the target object. Creates a lightweight tag with the specified name. The name. Revparse spec for the target object. True to allow silent overwriting a potentially existing tag, false otherwise. Creates an annotated tag with the specified name. The name. The target . The tagger. The message. The added . Creates an annotated tag with the specified name. The name. The target . The tagger. The message. True to allow silent overwriting a potentially existing tag, false otherwise. The added . Creates a lightweight tag with the specified name. The name. The target . The added . Creates a lightweight tag with the specified name. The name. The target . True to allow silent overwriting a potentially existing tag, false otherwise. The added . Deletes the tag with the specified name. The short or canonical name of the tag to delete. Deletes the tag with the specified name. The tag to delete. Describe the expected tag retrieval behavior when a fetch operation is being performed. Use the setting from the configuration or, when there isn't any, fallback to default behavior. Will automatically retrieve tags that point to objects retrieved during this fetch. No tag will be retrieved. All tags will be downloaded, but _only_ tags, along with all the objects these tags are pointing to. Logic for tar archiving (not the actual tar format, but the overal logic related to tar+git) is taken from https://github.com/git/git/blob/master/archive-tar.c. Expose progress values from a fetch operation. Empty constructor. Constructor. Total number of objects. Number of objects indexed. Number of objects received. Number of bytes received. An implementation of with disposal managed by the caller (instead of automatically disposing when the repository is disposed) Needed for mocking purposes. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. A container which references a list of other s and s. Since the introduction of partially cloned repositories, trees might be missing on your local repository (see https://git-scm.com/docs/partial-clone) Needed for mocking purposes. Gets the number of immediately under this . Throws if tree is missing Gets the pointed at by the in this instance. The relative path to the from this instance. null if nothing has been found, the otherwise. Throws if tree is missing Returns an enumerator that iterates through the collection. An object that can be used to iterate through the collection. Throws if tree is missing Returns an enumerator that iterates through the collection. An object that can be used to iterate through the collection. Throws if tree is missing Holds the result of a diff between two trees. Changes at the granularity of the file can be obtained through the different sub-collections , and . To obtain the actual patch of the diff, use the class when calling Compare.. Needed for mocking purposes. Enumerates the diff and yields deltas with the specified change kind. Change type to filter on. This is method exists to work around .net not allowing unsafe code in iterators. Returns an enumerator that iterates through the collection. An object that can be used to iterate through the collection. This is method exists to work around .net not allowing unsafe code in iterators. Returns an enumerator that iterates through the collection. An object that can be used to iterate through the collection. List of that have been been added. List of that have been deleted. List of that have been modified. List of which type have been changed. List of which have been renamed List of which have been copied List of which are unmodified List of which are conflicted Gets the number of in this comparison. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Releases unmanaged and - optionally - managed resources. true to release both managed and unmanaged resources; false to release only unmanaged resources. Holds the meta data of a . Builds a from an existing . The to be processed. A new holding the meta data of the . Builds a from a 's . The whose tree is to be processed A new holding the meta data of the 's . Removes the located at each of the specified . The paths within this . The current . Removes a located the specified path. The path within this . The current . Adds or replaces a at the specified location. The path within this . The to be stored at the described location. The current . Adds or replaces a , built from the provided , at the specified location. The path within this . The to be stored at the described location. The current . Adds or replaces a , dynamically built from the provided , at the specified location. The path within this . The to be stored at the described location. The file related attributes. The current . Adds or replaces a , dynamically built from the content of the file, at the specified location. The path within this . The path to the file from which a will be built and stored at the described location. A relative path is allowed to be passed if the target is a standard, non-bare, repository. The path will then be considered as a path relative to the root of the working directory. The file related attributes. The current . Adds or replaces a from an existing blob specified by its Object ID at the specified location. The path within this . The object ID for this entry. The file related attributes. The current . Adds or replaces a , dynamically built from the provided , at the specified location. The path within this . The to be stored at the described location. The current . Adds or replaces a gitlink equivalent to . The to be linked. The current . Adds or replaces a gitlink , referencing the commit identified by , at the specified location. The path within this . The of the commit to be linked at the described location. The current . Retrieves the located the specified path. The path within this . The found if any; null otherwise. Representation of an entry in a . Needed for mocking purposes. Gets the file mode. Gets the filename. Gets the path. The path is expressed in a relative form from the latest known . Path segments are separated with a forward or backslash, depending on the OS the libray is being run on."/> Gets the being pointed at. Gets the of the being pointed at. Determines whether the specified is equal to the current . The to compare with the current . True if the specified is equal to the current ; otherwise, false. Determines whether the specified is equal to the current . The to compare with the current . True if the specified is equal to the current ; otherwise, false. Returns the hash code for this instance. A 32-bit signed integer hash code. Tests if two are equal. First to compare. Second to compare. True if the two objects are equal; false otherwise. Tests if two are different. First to compare. Second to compare. True if the two objects are different; false otherwise. Holds the changes between two versions of a tree entry. Needed for mocking purposes. The new path. The new . The new content hash. The file exists in the new side of the diff. This is useful in determining if you have content in the ours or theirs side of a conflict. This will be false during a conflict that deletes both the "ours" and "theirs" sides, or when the diff is a delete and the status is . The kind of change that has been done (added, deleted, modified ...). The old path. The old . The old content hash. The file exists in the old side of the diff. This is useful in determining if you have an ancestor side to a conflict. This will be false during a conflict that involves both the "ours" and "theirs" side being added, or when the diff is an add and the status is . Holds the meta data of a . Needed for mocking purposes. Gets file mode. Gets the of the target being pointed at. Gets the of the target being pointed at. Determines whether the specified is equal to the current . The to compare with the current . True if the specified is equal to the current ; otherwise, false. Determines whether the specified is equal to the current . The to compare with the current . True if the specified is equal to the current ; otherwise, false. Returns the hash code for this instance. A 32-bit signed integer hash code. Tests if two are equal. First to compare. Second to compare. True if the two objects are equal; false otherwise. Tests if two are different. First to compare. Second to compare. True if the two objects are different; false otherwise. Underlying type of the target a A file revision object. A tree object. A pointer to a commit object in another repository. The exception that is thrown when a operation requiring an existing branch is performed against an unborn branch. Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. A message that describes the error. Initializes a new instance of the class with a specified error message. A composite format string for use in . An object array that contains zero or more objects to format. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception. If the parameter is not a null reference, the current exception is raised in a catch block that handles the inner exception. Initializes a new instance of the class with a serialized data. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. The exception that is thrown when an explicit path or a list of explicit paths could not be matched. Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. A message that describes the error. Initializes a new instance of the class with a specified error message. A composite format string for use in . An object array that contains zero or more objects to format. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception. If the parameter is not a null reference, the current exception is raised in a catch block that handles the inner exception. Initializes a new instance of the class with a serialized data. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. The exception that is thrown when an operation that requires a fully merged index is performed against an index with unmerged entries Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. A message that describes the error. Initializes a new instance of the class with a specified error message. A composite format string for use in . An object array that contains zero or more objects to format. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception. If the parameter is not a null reference, the current exception is raised in a catch block that handles the inner exception. Initializes a new instance of the class with a serialized data. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. The exception that is thrown when an operation is canceled. Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. A message that describes the error. Initializes a new instance of the class with a specified error message. A composite format string for use in . An object array that contains zero or more objects to format. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception. If the parameter is not a null reference, the current exception is raised in a catch block that handles the inner exception. Initializes a new instance of the class with a serialized data. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. Class that holds username and password credentials for remote repository access. Callback to acquire a credential object. The newly created credential object. 0 for success, < 0 to indicate an error, > 0 to indicate no credential was acquired. Username for username/password authentication (as in HTTP basic auth). Password for username/password authentication (as in HTTP basic auth). Gets the current LibGit2Sharp version. Needed for mocking purposes. Returns version of the LibGit2Sharp library. Returns all the optional features that were compiled into libgit2. A enumeration. Returns the SHA hash for the libgit2 library. Returns the SHA hash for the LibGit2Sharp library. Returns a string representing the LibGit2Sharp version. The format of the version number is as follows: Major.Minor.Patch[-previewTag]+libgit2-{libgit2_abbrev_hash}.{LibGit2Sharp_hash} (arch - features) A Worktree. Needed for mocking purposes. The name of the worktree. The Repository representation of the worktree A flag indicating if the worktree is locked or not. Gets the reason associated with the lock Determines whether the specified is equal to the current . The to compare with the current . True if the specified is equal to the current ; otherwise, false. Determines whether the specified is equal to the current . The to compare with the current . True if the specified is equal to the current ; otherwise, false. Unlock the worktree Lock the worktree Returns the hash code for this instance. A 32-bit signed integer hash code. Returns the , a representation of the current . The that represents the current . The collection of worktrees in a Needed for mocking purposes. Initializes a new instance of the class. The repo. Gets the with the specified name. Creates a worktree. The committish to checkout into the new worktree. Name of the worktree. Location of the worktree. Creates a worktree. Name of the worktree. Location of the worktree. Returns an enumerator that iterates through the collection. An object that can be used to iterate through the collection. Returns an enumerator that iterates through the collection. An object that can be used to iterate through the collection. Represents the lock state of a Worktree Creates a new instance of with default, unlocked, state Creates a new instance of the locked state the reason given for the lock Gets a flag indicating if the worktree is locked Gets the reason, if set, for the lock