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