diff --git a/.hgignore b/.gitignore
similarity index 95%
rename from .hgignore
rename to .gitignore
index 4a95f5e..83a4f60 100644
--- a/.hgignore
+++ b/.gitignore
@@ -1,214 +1,215 @@
-############################################################
-## Visual Studio
-############################################################
-syntax: glob
-
-## User-specific files
-
-*.suo
-*.user
-*.sln.docstates
-
-## Build results
-
-[Dd]ebug/
-[Rr]elease/
-x64/
-build/
-[Bb]in/
-[Oo]bj/
-
-## MSTest test Results
-
-[Tt]est[Rr]esult*/
-[Bb]uild[Ll]og.*
-*_i.c
-*_p.c
-*.ilk
-*.meta
-*.obj
-*.pch
-*.pdb
-*.pgc
-*.pgd
-*.rsp
-*.sbr
-*.tlb
-*.tli
-*.tlh
-*.tmp
-*.tmp_proj
-*.log
-*.vspscc
-*.vssscc
-.builds
-*.pidb
-*.scc
-
-## Visual C++ cache files
-
-ipch/
-*.aps
-*.ncb
-*.opensdf
-*.sdf
-*.cachefile
-
-## Visual Studio profiler
-
-*.psess
-*.vsp
-*.vspx
-
-## Guidance Automation Toolkit
-
-*.gpState
-
-## ReSharper Ignores
-
-_ReSharper*/
-*.[Rr]e[Ss]harper
-
-## TeamCity Ignores
-_TeamCity*
-
-## DotCover Ignores
-
-*.dotCover
-
-## NCrunch Ignores
-
-*.ncrunch*
-.*crunch*.local.xml
-
-## Installshield output folder
-[Ee]xpress/
-
-## DocProject Ignores
-
-DocProject/buildhelp/
-DocProject/Help/*.HxT
-DocProject/Help/*.HxC
-DocProject/Help/*.hhc
-DocProject/Help/*.hhk
-DocProject/Help/*.hhp
-DocProject/Help/Html2
-DocProject/Help/html
-
-## Click-Once Ignores
-
-publish/
-
-## Publish Web Output
-
-*.Publish.xml
-*.pubxml
-
-## Windows Azure Build Ignores
-
-csx
-*.build.csdef
-
-## Windows Store Ignores
-
-AppPackages/
-
-## RIA/Silverlight projects
-
-Generated_Code/
-
-## SQL Server Ignores
-
-App_Data/*.mdf
-App_Data/*.ldf
-
-## Backup & Report Files when converting a solution
-## Not required, we have mercurial!
-
-_UpgradeReport_Files/
-Backup*/
-UpgradeLog*.XML
-UpgradeLog*.htm
-
-## NuGet
-packages/
-
-## Miscellaneous Ignores
-
-sql/
-*.Cache
-ClientBin/
-[Ss]tyle[Cc]op.*
-~$*
-*~
-*.dbmdl
-*.[Pp]ublish.xml
-*.pfx
-*.publishsettings
-
-## Windows Ignores
-
-$RECYCLE.BIN/
-Thumbs.db
-ehthumbs.db
-Desktop.ini
-.vs\slnx.sqlite
-.vs\ProjectSettings.json
-
-
-_ReSharper*\*
-TestResults\*
-desktop.ini
-Examples/MicroserviceSDK/MicroserviceSDKSimpleDemo/images/hello-world-multi/image.tar
-Examples/MicroserviceSDK/MicroserviceSDKSimpleDemo/images/hello-world-multi/image.zip
-MicroservicesSDK/.vs/Cumulocity.AspNetCore.Authentication.Basic/v15/Server/sqlite3/storage.ide-wal
-MicroservicesSDK/.vs/Cumulocity.AspNetCore.Authentication.Basic/v15/Server/sqlite3/storage.ide-shm
-Examples/MicroserviceSDK/MicroserviceSDKSimpleDemo/tools/packages.config.md5sum
-Examples/MicroserviceSDK/MicroserviceSDKSimpleDemo/.vs/DockerWebApp.Demo/v15/Server/sqlite3/db.lock
-Examples/MicroserviceSDK/MicroserviceSDKSimpleDemo/.vs/DockerWebApp.Demo/v15/Server/sqlite3/storage.ide
-Examples/MicroserviceSDK/MicroserviceSDKSimpleDemo/.vs/DockerWebApp.Demo/v15/Server/sqlite3/storage.ide-shm
-Examples/MicroserviceSDK/MicroserviceSDKSimpleDemo/.vs/DockerWebApp.Demo/v15/Server/sqlite3/storage.ide-wal
-Examples/MicroserviceSDK/MicroserviceSDKSimpleDemo/.vs/VSWorkspaceState.json
-Examples/MicroserviceSDK/MicroserviceSDKSimpleDemo/.vs/config/applicationhost.config
-Examples/MicroserviceSDK/MicroserviceSDKSimpleDemo/.vs/tasks.vs.json
-Examples/MicroserviceSDK/MicroserviceSDKSimpleDemo/.vscode/launch.json
-Examples/MicroserviceSDK/MicroserviceSDKSimpleDemo/.vscode/tasks.json
-Examples/MicroserviceSDK/MicroserviceSDKSimpleDemo/source/DockerWebApp.Demo/bower_components
-^Examples/BuildingScripts/microservicesdk-lin-dev/tools$
-^Examples/BuildingScripts/microservicesdk-win-dev/tools$
-Examples/BuildingScripts/microservicesdk-lin-dev/version.props
-Examples/BuildingScripts/microservicesdk-win-dev/version.props
-^MicroservicesSDK/tools$
-^MQTT/tools$
-
-DeviceSDK/MQTT/.vs/Cumulocity.MQTT/v15/Server/sqlite3/storage.ide
-Examples/MicroserviceSDK/MicroserviceExample/.vs/MicroserviceExample/DesignTimeBuild/.dtbcache
-Examples/MicroserviceSDK/Nordpool/.vs/Nordpool/v15/sqlite3/storage.ide
-Examples/MicroserviceSDK/Nordpool/images/multi/image.tar
-Examples/MicroserviceSDK/MicroserviceExample/.vs/MicroserviceExample/v15/Server/sqlite3/db.lock
-Examples/MicroserviceSDK/MicroserviceExample/.vs/MicroserviceExample/v15/Server/sqlite3/storage.ide
-Examples/MicroserviceSDK/MicroserviceExample/.vs/MicroserviceExample/v15/Server/sqlite3/storage.ide-shm
-Examples/MicroserviceSDK/MicroserviceExample/.vs/MicroserviceExample/v15/Server/sqlite3/storage.ide-wal
-Examples/MicroserviceSDK/MicroserviceExample/.vs/config/applicationhost.config
-Examples/MicroserviceSDK/Nordpool/images/multi/image.zip
-Examples/MicroserviceSDK/MicroserviceExample/.vs/MicroserviceExample/v15/sqlite3/storage.ide
-Examples/MicroserviceSDK/Nordpool/tools/Cake/System.Security.Cryptography.Primitives.dll
-Examples/MicroserviceSDK/Nordpool/tools/Addins/Cake.Docker.0.9.1/Cake.Docker.0.9.1.nupkg
-Examples/MicroserviceSDK/Nordpool/tools/Addins/Cake.Docker.0.9.1/cake.docker.nuspec
-Examples/MicroserviceSDK/Nordpool/tools/Addins/Cake.Docker.0.9.1/lib/netstandard2.0/Cake.Docker.xml
-Examples/MicroserviceSDK/Nordpool/tools/Addins/Cake.Docker.0.9.1/lib/netstandard2.0/Cake.Docker.dll
-Examples/MicroserviceSDK/Nordpool/tools/Cake/Autofac.dll
-Examples/MicroserviceSDK/Nordpool/tools/Cake/Cake.Common.xml
-Examples/MqttSDK/.vs/MqttDemo/v15/Server/sqlite3/db.lock
-Examples/MqttSDK/.vs/MqttDemo/v15/Server/sqlite3/storage.ide
-Examples/MicroserviceSDK/Nordpool/tools/Cake
-MicroservicesSDK/.vs
-MicroservicesSDK/test-results
-MicroservicesSDK/test/Cumulocity.SDK.Microservices.FunctionalTest/Properties
-Examples/MicroserviceSDK/Nordpool/tools/packages.config.md5sum
-MicroservicesSDK/buildVersion.props
-Examples/MicroserviceSDK/Nordpool/.vs/Nordpool/DesignTimeBuild/.dtbcache
-Examples/MicroserviceSDK/Nordpool/.vs/Nordpool/v15/Server/sqlite3/db.lock
-Examples/MicroserviceSDK/Nordpool/.vs/Nordpool/v15/Server/sqlite3/storage.ide
-Examples/MicroserviceSDK/Nordpool/.vs/Nordpool/v15/Server/sqlite3/storage.ide-shm
-Examples/MicroserviceSDK/Nordpool/.vs/Nordpool/v15/Server/sqlite3/storage.ide-wal
+############################################################
+## Visual Studio
+############################################################
+syntax: glob
+
+## User-specific files
+
+*.suo
+*.user
+*.sln.docstates
+*vscode/
+
+## Build results
+
+[Dd]ebug/
+[Rr]elease/
+x64/
+build/
+[Bb]in/
+[Oo]bj/
+
+## MSTest test Results
+
+[Tt]est[Rr]esult*/
+[Bb]uild[Ll]og.*
+*_i.c
+*_p.c
+*.ilk
+*.meta
+*.obj
+*.pch
+*.pdb
+*.pgc
+*.pgd
+*.rsp
+*.sbr
+*.tlb
+*.tli
+*.tlh
+*.tmp
+*.tmp_proj
+*.log
+*.vspscc
+*.vssscc
+.builds
+*.pidb
+*.scc
+
+## Visual C++ cache files
+
+ipch/
+*.aps
+*.ncb
+*.opensdf
+*.sdf
+*.cachefile
+
+## Visual Studio profiler
+
+*.psess
+*.vsp
+*.vspx
+
+## Guidance Automation Toolkit
+
+*.gpState
+
+## ReSharper Ignores
+
+_ReSharper*/
+*.[Rr]e[Ss]harper
+
+## TeamCity Ignores
+_TeamCity*
+
+## DotCover Ignores
+
+*.dotCover
+
+## NCrunch Ignores
+
+*.ncrunch*
+.*crunch*.local.xml
+
+## Installshield output folder
+[Ee]xpress/
+
+## DocProject Ignores
+
+DocProject/buildhelp/
+DocProject/Help/*.HxT
+DocProject/Help/*.HxC
+DocProject/Help/*.hhc
+DocProject/Help/*.hhk
+DocProject/Help/*.hhp
+DocProject/Help/Html2
+DocProject/Help/html
+
+## Click-Once Ignores
+
+publish/
+
+## Publish Web Output
+
+*.Publish.xml
+*.pubxml
+
+## Windows Azure Build Ignores
+
+csx
+*.build.csdef
+
+## Windows Store Ignores
+
+AppPackages/
+
+## RIA/Silverlight projects
+
+Generated_Code/
+
+## SQL Server Ignores
+
+App_Data/*.mdf
+App_Data/*.ldf
+
+## Backup & Report Files when converting a solution
+## Not required, we have git!
+
+_UpgradeReport_Files/
+Backup*/
+UpgradeLog*.XML
+UpgradeLog*.htm
+
+## NuGet
+packages/
+
+## Miscellaneous Ignores
+
+sql/
+*.Cache
+ClientBin/
+[Ss]tyle[Cc]op.*
+~$*
+*~
+*.dbmdl
+*.[Pp]ublish.xml
+*.pfx
+*.publishsettings
+
+## Windows Ignores
+
+$RECYCLE.BIN/
+Thumbs.db
+ehthumbs.db
+Desktop.ini
+.vs\slnx.sqlite
+.vs\ProjectSettings.json
+
+
+_ReSharper*\*
+TestResults\*
+desktop.ini
+Examples/MicroserviceSDK/MicroserviceSDKSimpleDemo/images/hello-world-multi/image.tar
+Examples/MicroserviceSDK/MicroserviceSDKSimpleDemo/images/hello-world-multi/image.zip
+MicroservicesSDK/.vs/Cumulocity.AspNetCore.Authentication.Basic/v15/Server/sqlite3/storage.ide-wal
+MicroservicesSDK/.vs/Cumulocity.AspNetCore.Authentication.Basic/v15/Server/sqlite3/storage.ide-shm
+Examples/MicroserviceSDK/MicroserviceSDKSimpleDemo/tools/packages.config.md5sum
+Examples/MicroserviceSDK/MicroserviceSDKSimpleDemo/.vs/DockerWebApp.Demo/v15/Server/sqlite3/db.lock
+Examples/MicroserviceSDK/MicroserviceSDKSimpleDemo/.vs/DockerWebApp.Demo/v15/Server/sqlite3/storage.ide
+Examples/MicroserviceSDK/MicroserviceSDKSimpleDemo/.vs/DockerWebApp.Demo/v15/Server/sqlite3/storage.ide-shm
+Examples/MicroserviceSDK/MicroserviceSDKSimpleDemo/.vs/DockerWebApp.Demo/v15/Server/sqlite3/storage.ide-wal
+Examples/MicroserviceSDK/MicroserviceSDKSimpleDemo/.vs/VSWorkspaceState.json
+Examples/MicroserviceSDK/MicroserviceSDKSimpleDemo/.vs/config/applicationhost.config
+Examples/MicroserviceSDK/MicroserviceSDKSimpleDemo/.vs/tasks.vs.json
+Examples/MicroserviceSDK/MicroserviceSDKSimpleDemo/.vscode/launch.json
+Examples/MicroserviceSDK/MicroserviceSDKSimpleDemo/.vscode/tasks.json
+Examples/MicroserviceSDK/MicroserviceSDKSimpleDemo/source/DockerWebApp.Demo/bower_components
+^Examples/BuildingScripts/microservicesdk-lin-dev/tools$
+^Examples/BuildingScripts/microservicesdk-win-dev/tools$
+Examples/BuildingScripts/microservicesdk-lin-dev/version.props
+Examples/BuildingScripts/microservicesdk-win-dev/version.props
+^MicroservicesSDK/tools$
+^MQTT/tools$
+
+DeviceSDK/MQTT/.vs/Cumulocity.MQTT/v15/Server/sqlite3/storage.ide
+Examples/MicroserviceSDK/MicroserviceExample/.vs/MicroserviceExample/DesignTimeBuild/.dtbcache
+Examples/MicroserviceSDK/Nordpool/.vs/Nordpool/v15/sqlite3/storage.ide
+Examples/MicroserviceSDK/Nordpool/images/multi/image.tar
+Examples/MicroserviceSDK/MicroserviceExample/.vs/MicroserviceExample/v15/Server/sqlite3/db.lock
+Examples/MicroserviceSDK/MicroserviceExample/.vs/MicroserviceExample/v15/Server/sqlite3/storage.ide
+Examples/MicroserviceSDK/MicroserviceExample/.vs/MicroserviceExample/v15/Server/sqlite3/storage.ide-shm
+Examples/MicroserviceSDK/MicroserviceExample/.vs/MicroserviceExample/v15/Server/sqlite3/storage.ide-wal
+Examples/MicroserviceSDK/MicroserviceExample/.vs/config/applicationhost.config
+Examples/MicroserviceSDK/Nordpool/images/multi/image.zip
+Examples/MicroserviceSDK/MicroserviceExample/.vs/MicroserviceExample/v15/sqlite3/storage.ide
+Examples/MicroserviceSDK/Nordpool/tools/Cake/System.Security.Cryptography.Primitives.dll
+Examples/MicroserviceSDK/Nordpool/tools/Addins/Cake.Docker.0.9.1/Cake.Docker.0.9.1.nupkg
+Examples/MicroserviceSDK/Nordpool/tools/Addins/Cake.Docker.0.9.1/cake.docker.nuspec
+Examples/MicroserviceSDK/Nordpool/tools/Addins/Cake.Docker.0.9.1/lib/netstandard2.0/Cake.Docker.xml
+Examples/MicroserviceSDK/Nordpool/tools/Addins/Cake.Docker.0.9.1/lib/netstandard2.0/Cake.Docker.dll
+Examples/MicroserviceSDK/Nordpool/tools/Cake/Autofac.dll
+Examples/MicroserviceSDK/Nordpool/tools/Cake/Cake.Common.xml
+Examples/MqttSDK/.vs/MqttDemo/v15/Server/sqlite3/db.lock
+Examples/MqttSDK/.vs/MqttDemo/v15/Server/sqlite3/storage.ide
+Examples/MicroserviceSDK/Nordpool/tools/Cake
+MicroservicesSDK/.vs
+MicroservicesSDK/test-results
+MicroservicesSDK/test/Cumulocity.SDK.Microservices.FunctionalTest/Properties
+Examples/MicroserviceSDK/Nordpool/tools/packages.config.md5sum
+MicroservicesSDK/buildVersion.props
+Examples/MicroserviceSDK/Nordpool/.vs/Nordpool/DesignTimeBuild/.dtbcache
+Examples/MicroserviceSDK/Nordpool/.vs/Nordpool/v15/Server/sqlite3/db.lock
+Examples/MicroserviceSDK/Nordpool/.vs/Nordpool/v15/Server/sqlite3/storage.ide
+Examples/MicroserviceSDK/Nordpool/.vs/Nordpool/v15/Server/sqlite3/storage.ide-shm
+Examples/MicroserviceSDK/Nordpool/.vs/Nordpool/v15/Server/sqlite3/storage.ide-wal
diff --git a/.hgflow b/.hgflow
deleted file mode 100644
index 0b63d2f..0000000
--- a/.hgflow
+++ /dev/null
@@ -1,7 +0,0 @@
-[branchname]
-master = default
-develop = develop
-feature = feature/
-release = release/
-hotfix = hotfix/
-support = support/
diff --git a/Examples/BuildingScripts/build.cake b/Examples/BuildingScripts/build.cake
index 8066ea5..34a1ffa 100644
--- a/Examples/BuildingScripts/build.cake
+++ b/Examples/BuildingScripts/build.cake
@@ -1,5 +1,5 @@
//#addin nuget:https://www.nuget.org/api/v2/?package=cake.docker
-//#addin Cake.Hg
+//#addin Cake
using Path = System.IO.Path;
using IO = System.IO;
@@ -53,7 +53,7 @@ Task("CreateRelease")
var settings = new ProcessSettings
{
- Arguments = new ProcessArgumentBuilder().Append("hgversion.ps1 -local false")
+ Arguments = new ProcessArgumentBuilder().Append("version.ps1 -local false")
};
StartProcess("pwsh", settings);
diff --git a/Examples/BuildingScripts/createrelease.ps1 b/Examples/BuildingScripts/createrelease.ps1
index 8729f44..c2c2c4b 100644
--- a/Examples/BuildingScripts/createrelease.ps1
+++ b/Examples/BuildingScripts/createrelease.ps1
@@ -6,6 +6,6 @@ Param(
if($version)
{
- hg tag "bsv$version"
- hg push
+ git tag "bsv$version"
+ git push
}
\ No newline at end of file
diff --git a/Examples/BuildingScripts/tools/Addins/Cake.Hg.0.1.8/Cake.Hg.0.1.8.nupkg b/Examples/BuildingScripts/tools/Addins/Cake.Hg.0.1.8/Cake.Hg.0.1.8.nupkg
deleted file mode 100644
index ea0d316..0000000
Binary files a/Examples/BuildingScripts/tools/Addins/Cake.Hg.0.1.8/Cake.Hg.0.1.8.nupkg and /dev/null differ
diff --git a/Examples/BuildingScripts/tools/Addins/Cake.Hg.0.1.8/cake.hg.nuspec b/Examples/BuildingScripts/tools/Addins/Cake.Hg.0.1.8/cake.hg.nuspec
deleted file mode 100644
index 1501b6d..0000000
--- a/Examples/BuildingScripts/tools/Addins/Cake.Hg.0.1.8/cake.hg.nuspec
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
- Cake.Hg
- 0.1.8
- vCipher
- vCipher
- false
- https://github.com/cake-contrib/Cake.Hg
- https://raw.githubusercontent.com/cake-contrib/graphics/a5cf0f881c390650144b2243ae551d5b9f836196/png/cake-contrib-medium.png
- Cake AddIn that extends Cake with Mercurial features
- Copyright © vCipher 2018
- cake hg mercurial
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Examples/BuildingScripts/tools/Addins/Cake.Hg.0.1.8/lib/net461/Cake.Hg.dll b/Examples/BuildingScripts/tools/Addins/Cake.Hg.0.1.8/lib/net461/Cake.Hg.dll
deleted file mode 100644
index f421f28..0000000
Binary files a/Examples/BuildingScripts/tools/Addins/Cake.Hg.0.1.8/lib/net461/Cake.Hg.dll and /dev/null differ
diff --git a/Examples/BuildingScripts/tools/Addins/Cake.Hg.0.1.8/lib/net461/Cake.Hg.xml b/Examples/BuildingScripts/tools/Addins/Cake.Hg.0.1.8/lib/net461/Cake.Hg.xml
deleted file mode 100644
index f1c52ae..0000000
--- a/Examples/BuildingScripts/tools/Addins/Cake.Hg.0.1.8/lib/net461/Cake.Hg.xml
+++ /dev/null
@@ -1,221 +0,0 @@
-
-
-
- Cake.Hg
-
-
-
-
- Contains functionality for working with Mercurial.
-
- #addin Cake.Hg
-
-
-
-
-
- Create mercurial commit.
-
-
-
- HgCommit("./", "Initial commit");
-
-
- Cake context
- Path to repository
- Commit message
-
-
-
- Return mercurial repository.
-
-
-
- var repo = Hg("./");
-
-
- Cake context
- Path to repository
- Mercurial repository
-
-
-
- Get diff of repository.
-
-
-
- var diff = HgDiff("./", "6b0f32157b9045a9495821db1927348250076e6b:e40ce466124109a074af6dc582c1d54db3e9cd01");
-
-
- Cake context
- Path to repository
- Revision or revision range to view a diff
-
-
-
- Init mercurial repository.
-
-
-
- HgInit("./");
-
-
- Cake context
- Path to repository
-
-
-
- Perform merge of two branches
-
-
-
- var diff = HgMerge("./", "rc", "dev");
-
-
- Cake context
- Path to repository
- Name of source branch
- Name of destination branch (Can be ommited to merge into current branch)
- MergeResult.Success if merge was successfull, MergeResult.UnresolvedFiles if merge conflict has occured
-
-
-
- Push local changes to remote repository.
-
-
-
- HgPush("./");
-
-
- Cake context
- Path to repository
-
-
-
- Push local changes to remote repository.
-
-
-
- HgPush("./", new HgPushSettings
- {
- User = "user",
- Password = "password",
- Url = "https://bitbucket.org/mycompany/myrepository
- });
-
-
- Cake context
- Path to repository
- Push settings
-
-
-
- Apply a symbolic identifier for a changeset [tag].
-
-
-
- HgTag("./", "0.0.1");
-
-
- Cake context
- Path to repository
- Tag name
-
-
-
- Get list of current tags.
-
-
-
- var tags = HgTags("./");
-
- foreach (var tag in tags)
- {
- Information("Name: {0}, Revision: {1}", tag.Name, tag.RevisionNumber);
- }
-
-
- Cake context
- Path to repository
-
-
-
- Get the tip revision.
-
-
-
- var changeset = HgTip("./");
-
- Information("[{0}] - {1} by {2} ({3})",
- changeset.Branch,
- changeset.Hash,
- changeset.AuthorName,
- changeset.AuthorEmailAddress);
-
-
- Cake context
- Path to repository
- Returns information about current tip revision
-
-
-
- Common Mercurial.NET extension methods
-
-
-
-
- Retrieve first changeset by revision
-
- Mercurial repository
- Revision
-
-
-
-
- Retrieve first parent of changeset.
-
- Mercurial repository
- Changeset
-
-
-
-
- Retrieve first parent of revision.
-
- Mercurial repository
- Revision
-
-
-
-
- Settings used by
-
-
-
-
- Username to authenticate with.
-
-
-
-
- Password to authenticate with.
-
-
-
-
- Url to remote repository
-
-
-
-
- Returns url to remote repository like 'https://user:password@bitbucket.org'
-
-
-
-
-
- This namespace contains Cake aliases.
-
-
-
-
diff --git a/Examples/BuildingScripts/tools/Addins/Cake.Hg.0.1.8/lib/net461/Mercurial.Net.dll b/Examples/BuildingScripts/tools/Addins/Cake.Hg.0.1.8/lib/net461/Mercurial.Net.dll
deleted file mode 100644
index 51a07a2..0000000
Binary files a/Examples/BuildingScripts/tools/Addins/Cake.Hg.0.1.8/lib/net461/Mercurial.Net.dll and /dev/null differ
diff --git a/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/.signature.p7s b/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/.signature.p7s
new file mode 100644
index 0000000..7994443
Binary files /dev/null and b/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/.signature.p7s differ
diff --git a/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/Cake.Git.nuspec b/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/Cake.Git.nuspec
new file mode 100644
index 0000000..54bf113
--- /dev/null
+++ b/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/Cake.Git.nuspec
@@ -0,0 +1,20 @@
+
+
+
+ Cake.Git
+ 0.18.0
+ Cake.Git
+ WCOM AB
+ WCOM AB,cake-contrib
+ false
+ https://github.com/cake-contrib/Cake_Git/blob/master/LICENSE.md
+ https://github.com/cake-contrib/Cake_Git
+ https://cdn.rawgit.com/cake-contrib/graphics/a5cf0f881c390650144b2243ae551d5b9f836196/png/cake-contrib-medium.png
+ Cake Git AddIn
+ Cake AddIn that extends Cake with Git SCM features
+ Bumped Cake.Core to 0.28.1
+Add git clean command
+ Copyright © WCOM AB 2018
+ Cake Script Build Git
+
+
\ No newline at end of file
diff --git a/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/[Content_Types].xml b/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/[Content_Types].xml
new file mode 100644
index 0000000..8a838a7
--- /dev/null
+++ b/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/[Content_Types].xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/_rels/.rels b/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/_rels/.rels
new file mode 100644
index 0000000..5e5d044
--- /dev/null
+++ b/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/_rels/.rels
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/lib/net46/Cake.Git.XML b/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/lib/net46/Cake.Git.XML
new file mode 100644
index 0000000..4faa527
--- /dev/null
+++ b/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/lib/net46/Cake.Git.XML
@@ -0,0 +1,1153 @@
+
+
+
+ Cake.Git
+
+
+
+
+ Class GitAliases.
+
+
+ Contains functionality for working with GIT using LibGit2 & LibGit2Sharp
+
+
+
+
+ Remove untracked file(s) workspace.
+
+
+
+ var filePaths = new FilePath[] { ".\\test.txt" };
+ GitClean("c:/temp/cake");
+
+
+ The context.
+ Path to repository.
+
+
+
+
+
+ Gets a list of all tags from the repo
+
+
+
+
+
+
+
+ Removes from the staging area all the modifications of a collection of file since the latest commit (addition, updation or removal).
+
+
+
+ var filePaths = new FilePath[] { ".\\test.txt" };
+ GitUnstage("c:/temp/cake", filePaths);
+
+
+ The context.
+ Path to repository.
+ Path to file(s) to unstage.
+
+
+
+
+ Removes from the staging area all the modifications all files the latest commit (addition, updation or removal).
+
+
+
+ GitUnstageAll("c:/temp/cake");
+
+
+ The context.
+ Path to repository.
+
+
+
+
+ Checks if a specific directory is a valid Git repository.
+
+
+
+ var result = GitIsValidRepository("c:/temp/cake");
+
+
+ The context.
+ Path to the repository to check.
+ True if the path is part of a valid Git Repository.
+ If any of the parameters are null.
+ If path doesn't exist.
+
+
+
+ Checks if a repository contains uncommited changes.
+
+
+
+ var result = GitHasUncommitedChanges("c:/temp/cake");
+
+
+ The context.
+ Path to the repository to check.
+ True if the Git repository contains uncommited changes.
+ If any of the parameters are null.
+ If path doesn't exist.
+
+
+
+ Checks if a repository contains staged changes.
+
+
+
+ var result = GitHasStagedChanges("c:/temp/cake");
+
+
+ The context.
+ Path to the repository to check.
+ True if the Git repository contains staged changes.
+ If any of the parameters are null.
+ If path doesn't exist.
+
+
+
+ Checks if a repository contains untracked files.
+
+
+
+ var result = GitHasStagedChanges("c:/temp/cake");
+
+
+ The context.
+ Path to the repository to check.
+ True if the Git repository contains staged changes.
+ If any of the parameters are null.
+ If path doesn't exist.
+
+
+
+ Finding git root path from subtree.
+
+
+
+ var result = GitFindRootFromPath("c:/temp/cake");
+
+
+ The context.
+ Path to probe the repository.
+ The path to the repository root.
+ If any of the parameters are null.
+ If git root path not found.
+
+
+
+ Sets the current branch head (HEAD) to a specified commit,
+ optionally modifying index and working tree to match.
+
+
+
+ GitReset("c:/temp/cake", GitResetMode.Hard, "commit id");
+
+
+ The context.
+ Path to repository.
+ The effect that the reset action should have on the the index and working tree.
+ The id of the commit to which the current branch HEAD should be set.
+
+
+
+ Resets the current branch head (HEAD) optionally modifying index and working tree to match.
+
+
+
+ GitReset("c:/temp/cake", GitResetMode.Hard);
+
+
+ The context.
+ Path to repository.
+ The effect that the reset action should have on the the index and working tree.
+
+
+
+
+ Gets the current branch.
+
+ The context.
+ Path to repository.
+ GitBranch.
+ context
+ or
+ repositoryDirectoryPath
+
+
+ var repositoryDirectoryPath = DirectoryPath.FromString(".");
+ var currentBranch = ((ICakeContext)cakeContext).GitBranchCurrent(repositoryDirectoryPath);
+
+
+
+
+
+ Creates a local Branch.
+
+ The context.
+ Path to repository.
+ Branch name to create.
+ Option to checkout after branch creation.
+ context
+ or
+ repositoryDirectoryPath
+ or
+ branchName
+
+
+ var repositoryDirectoryPath = DirectoryPath.FromString(".");
+ var currentBranch = ((ICakeContext)cakeContext).GitCreateBranch(repositoryDirectoryPath, "FooBar", true);
+
+
+
+
+
+ Checkout file(s) using supplied commit or branch spec.
+
+
+
+ var filePaths = new FilePath[] { ".\\test.txt" };
+ GitCheckout("c:/temp/cake", "develop", filePaths);
+
+
+ The context.
+ Path to repository.
+ A revparse spec for the commit or branch to checkout paths from.
+ Path to files to checkout.
+
+
+
+
+ Checkout file.
+
+
+
+ var filePaths = new FilePath[] { ".\\test.txt" };
+ GitCheckout("c:/temp/cake", filePaths);
+
+
+ The context.
+ Path to repository.
+ Path to files to remove.
+
+
+
+
+ Add file to index.
+
+
+
+ var filePaths = new FilePath[] { ".\\test.txt" };
+ GitAdd("c:/temp/cake", filePaths);
+
+
+ The context.
+ Path to repository.
+ Path to file(s) to add.
+
+
+
+
+ Add all file changes to index.
+
+
+
+ GitAddAll("c:/temp/cake");
+
+
+ The context.
+ Path to repository.
+
+
+
+
+ Clone unauthenticated using default options.
+
+
+
+ GitClone("https://github.com/cake-build/cake.git", "c:/temp/cake");
+
+
+ The context.
+ URI for the remote repository.
+ Local path to clone into.
+ The path to the created repository.
+ If any of the arguments are null.
+ If parent directory doesnt exist.
+ If workDirectoryPath already exists.
+
+
+
+ Clone unauthenticated using specific settings.
+
+
+
+ GitClone("https://github.com/cake-build/cake.git", "c:/temp/cake",
+ new GitCloneSettings{ BranchName = "main" });
+
+
+ The context.
+ URI for the remote repository.
+ Local path to clone into.
+ The clone settings.
+
+ The path to the created repository.
+
+ If any of the arguments are null.
+ If parent directory doesnt exist.
+ If workDirectoryPath already exists.
+
+
+
+ Clone authenticated using default options.
+
+
+
+ GitClone("https://github.com/cake-build/cake.git",
+ "c:/temp/cake",
+ "username",
+ "password");
+
+
+ The context.
+ URI for the remote repository.
+ Local path to clone into.
+ Username used for authentication.
+ Password used for authentication.
+
+
+ The path to the created repository.
+
+
+
+ Clone authenticated using specific settings.
+
+
+
+ GitClone("https://github.com/cake-build/cake.git",
+ "c:/temp/cake",
+ "username",
+ "password",
+ new GitCloneSettings{ BranchName = "main" });
+
+
+ The context.
+ URI for the remote repository.
+ Local path to clone into.
+ Username used for authentication.
+ Password used for authentication.
+ The clone settings.
+
+ The path to the created repository.
+
+
+
+ Failed to find workDirectoryPath: {workFullDirectoryPath}
+
+
+
+ Commit using default options.
+
+
+
+ GitCommit("c:/temp/cake", "name", "email", "message");
+
+
+ The context.
+ Path to repository.
+ Name of committer.
+ Email of committer.
+ Commit message.
+ The path to the created repository.
+
+
+
+
+ Describe current branch.
+
+
+
+ var result = GitDescribe(".");
+
+
+ The context.
+ Path to repository.
+ Described commit using the most recent tag reachable from it.
+ If any of the parameters are null.
+
+
+
+ Describe current branch.
+
+
+
+ var result = GitDescribe(".", GitDescribeStrategy.Tags);
+
+
+ The context.
+ Path to repository.
+ Describing strategy.
+ Described commit using the most recent tag reachable from it.
+ If any of the parameters are null.
+
+
+
+ Describe current branch.
+
+
+
+ var result = GitDescribe(".", false, GitDescribeStrategy.Tags);
+
+
+ The context.
+ Path to repository.
+
+ Always output the long format (the tag, the number of commits and the abbreviated commit name)
+ even when it matches a tag. This is useful when you want 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...).
+
+ Describe strategy.
+ Described commit using the most recent tag reachable from it.
+ If any of the parameters are null.
+
+
+
+ Describe current branch.
+
+
+
+ var result = GitDescribe(".", false, GitDescribeStrategy.Tags, 0);
+
+
+ The context.
+ Path to repository.
+
+ Always output the long format (the tag, the number of commits and the abbreviated commit name)
+ even when it matches a tag. This is useful when you want 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...).
+
+ Describe strategy.
+ Number of minimum hexadecimal digits used to render a uniquely abbreviated commit id.
+ Described commit using the most recent tag reachable from it.
+ If any of the parameters are null.
+
+
+
+ Describe specified commit-ish.
+
+
+
+ var result = GitDescribe(".", "master", false, GitDescribeStrategy.Tags, 0);
+
+
+ The context.
+ Path to repository.
+ Commit-ish name.
+
+ Always output the long format (the tag, the number of commits and the abbreviated commit name)
+ even when it matches a tag. This is useful when you want 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...).
+
+ Describe strategy.
+ Number of minimum hexadecimal digits used to render a uniquely abbreviated commit id.
+ Described commit using the most recent tag reachable from it.
+ If any of the parameters are null.
+
+
+
+ Get changed files from inital commit id up to current.
+
+
+
+ var result = GitDiff("c:/temp/cake");
+
+
+ The context.
+ Path to repository.
+ The path to the created repository.
+
+
+
+
+ Get changed files from certain commit id up to current.
+
+
+
+ var result = GitDiff("c:/temp/cake", "since commit id");
+
+
+ The context.
+ Path to repository.
+ Commit id to start fetching from.
+ The path to the created repository.
+
+
+
+
+ Get changed files from certain commit id up to current.
+
+
+
+ var result = GitDiff("c:/temp/cake", "since commit id", "to commit id");
+
+
+ The context.
+ Path to repository.
+ Commit id to start fetching from.
+ The commit id to compare to.
+ The path to the created repository.
+
+
+
+
+ Init using default options.
+
+
+
+ var result = GitInit("c:/temp/cake");
+
+
+ The context.
+ The path to the working folder when initializing a standard ".git" repository.
+ The path to the created repository.
+ If any of the parameters are null.
+ If initDirectoryPath doesn't exist.
+
+
+
+ Get last commit
+
+
+
+ var result = GitLogTip("c:/temp/cake");
+
+
+ The context.
+ Path to repository.
+ The path to the created repository.
+
+
+
+
+ Get commit log.
+
+
+
+ var result = GitLog("c:/temp/cake", 5);
+
+
+ The context.
+ Path to repository.
+ Number of commits to fetch.
+ The path to the created repository.
+
+
+
+
+ Get commit from certain commit id up to current.
+
+
+
+ var result = GitLog("c:/temp/cake", "since commit id");
+
+
+ The context.
+ Path to repository.
+ Commit id to start fetching from.
+ The path to the created repository.
+
+
+
+
+ Get specific commit.
+
+
+
+ var result = GitLogLookup("c:/temp/cake", "commit id");
+
+
+ The context.
+ Path to repository.
+ Commit id to lookup.
+ The path to the created repository.
+
+
+
+
+ Pull unauthenticated using default options.
+
+
+
+ var result = GitPull("c:/temp/cake", "name", "email");
+
+
+ The context.
+ Repository path.
+ The name of the merger.
+ The email of the merger.
+ The path to the created repository.
+
+
+
+
+ Pull authenticating using default options.
+
+
+
+ var result = GitPull("c:/temp/cake", "name", "email", "username", "password", "remote");
+
+
+ The context.
+ Repository path.
+ The name of the merger.
+ The email of the merger.
+ Username used for authentication.
+ Password used for authentication.
+ Name of remote to pull from.
+ The path to the created repository.
+
+
+
+
+ Push all branches unauthenticated.
+
+
+
+ GitPush("c:/temp/cake");
+
+
+ The context.
+ Repository path.
+
+
+
+
+ Push all branches authenticated.
+
+
+
+ GitPush("c:/temp/cake", "username", "password");
+
+
+ The context.
+ Repository path.
+ Username used for authentication.
+ Password used for authentication.
+
+
+
+
+ Push specific branch authenticated.
+
+
+
+ GitPush("c:/temp/cake", "username", "password", "branch");
+
+
+ The context.
+ Repository path.
+ Username used for authentication.
+ Password used for authentication.
+ Name of branch to push.
+
+
+
+
+ Push a tag to a remote unauthenticated.
+
+
+
+ GitPushRef("c:/temp/cake", "remote", "refSpec");
+
+
+ The context.
+ Repository path.
+ The to push to.
+ The pushRefSpec to push.
+
+
+
+
+ Push a tag to a remote authenticated.
+
+
+
+ GitPushRef("c:/temp/cake", "username", "password", "remote", "refSpec");
+
+
+ The context.
+ Repository path.
+ Username used for authentication.
+ Password used for authentication.
+ The to push to.
+ The pushRefSpec to push.
+
+
+
+
+ Applys tagName to repository.
+
+
+
+ GitTag("c:/temp/cake", "tag name");
+
+
+ The context.
+ Path to repository.
+ The tag name.
+
+
+
+
+ Applys tagName to repository.
+
+
+
+ GitTag("c:/temp/cake", "tag name", "objectish");
+
+
+ The context.
+ Path to repository.
+ The tag name.
+ The revparse spec for the target object.
+
+
+
+
+ Applys tagName to repository as annotated tag.
+
+
+
+ GitTag("c:/temp/cake", "tag name", "user", "user@mail.me", "tag message");
+
+
+ The context.
+ Path to repository.
+ The tag name.
+ Name of committer.
+ Email of committer.
+ Commit message.
+
+
+
+
+ Applys tagName to repository as annotated tag.
+
+
+
+ GitTag("c:/temp/cake", "tag name", "objectish", "user", "user@mail.me", "tag message");
+
+
+ The context.
+ Path to repository.
+ The tag name.
+ The revparse spec for the target object.
+ Name of committer.
+ Email of committer.
+ Commit message.
+
+
+
+
+ Remove file(s) from index.
+
+
+
+ var filePaths = new FilePath[] { ".\\test.txt" };
+ GitRemove("c:/temp/cake", true, filePaths);
+
+
+ The context.
+ Path to repository.
+ Path to file(s) to remove.
+ True to remove the files from the working directory, False otherwise.
+
+
+
+
+ Representation of a Git branch.
+
+
+
+
+ Gets the full name of the branch.
+
+ The full name of the branch.
+
+
+
+ Gets the human-friendly name of the branch.
+
+ The human-friendly name of the branch.
+
+
+
+ Gets the commit this branch points to.
+
+ The commit this branch points to.
+
+
+
+ Gets a value indicating whether this branch is remote.
+
+ The a value indicating whether this branch is remote.
+
+
+
+ Gets the remote name for this branch.
+
+ The remote name for this branch.
+
+
+
+ Gets or sets the remotes.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The repository.
+
+
+
+ Generates a string representation of
+
+ as string
+
+
+
+ The kind of changes that a Diff can report.
+
+
+
+
+ File is not modified.
+
+
+
+
+ File is added.
+
+
+
+
+ File is deleted.
+
+
+
+
+ File is modified.
+
+
+
+
+ File is renamed.
+
+
+
+
+ File is copied.
+
+
+
+
+ File is ignored.
+
+
+
+
+ File is untracked.
+
+
+
+
+ File type changed.
+
+
+
+
+ File is unreadable.
+
+
+
+
+ File is conflicting.
+
+
+
+
+ Contains settings used by GitClone.
+
+
+
+
+ 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.
+
+
+
+
+ Representation of a Git commit.
+
+
+
+
+ Commit Id for bare repository
+
+
+
+
+ Sha Id of commit.
+
+
+
+
+ Commit author.
+
+
+
+
+ Commit comitter.
+
+
+
+
+ Commit message.
+
+
+
+
+ Commit short message.
+
+
+
+
+ Generates a string representation of
+
+ as string
+
+
+
+ Specify the kind of committish which will be considered
+ when trying to identify the closest reference to the described commit.
+
+
+
+
+ Only annotated tags will be considered as reference points
+
+
+
+
+ Instead of using only the annotated tags, use any tag found
+ in refs/tags namespace. This option enables matching
+ a lightweight (non-annotated) tag.
+
+
+
+
+ Instead of using only the annotated tags, use any ref found in
+ refs/ namespace. This option enables matching any known branch,
+ remote-tracking branch, or lightweight tag.
+
+
+
+
+ Represents a Git diff file entry
+
+
+
+
+ The new path.
+
+
+
+
+ The old path.
+
+
+
+
+ The kind of change that has been done (added, deleted, modified ...).
+
+
+
+
+ The file exists in the new side of the diff.
+
+
+
+
+ The file exists in the old side of the diff.
+
+
+
+
+ Generates a string representation of the
+
+ as string
+
+
+
+ Git repository merge operation result
+
+
+
+
+ Merge commit.
+
+
+
+
+ Merge status
+
+
+
+
+ The status of what happened as a result of a merge.
+
+
+
+
+ Repository was up to date
+
+
+
+
+ Repository was fast forward merged
+
+
+
+
+ Repository was not fast forward merged
+
+
+
+
+ Repository encountered conflicts during merge
+
+
+
+
+ Representation of a Git remote.
+
+
+
+
+ Gets the Name.
+
+
+
+
+ Gets the url.
+
+
+
+
+ Gets the push url.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ The remote name.
+
+
+ The push url.
+
+
+ The url.
+
+
+
+
+ Generates a string representation of
+
+ as string
+
+
+
+ The mode to be used when resetting the branch head
+ and, optionally, the index and the working tree.
+
+
+
+
+ Resets the index and working tree. Any changes to tracked
+ files in the working tree since the latest or specified commit are discarded.
+
+
+
+
+ Resets the index but not the working tree (i.e., the changed files are
+ preserved but not marked for commit).
+
+
+
+
+ Resets the index and working tree. Any changes to tracked files in the
+ working tree since the latest or specified commit are discarded.
+
+
+
+
+ Git Commit Author / Committer.
+
+
+
+
+ Email address of author / committer.
+
+
+
+
+ Name of author / commiter.
+
+
+
+
+ When Committed / Authored
+
+
+
+
+ Generates a string representation of the
+
+ as string
+
+
+
+ This namespace contains GIT aliases.
+
+
+
+
diff --git a/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/lib/net46/Cake.Git.dll b/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/lib/net46/Cake.Git.dll
new file mode 100644
index 0000000..31ef4ca
Binary files /dev/null and b/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/lib/net46/Cake.Git.dll differ
diff --git a/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/lib/net46/Cake.Git.pdb b/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/lib/net46/Cake.Git.pdb
new file mode 100644
index 0000000..5267f02
Binary files /dev/null and b/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/lib/net46/Cake.Git.pdb differ
diff --git a/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/lib/net46/LICENSE.md b/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/lib/net46/LICENSE.md
new file mode 100644
index 0000000..fd00453
--- /dev/null
+++ b/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/lib/net46/LICENSE.md
@@ -0,0 +1,1048 @@
+# Cake.Git
+
+## The MIT License (MIT)
+
+### Copyright (c) WCOM AB
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+# LibGit2Sharp
+
+https://github.com/libgit2/libgit2sharp/blob/master/LICENSE.md
+
+## The MIT License
+
+### Copyright (c) LibGit2Sharp contributors
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+
+# LibGit2
+
+https://github.com/libgit2/libgit2/blob/master/COPYING
+
+### libgit2 is Copyright (C) the libgit2 contributors,
+ unless otherwise stated. See the AUTHORS file for details.
+
+ Note that the only valid version of the GPL as far as this project
+ is concerned is _this_ particular version of the license (ie v2, not
+ v2.2 or v3.x or whatever), unless explicitly otherwise stated.
+
+----------------------------------------------------------------------
+
+ LINKING EXCEPTION
+
+ In addition to the permissions in the GNU General Public License,
+ the authors give you unlimited permission to link the compiled
+ version of this library into combinations with other programs,
+ and to distribute those combinations without any restriction
+ coming from the use of this file. (The General Public License
+ restrictions do apply in other respects; for example, they cover
+ modification of the file, and distribution when not linked into
+ a combined executable.)
+
+----------------------------------------------------------------------
+
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+
+ Copyright (C)
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ , 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
+
+----------------------------------------------------------------------
+
+The bundled ZLib code is licensed under the ZLib license:
+
+Copyright (C) 1995-2010 Jean-loup Gailly and Mark Adler
+
+ This software is provided 'as-is', without any express or implied
+ warranty. In no event will the authors be held liable for any damages
+ arising from the use of this software.
+
+ Permission is granted to anyone to use this software for any purpose,
+ including commercial applications, and to alter it and redistribute it
+ freely, subject to the following restrictions:
+
+ 1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+ 2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+ 3. This notice may not be removed or altered from any source distribution.
+
+ Jean-loup Gailly Mark Adler
+ jloup@gzip.org madler@alumni.caltech.edu
+
+----------------------------------------------------------------------
+
+The Clar framework is licensed under the ISC license:
+
+Copyright (c) 2011-2015 Vicent Marti
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+----------------------------------------------------------------------
+
+The regex library (deps/regex/) is licensed under the GNU LGPL
+(available at the end of this file).
+
+Definitions for data structures and routines for the regular
+expression library.
+
+Copyright (C) 1985,1989-93,1995-98,2000,2001,2002,2003,2005,2006,2008
+Free Software Foundation, Inc.
+This file is part of the GNU C Library.
+
+The GNU C Library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or (at your option) any later version.
+
+The GNU C Library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with the GNU C Library; if not, write to the Free
+Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+----------------------------------------------------------------------
+
+The bundled winhttp definition files (deps/winhttp/) are licensed under
+the GNU LGPL (available at the end of this file).
+
+Copyright (C) 2007 Francois Gouget
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or (at your option) any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+
+----------------------------------------------------------------------
+
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL. It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+ This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it. You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+ When we speak of free software, we are referring to freedom of use,
+not price. Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+ To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights. These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+ For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you. You must make sure that they, too, receive or can get the source
+code. If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it. And you must show them these terms so they know their rights.
+
+ We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+ To protect each distributor, we want to make it very clear that
+there is no warranty for the free library. Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+ Finally, software patents pose a constant threat to the existence of
+any free program. We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder. Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+ Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License. This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License. We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+ When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library. The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom. The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+ We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License. It also provides other free software developers Less
+of an advantage over competing non-free programs. These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries. However, the Lesser license provides advantages in certain
+special circumstances.
+
+ For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard. To achieve this, non-free programs must be
+allowed to use the library. A more frequent case is that a free
+library does the same job as widely used non-free libraries. In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+ In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software. For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+ Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+ The precise terms and conditions for copying, distribution and
+modification follow. Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library". The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+ GNU LESSER GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+ A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+ The "Library", below, refers to any such software library or work
+which has been distributed under these terms. A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language. (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+ "Source code" for a work means the preferred form of the work for
+making modifications to it. For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+ Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it). Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+ 1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+ You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+ 2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) The modified work must itself be a software library.
+
+ b) You must cause the files modified to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ c) You must cause the whole of the work to be licensed at no
+ charge to all third parties under the terms of this License.
+
+ d) If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses
+ the facility, other than as an argument passed when the facility
+ is invoked, then you must make a good faith effort to ensure that,
+ in the event an application does not supply such function or
+ table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
+
+ (For example, a function in a library to compute square roots has
+ a purpose that is entirely well-defined independent of the
+ application. Therefore, Subsection 2d requires that any
+ application-supplied function or table used by this function must
+ be optional: if the application does not supply it, the square
+ root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License. (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.) Do not make any other change in
+these notices.
+
+ Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+ This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+ 4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+ If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library". Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+ However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library". The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+ When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library. The
+threshold for this to be true is not precisely defined by law.
+
+ If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work. (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+ Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+ 6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+ You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License. You must supply a copy of this License. If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License. Also, you must do one
+of these things:
+
+ a) Accompany the work with the complete corresponding
+ machine-readable source code for the Library including whatever
+ changes were used in the work (which must be distributed under
+ Sections 1 and 2 above); and, if the work is an executable linked
+ with the Library, with the complete machine-readable "work that
+ uses the Library", as object code and/or source code, so that the
+ user can modify the Library and then relink to produce a modified
+ executable containing the modified Library. (It is understood
+ that the user who changes the contents of definitions files in the
+ Library will not necessarily be able to recompile the application
+ to use the modified definitions.)
+
+ b) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (1) uses at run time a
+ copy of the library already present on the user's computer system,
+ rather than copying library functions into the executable, and (2)
+ will operate properly with a modified version of the library, if
+ the user installs one, as long as the modified version is
+ interface-compatible with the version that the work was made with.
+
+ c) Accompany the work with a written offer, valid for at
+ least three years, to give the same user the materials
+ specified in Subsection 6a, above, for a charge no more
+ than the cost of performing this distribution.
+
+ d) If distribution of the work is made by offering access to copy
+ from a designated place, offer equivalent access to copy the above
+ specified materials from the same place.
+
+ e) Verify that the user has already received a copy of these
+ materials or that you have already sent this user a copy.
+
+ For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it. However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+ It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system. Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+ 7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+ a) Accompany the combined library with a copy of the same work
+ based on the Library, uncombined with any other library
+ facilities. This must be distributed under the terms of the
+ Sections above.
+
+ b) Give prominent notice with the combined library of the fact
+ that part of it is a work based on the Library, and explaining
+ where to find the accompanying uncombined form of the same work.
+
+ 8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License. Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License. However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+ 9. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Library or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+ 10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+ 11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all. For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded. In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+ 13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation. If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+ 14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission. For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this. Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+ NO WARRANTY
+
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Libraries
+
+ If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change. You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+ To apply these terms, attach the following notices to the library. It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+
+ Copyright (C)
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the
+ library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+ , 1 April 1990
+ Ty Coon, President of Vice
+
+That's all there is to it!
+
+----------------------------------------------------------------------
+
+The bundled SHA1 collision detection code is licensed under the MIT license:
+
+MIT License
+
+Copyright (c) 2017:
+ Marc Stevens
+ Cryptology Group
+ Centrum Wiskunde & Informatica
+ P.O. Box 94079, 1090 GB Amsterdam, Netherlands
+ marc@marc-stevens.nl
+
+ Dan Shumow
+ Microsoft Research
+ danshu@microsoft.com
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/lib/net46/LibGit2Sharp.dll b/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/lib/net46/LibGit2Sharp.dll
new file mode 100644
index 0000000..ab396f4
Binary files /dev/null and b/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/lib/net46/LibGit2Sharp.dll differ
diff --git a/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/lib/net46/LibGit2Sharp.dll.config b/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/lib/net46/LibGit2Sharp.dll.config
new file mode 100644
index 0000000..f09937a
--- /dev/null
+++ b/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/lib/net46/LibGit2Sharp.dll.config
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/lib/net46/LibGit2Sharp.pdb b/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/lib/net46/LibGit2Sharp.pdb
new file mode 100644
index 0000000..a4c411e
Binary files /dev/null and b/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/lib/net46/LibGit2Sharp.pdb differ
diff --git a/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/lib/net46/LibGit2Sharp.xml b/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/lib/net46/LibGit2Sharp.xml
new file mode 100644
index 0000000..ba20974
--- /dev/null
+++ b/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/lib/net46/LibGit2Sharp.xml
@@ -0,0 +1,13975 @@
+
+
+
+ LibGit2Sharp
+
+
+
+
+ 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.
+
+
+
+ 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
+
+
+
+
+ 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
+
+
+
+
+ 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.
+
+
+
+
+ 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
+
+
+
+
+ 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.
+
+
+
+
+ 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.
+
+
+ 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.
+
+
+
+ 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.
+
+
+
+
+ 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".)
+
+
+
+
+ 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.
+
+
+
+
+
+ Managed structure corresponding to git_transfer_progress native structure.
+
+
+
+
+ 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.
+
+
+
+
+ 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.
+
+
+
+
+
+
+ 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
+
+
+
+
+ Structure for git_remote_callbacks
+
+
+
+
+ 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 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
+
+
+
+
+ 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.
+
+
+
+
+ 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.
+
+
+
+ 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.
+
+
+
+ Provides helper methods to help converting between Epoch (unix timestamp) and .
+
+
+
+
+ Builds a from a Unix timestamp and a timezone offset.
+
+ The number of seconds since 00:00:00 UTC on 1 January 1970.
+ The number of minutes from UTC in a timezone.
+ A representing this instant.
+
+
+
+ Converts the part of a into a Unix timestamp.
+
+ The to convert.
+ The number of seconds since 00:00:00 UTC on 1 January 1970.
+
+
+
+ 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.
+
+
+
+
+ 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).
+
+
+
+
+ Internal hack to ensure that the call to git_threads_shutdown is called after all handle finalizers
+ have run to completion ensuring that no dangling git-related finalizer runs after git_threads_shutdown.
+ There should never be more than one instance of this object per AppDomain.
+
+
+
+
+ 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.
+
+
+
+
+ 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.
+
+
+
+
+ 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
+
+
+
+
+ The MD5 hash (if appropriate)
+
+
+
+
+ The MD5 hash (if appropriate)
+
+
+
+
+ Allows portable-compatible code that uses GetTypeInfo() to compile and work on net40.
+
+
+
+
+ Returns the specified type.
+
+
+
+
+ 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.
+
+
+
+
+ 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
+
+
+
+ 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.
+
+
+
+ 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.
+
+
+
+
+ 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.
+
+
+
+
+
+ Determine if the blob content is most certainly binary or not.
+
+
+
+
+ Gets the blob content in a .
+
+
+
+
+ Gets the blob content in a as it would be
+ checked out to the working directory.
+ Parameter controlling content filtering behavior
+
+
+
+
+ Gets the blob content, decoded with UTF8 encoding if the encoding cannot be detected from the byte order mark
+
+ Blob content as text.
+
+
+
+ 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.
+
+
+
+ Gets the blob content, decoded with UTF8 encoding if the encoding cannot be detected
+
+ Parameter controlling content filtering behavior
+ Blob content as text.
+
+
+
+ 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.
+
+
+
+ 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 no tracking information
+ this will return null.
+
+
+
+
+
+ Get 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 remote containing
+ the tracked branch.
+
+
+
+
+
+ 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.
+
+
+
+ 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.
+
+
+
+ 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 behaviour
+
+
+
+
+ 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.
+
+
+
+
+ Fetch changes from the configured upstream remote and branch into the branch pointed at by HEAD.
+
+
+ Class to serve as namespacing for the command-emulating methods
+
+
+
+
+ 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.
+
+
+
+ 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.
+
+
+
+ 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.
+
+
+
+ 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.
+
+
+
+ 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.
+
+
+
+
+ Criterias used to filter out and order the commits of the repository when querying its history.
+
+
+
+
+ Initializes a new instance of .
+
+
+
+
+ The ordering stragtegy 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
+
+
+
+
+ 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.
+
+
+
+
+ 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.
+
+
+
+
+ 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.
+
+
+
+
+
+ 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.
+
+
+
+
+ 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.
+
+
+
+ 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 hanlder 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.
+
+
+
+
+ Starting to operate on a new repository.
+
+
+
+
+ Completed operating on the current repository.
+
+
+
+
+ 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.
+
+
+
+
+ Criteria used to order the commits of the repository when querying its history.
+
+ The commits will be enumerated from the current HEAD of the repository.
+
+
+
+
+
+ Initializes a new instance of .
+
+
+
+
+ The ordering strategy to use.
+
+ By default, the commits are shown in reverse chronological order.
+
+
+ Only 'Topological', 'Time', or 'Topological | Time' are allowed.
+
+
+
+
+
+ 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.
+
+
+
+
+
+ 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.
+
+
+
+
+
+
+ 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'
+
+
+
+
+ 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
+
+
+
+
+ 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 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.
+
+
+
+ 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.
+
+
+
+
+ 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.
+
+
+
+
+ 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.
+
+
+
+ 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.
+
+
+
+ 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.
+
+
+
+
+
+ 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. use this transport to communicate
+ 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 hint path for searching for native binaries: when
+ specified, native binaries will first be searched in a
+ subdirectory of the given path corresponding to the operating
+ system and architecture (eg, "x86" or "x64") before falling
+ back to the default path ("lib\win32\x86" or "lib\win32\x64"
+ next to the application).
+
+ This must be set before any other calls to the library,
+ and is not available on Unix platforms: see your dynamic
+ library loader's documentation for details.
+
+
+
+
+
+ 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.
+
+
+
+
+ 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.
+
+
+
+ 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.
+
+
+
+ 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 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.
+
+
+
+ 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.
+
+
+
+
+ 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.
+
+
+
+
+ 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.
+
+
+
+ Exposes low level Git object metadata
+
+
+
+
+ Size of the Object
+
+
+
+
+ Object Type
+
+
+
+
+ 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 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.
+
+
+
+ Parameters controlling Pull behavior.
+
+
+
+
+ Constructor.
+
+
+
+
+ Parameters controlling Fetch behavior.
+
+
+
+
+ Parameters controlling Merge behavior.
+
+
+
+
+ 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 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.
+
+
+
+ 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.
+
+
+
+
+ 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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.
+
+
+
+
+ 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.
+
+
+
+ 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.
+
+
+
+
+ Collection of parameters controlling Push behavior.
+
+
+
+
+ Handler to generate for authentication.
+
+
+
+
+ This hanlder 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.
+
+
+
+
+ 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.
+
+
+
+
+ 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.
+
+
+
+ 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.
+
+
+
+
+ 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.
+
+
+
+
+ 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
+
+
+
+
+ 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.
+
+
+
+ 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 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 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).
+
+
+
+
+ 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.
+
+
+
+
+ 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)
+
+
+
+
+ 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
+
+
+
+
+ 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.
+
+
+
+
+ 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
+
+
+
+
+ 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.
+
+
+
+
+ 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.
+
+
+
+
+ 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.
+
+
+
+
+ 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.
+
+
+
+
+ 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 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.
+
+
+
+ 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..
+
+
+
+ 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.
+
+
+
+
+ Underlying type of a
+
+
+
+
+ A commit object.
+
+
+
+
+ A tree (directory listing) object.
+
+
+
+
+ A file revision object.
+
+
+
+
+ An annotated tag object.
+
+
+
+
+ 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.
+
+
+
+ Provides helpers to a .
+
+
+
+
+ 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.
+
+
+
+ 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.
+
+
+
+ Represents a gitlink (a reference to a commit in another Git repository)
+
+
+
+
+ Needed for mocking purposes.
+
+
+
+
+ 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.
+
+
+
+ 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
+
+
+
+
+ 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 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 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.
+
+
+
+ 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.
+
+
+
+ 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.
+ The used to connect to remote repository.
+ 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.
+ The used to connect to remote repository.
+ The references in the remote repository.
+
+
+
+ Fetch from the .
+
+ The remote to fetch
+
+
+
+ Fetch from the .
+
+ The remote to fetch
+ controlling fetch behavior
+
+
+
+ Fetch from the .
+
+ The remote to fetch
+ Message to use when updating the reflog.
+
+
+
+ Fetch from the .
+
+ The remote to fetch
+ controlling fetch behavior
+ Message to use when updating the reflog.
+
+
+
+ Fetch from the , using custom refspecs.
+
+ The remote to fetch
+ Refspecs to use, replacing the remote's fetch refspecs
+
+
+
+ Fetch from the , using custom refspecs.
+
+ The remote to fetch
+ Refspecs to use, replacing the remote's fetch refspecs
+ controlling fetch behavior
+
+
+
+ Fetch from the , using custom refspecs.
+
+ The remote to fetch
+ Refspecs to use, replacing the remote's fetch refspecs
+ Message to use when updating the reflog.
+
+
+
+ Fetch from the , using custom refspecs.
+
+ The remote to fetch
+ Refspecs to use, replacing the remote's fetch refspecs
+ controlling fetch behavior
+ 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
+
+
+
+ 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
+
+
+
+ Pull changes from the configured upstream remote and branch into the branch pointed at by HEAD.
+
+ If the merge is a non-fast forward merge that generates a merge commit, the of who made the merge.
+ Specifies optional parameters controlling merge behavior of pull; if null, the defaults are used.
+
+
+
+ The heads that have been updated during the last fetch.
+
+
+
+
+ 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 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 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).
+
+
+
+ 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.
+
+
+
+
+ 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 initialzed,
+ 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 udpate 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
+
+
+
+
+ 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.
+
+
+
+
+ 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.
+
+
+
+ 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.
+
+
+
+ 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.
+
+
+
+ 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 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
+
+
+
+ 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
+
+
+
+ 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
+
+
+
+ Holds the changes between two s.
+
+
+
+
+ Needed for mocking purposes.
+
+
+
+
+ The number of lines added.
+
+
+
+
+ The number of lines deleted.
+
+
+
+
+ The patch corresponding to these changes.
+
+
+
+
+ Determines if at least one side of the comparison holds binary content.
+
+
+
+
+ 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.
+
+
+
+ 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.
+
+
+
+ The targets of a Tree based diff comparison.
+
+
+
+
+ The repository index.
+
+
+
+
+ The working directory.
+
+
+
+
+ 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.
+
+
+
+
+ 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.
+
+
+
+ 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.
+
+
+
+ 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.
+
+
+
+
+ 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.
+
+
+
+ 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.
+
+
+
+ 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.
+
+
+
+
+ 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
+
+
+
+ git_remote_completion types.
+
+
+
+
+ Download.
+
+
+
+
+ Indexing.
+
+
+
+
+ Error.
+
+
+
+
+ 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.
+
+
+
+
+ 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.
+
+
+
+
+ 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
+
+
+
+ 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
+
+
+
+ The URI scheme (eg "http") for this transport.
+
+
+
+
+ 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().
+
+
+
+
+ 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.
+
+
+
+
+ The smart transport that this stream represents a connection over.
+
+
+
+
+ Specifies the level of configuration to use.
+
+
+
+
+ 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.
+
+
+
+
+ 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.
+
+
+
+
+ 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.
+
+
+
+ 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.
+
+
+
+
+ Checkout the commit pointed at by the tip of the specified .
+
+ If this commit is the current tip of the branch as it exists in the repository, the HEAD
+ will point to this branch. Otherwise, the HEAD will be detached, pointing at the commit sha.
+
+
+ The to check out.
+ controlling checkout behavior.
+ The that was checked out.
+
+
+
+ Checkout the specified branch, 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.
+
+
+ A revparse spec for the commit or branch to checkout.
+ controlling checkout behavior.
+ The that was checked out.
+
+
+
+ Checkout the specified .
+
+ Will detach the HEAD and make it point to this commit sha.
+
+
+ The to check out.
+ controlling checkout behavior.
+ The that was checked out.
+
+
+
+ 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.
+
+
+
+ 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 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 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 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 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 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 paths of the files within the working directory which have to be moved/renamed.
+ The target paths of the files 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.
+
+
+ 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 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.
+
+
+ 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 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.
+
+
+
+
+ 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 lightweith 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
+
+
+
+ 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').
+
+
+
+ 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.
+
+
+
+ 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.
+
+
+
+ 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.
+
+
+
+
+ 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 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 .
+
+
+
+
+ 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.
+
+
+
+ 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 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.
+
+
+
+ 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
+
+
+
+
+ Gets the 40 character sha1 of 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.
+
+
+
+ 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 .
+
+
+
+ A log of commits in a .
+
+
+
+
+ Gets the current sorting strategy applied when enumerating the log.
+
+
+
+
+ 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
+
+
+
+
+ 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 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.
+
+
+
+ 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.
+
+
+
+ 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
+
+
+
+
+ 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)
+
+
+
+ Write an object to the object database
+
+ The contents of the object
+ 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 index will contain the results
+ of the merge and can be examined for conflicts. The returned
+ index must be disposed.
+
+ The first tree
+ The second tree
+ 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
+
+
+
+ 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.
+
+
+
+ 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.
+
+
+
+
+ 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.
+
+
+
+ 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.
+
+
+
+ A Reference to another git object
+
+
+
+
+ Needed for mocking purposes.
+
+
+
+
+ This would be protected+internal, were that supported by C#.
+ Do not use except in subclasses.
+
+
+
+
+ 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
+
+
+
+ A remote repository whose branches are tracked.
+
+
+
+
+ Needed for mocking purposes.
+
+
+
+
+ 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
.
+
+
+
+
+
+ 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.
+
+ The remote to update.
+ Delegate to perform updates on the remote.
+ The updated remote.
+
+
+
+ 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 .
+
+
+
+ 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.
+
+
+
+
+ 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.
+
+
+ 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.
+
+
+
+ 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 , 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.
+
+
+ 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 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 to check out.
+ controlling checkout behavior.
+ The that was checked out.
+
+
+
+ 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.
+
+
+
+
+ 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 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 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 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 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 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 paths of the files within the working directory which have to be moved/renamed.
+ The target paths of the files 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.
+
+
+ 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 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.
+
+
+ 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 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.
+
+
+
+
+ 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 lightweith 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 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.
+
+
+
+
+ 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 .
+
+
+
+ Fetch from the specified remote.
+
+ The being worked with.
+ The name of the to fetch from.
+
+
+
+ Fetch from the specified remote.
+
+ The being worked with.
+ The name of the to fetch from.
+ controlling fetch behavior
+
+
+
+ Checkout the specified , reference or SHA.
+
+ The being worked with.
+ A revparse spec for the commit or branch to checkout.
+ The that was checked out.
+
+
+
+ Checkout the commit pointed at by the tip of the specified .
+
+ If this commit is the current tip of the branch as it exists in the repository, the HEAD
+ will point to this branch. Otherwise, the HEAD will be detached, pointing at the commit sha.
+
+
+ The being worked with.
+ 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 being worked with.
+ The to check out.
+ The that was checked out.
+
+
+
+ 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.
+
+
+
+ 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 being worked with.
+ 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 being worked with.
+ The to check out.
+ controlling checkout behavior.
+ 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 being worked with.
+ A revparse spec for the commit or branch to checkout.
+ controlling checkout behavior.
+ The that was checked out.
+
+
+
+ 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.
+
+
+
+ Promotes to the staging area the latest modifications of a file in the working directory (addition, updation or removal).
+
+ The being worked with.
+ The path of the file 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).
+
+ The being worked with.
+ The collection of paths of the files within the working directory.
+
+
+
+ Removes from the staging area all the modifications of a file since the latest commit (addition, updation or removal).
+
+ The being worked with.
+ The path of the file 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 being worked with.
+ The collection of paths of the files 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.
+
+
+
+ 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 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.
+
+
+ The being worked with.
+ The collection of paths of the files within the working directory.
+ True to remove the files from the working directory, False otherwise.
+
+
+
+ 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 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 probed location of the Global configuration file of a repository.
+
+ The path has either to lead to an existing valid configuration file,
+ or to a non existent configuration file which will be eventually created.
+
+ .
+
+
+
+
+ Overrides the probed location of the XDG configuration file of a repository.
+
+ The path has either to lead to an existing valid configuration file,
+ or to a non existent configuration file which will be eventually created.
+
+ .
+
+
+
+
+ Overrides the probed location of the System configuration file of a repository.
+
+ The path has to lead to an existing valid configuration file,
+ or to a non existent configuration 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.
+
+
+
+
+ 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.
+
+
+
+
+
+
+ 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.
+
+
+
+ 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.
+
+
+
+ A container which references a list of other s and s.
+
+
+
+
+ Needed for mocking purposes.
+
+
+
+
+ Gets the number of immediately under this .
+
+
+
+
+ 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.
+
+
+
+ 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 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 , 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 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.
+
+
+
+ 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-LibGit2Sharp_abbrev_hash-libgit2_abbrev_hash (x86|x64 - features)
+
+
+
+
+
+ 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)
+
+
+
+
+ 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 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 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.
+
+
+
+
+ Top-level certificate type. The usable certificates inherit from this class.
+
+
+
+
+ Conains a X509 certificate
+
+
+
+
+ For mocking purposes
+
+
+
+
+ The certificate.
+
+
+
+
+ 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
+
+
+
+
+ True if we have the SHA1 hostkey hash from the server
+ public readonly bool HasSHA1;
+
+
+
+ Marker interface to identify Diff results.
+
+
+
+
diff --git a/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/lib/net46/lib/linux/x86_64/libgit2-1196807.so b/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/lib/net46/lib/linux/x86_64/libgit2-1196807.so
new file mode 100644
index 0000000..352d6ca
Binary files /dev/null and b/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/lib/net46/lib/linux/x86_64/libgit2-1196807.so differ
diff --git a/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/lib/net46/lib/osx/libgit2-1196807.dylib b/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/lib/net46/lib/osx/libgit2-1196807.dylib
new file mode 100644
index 0000000..344c877
Binary files /dev/null and b/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/lib/net46/lib/osx/libgit2-1196807.dylib differ
diff --git a/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/lib/net46/lib/win32/x64/git2-1196807.dll b/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/lib/net46/lib/win32/x64/git2-1196807.dll
new file mode 100644
index 0000000..9e79815
Binary files /dev/null and b/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/lib/net46/lib/win32/x64/git2-1196807.dll differ
diff --git a/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/lib/net46/lib/win32/x64/git2-1196807.pdb b/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/lib/net46/lib/win32/x64/git2-1196807.pdb
new file mode 100644
index 0000000..cf6a7f3
Binary files /dev/null and b/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/lib/net46/lib/win32/x64/git2-1196807.pdb differ
diff --git a/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/lib/net46/lib/win32/x86/git2-1196807.dll b/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/lib/net46/lib/win32/x86/git2-1196807.dll
new file mode 100644
index 0000000..07f8a08
Binary files /dev/null and b/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/lib/net46/lib/win32/x86/git2-1196807.dll differ
diff --git a/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/lib/net46/lib/win32/x86/git2-1196807.pdb b/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/lib/net46/lib/win32/x86/git2-1196807.pdb
new file mode 100644
index 0000000..f787569
Binary files /dev/null and b/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/lib/net46/lib/win32/x86/git2-1196807.pdb differ
diff --git a/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/package/services/metadata/core-properties/6a21f21b27db4ec1b2d8cdde4367bfc4.psmdcp b/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/package/services/metadata/core-properties/6a21f21b27db4ec1b2d8cdde4367bfc4.psmdcp
new file mode 100644
index 0000000..842594c
--- /dev/null
+++ b/Examples/BuildingScripts/tools/Addins/cake.git.0.18.0/package/services/metadata/core-properties/6a21f21b27db4ec1b2d8cdde4367bfc4.psmdcp
@@ -0,0 +1,9 @@
+
+
+ WCOM AB
+ Cake Git AddIn
+ Cake.Git
+ 0.18.0
+ Cake Script Build Git
+ NuGet, Version=4.6.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35;Microsoft Windows NT 6.2.9200.0;.NET Framework 4.6
+
\ No newline at end of file
diff --git a/Examples/BuildingScripts/hgversion.ps1 b/Examples/BuildingScripts/version.ps1
similarity index 67%
rename from Examples/BuildingScripts/hgversion.ps1
rename to Examples/BuildingScripts/version.ps1
index 566db87..cfdca2c 100644
--- a/Examples/BuildingScripts/hgversion.ps1
+++ b/Examples/BuildingScripts/version.ps1
@@ -4,25 +4,25 @@ function ReadCommitCountInBranch
)
{
- $hglog = (& hg log -r "branch('$branch')" --template "{node}\n" )
+ $gitlog = (& git log -r "branch('$branch')" )
- if ($hglog -eq $null)
+ if ($gitlog -eq $null)
{
return 0;
}else
{
- $commitCountInBranch = (& hg log -r "branch('$branch')" --template "{node}\n" | Measure-Object -line ).Lines
+ $commitCountInBranch = git rev-list --count $branch | Measure-Object -line ).Lines
return $commitCountInBranch ;
}
}
function ReadBranchName
{
- $branchName = (& hg branch).Trim()
+ $branchName = (& git branch).Trim()
return $branchName
}
function ReadCommitCount
{
- $count = (& hg id --num --rev tip).Trim()
+ $count = (& git rev-list --all --count).Trim()
return $count
}
@@ -33,7 +33,7 @@ function ReadIsLastTagCommit
{
Try
{
- $lasttag = (& hg log -r "branch('$branch') and last(tag('re:^r\d*'))" --template "{tags}\n").Trim()
+ $lasttag = (& git tag --list | sort -V | tail -1).Trim()
if($lasttag.Length -eq 0)
{
@@ -60,9 +60,9 @@ function CreateReleaseBranch
if( ($CurrentBranch -eq "develop") -And ( $CommitCountInBranch -eq 0) -And ( $LastTagCommit -ne "r0.0.0") )
{
- hg up $LastTagCommit
- hg flow release start $LastTagCommit
- hg push
+ git checkout $LastTagCommit
+ git checkout -b release/$LastTagCommit
+ git push -u origin release/$LastTagCommit
}
elseif($CurrentBranch.StartsWith("release/") )
{
@@ -74,8 +74,8 @@ function CreateReleaseBranch
$major,$minor,$rev = $LastTagCommit.split('.')
}
$rev = $rev/1 + 1
- hg tag "$major.$minor.$rev"
- hg push
+ git tag "$major.$minor.$rev"
+ git push
}
}
diff --git a/MicroservicesSDK/README.md b/MicroservicesSDK/README.md
index 61d47ee..384afa9 100644
--- a/MicroservicesSDK/README.md
+++ b/MicroservicesSDK/README.md
@@ -24,7 +24,7 @@ After that the new tag should be created and next the pushing code changes could
The required format of tag is "prerelease{{tag}}" where the tag is a version number X.X.X e.g.:
```
- hg tag prerelease1.1.0
+ git tag prerelease1.1.0
```
The next step is to start Jenkins' job - [Release](http://localhost:8081/view/C8Y-RELEASE/job/Docker-Cumulocity-Clients-CSharp-MicroserviceSdk-RELEASE)
diff --git a/MicroservicesSDK/build.cake b/MicroservicesSDK/build.cake
index acdb516..0206a6d 100644
--- a/MicroservicesSDK/build.cake
+++ b/MicroservicesSDK/build.cake
@@ -202,7 +202,7 @@ Task("CreateRelease")
var settings = new ProcessSettings
{
- Arguments = new ProcessArgumentBuilder().Append("hgversion.ps1 -local false")
+ Arguments = new ProcessArgumentBuilder().Append("version.ps1 -local false")
};
StartProcess("pwsh", settings);
diff --git a/MicroservicesSDK/check-commits.ps1 b/MicroservicesSDK/check-commits.ps1
index c2d6b75..8ccc074 100644
--- a/MicroservicesSDK/check-commits.ps1
+++ b/MicroservicesSDK/check-commits.ps1
@@ -17,12 +17,12 @@ New-Item $countCommitsFileName -ItemType file
Try
{
- $lines = (& hg log --template "{rev}\n" -r"prerelease$tag":: | measure-object -line).Lines
+ $lines = (& git tag --list 'prerelease'$tag :: | sort -V | measure-object -line).Lines
Write-Host "Lines $lines"
[int]$commits = $lines-2
if($commits -gt 0){
- #hg up "prerelease$tag"
+ #git checkout "prerelease$tag"
}else{
}
diff --git a/MicroservicesSDK/check-version.ps1 b/MicroservicesSDK/check-version.ps1
index 857c191..75bd838 100644
--- a/MicroservicesSDK/check-version.ps1
+++ b/MicroservicesSDK/check-version.ps1
@@ -4,14 +4,14 @@ function ReadCommitCountInBranch
)
{
- $commitCountInBranch = ((& hg log -b $branch --template "." ) | measure-object -line).Lines
+ $commitCountInBranch = ((& git rev-list --count $branch ) | measure-object -line).Lines
Write-Host "->>Branch name: $branch, ReadCommitCountInBranch: $commitCountInBranch"
return $commitCountInBranch;
}
function ReadBranchName
{
- $branchName = (& hg branch).Trim()
+ $branchName = (& git branch).Trim()
return $branchName
}
@@ -19,7 +19,7 @@ function ReadIsLastTagCommit
{
Try
{
- $lasttag = (& hg log -r "last(tag('re:prerelease\d*'))" --template "{tags}\n").Trim()
+ $lasttag = (& git tag --list 'prerelease*' | sort -V | tail -1).Trim()
if($lasttag.Length -eq 0)
@@ -64,9 +64,9 @@ function CreateReleaseBranch
if( ($CurrentBranch -eq "default") -And ( $CommitCountInBranch -eq 0) -And ( $LastTagCommit -ne "r0.0.0") )
{
- # hg up $LastTagCommit
- # hg flow release start $LastTagCommit
- # hg push
+ # git checkout $LastTagCommit
+ # git checkout -b release/$LastTagCommit
+ # git push -u origin release/$LastTagCommit
}
elseif($CurrentBranch.StartsWith("release/") )
{
@@ -80,8 +80,8 @@ function CreateReleaseBranch
$rev = $rev/1 + 1
- # hg tag "$major.$minor.$rev"
- # hg push
+ # git tag "$major.$minor.$rev"
+ # git push
}
}
diff --git a/MicroservicesSDK/create-hotfix.ps1 b/MicroservicesSDK/create-hotfix.ps1
index e6a48c9..b64cd5e 100644
--- a/MicroservicesSDK/create-hotfix.ps1
+++ b/MicroservicesSDK/create-hotfix.ps1
@@ -7,8 +7,8 @@ Param(
if($version)
{
$version = "$version"
- hg add
- hg commit -m "prepare hotfix $version"
- hg tag "$version"
- hg push -f
+ git add .
+ git commit -m "prepare hotfix $version"
+ git tag "$version"
+ git push -f
}
\ No newline at end of file
diff --git a/MicroservicesSDK/create-releasebranch.ps1 b/MicroservicesSDK/create-releasebranch.ps1
index e996f95..1e1ec4c 100644
--- a/MicroservicesSDK/create-releasebranch.ps1
+++ b/MicroservicesSDK/create-releasebranch.ps1
@@ -6,9 +6,9 @@ Param(
if($version)
{
- hg branch "$version"
- hg add
- hg commit -m "prepare release $version"
- #hg tag "$version"
- hg push -f
+ git branch "$version"
+ git add .
+ git commit -m "prepare release $version"
+ #git tag "$version"
+ git push -f
}
\ No newline at end of file
diff --git a/MicroservicesSDK/prerelease.ps1 b/MicroservicesSDK/prerelease.ps1
index 7f0b98a..9791bd7 100644
--- a/MicroservicesSDK/prerelease.ps1
+++ b/MicroservicesSDK/prerelease.ps1
@@ -19,5 +19,5 @@ param(
)
& ((Split-Path $MyInvocation.InvocationName) + "\bump-version.ps1") -mode "beta" -fixVersion "$fixVersion"
-(& hg tag "prerelease$fixVersion")
+(& git tag "prerelease$fixVersion")
diff --git a/MicroservicesSDK/src/Cumulocity.AspNetCore.Authentication.Basic/Cumulocity.AspNetCore.Authentication.Basic.csproj b/MicroservicesSDK/src/Cumulocity.AspNetCore.Authentication.Basic/Cumulocity.AspNetCore.Authentication.Basic.csproj
index 35cc718..d9f7657 100644
--- a/MicroservicesSDK/src/Cumulocity.AspNetCore.Authentication.Basic/Cumulocity.AspNetCore.Authentication.Basic.csproj
+++ b/MicroservicesSDK/src/Cumulocity.AspNetCore.Authentication.Basic/Cumulocity.AspNetCore.Authentication.Basic.csproj
@@ -8,7 +8,7 @@
https://avatars2.githubusercontent.com/u/3456374
https://bitbucket.org/m2m/cumulocity-sdk-cs/src/master/REST-SDK/
cumulocity.com
- hg
+ git
Basic authentication for Microservice SDK of Cumulocity.
https://bitbucket.org/m2m/cumulocity-sdk-cs/src/master/LICENSE.txt
true
diff --git a/MicroservicesSDK/src/Cumulocity.SDK.Microservices/Cumulocity.SDK.Microservices.csproj b/MicroservicesSDK/src/Cumulocity.SDK.Microservices/Cumulocity.SDK.Microservices.csproj
index c917f93..b807787 100644
--- a/MicroservicesSDK/src/Cumulocity.SDK.Microservices/Cumulocity.SDK.Microservices.csproj
+++ b/MicroservicesSDK/src/Cumulocity.SDK.Microservices/Cumulocity.SDK.Microservices.csproj
@@ -8,7 +8,7 @@
https://avatars2.githubusercontent.com/u/3456374
https://bitbucket.org/m2m/cumulocity-sdk-cs/src/master/REST-SDK/
cumulocity.com
- hg
+ git
Microservice SDK for C# help to develop microservices on top of Cumulocity.
https://bitbucket.org/m2m/cumulocity-sdk-cs/src/master/LICENSE.txt
true
diff --git a/MicroservicesSDK/hgversion.ps1 b/MicroservicesSDK/version.ps1
similarity index 87%
rename from MicroservicesSDK/hgversion.ps1
rename to MicroservicesSDK/version.ps1
index 09db676..641ff1f 100644
--- a/MicroservicesSDK/hgversion.ps1
+++ b/MicroservicesSDK/version.ps1
@@ -28,12 +28,12 @@ function ReadBuildProps
}
function ReadBranchName
{
- $branchName = (& hg branch).Trim()
+ $branchName = (& git branch).Trim()
return $branchName
}
function ReadCommitCount
{
- $count = (& hg id --num --rev tip).Trim()
+ $count = (& git rev-list --all --count).Trim()
return $count
}
@@ -41,7 +41,7 @@ function ReadIsLastTagCommit
{
Try
{
- $lasttag = (& hg log -r "last(tag('re:mssdkv\d*'))" --template "{tags}\n").Trim()
+ $lasttag = (& git tag --list 'mssdkv*' | sort -V | tail -1).Trim()
if($lasttag.Length -eq 0)
@@ -57,7 +57,7 @@ function ReadIsLastTagCommit
#function IsRepository
#{
# $currentDir = Get-Location
-# $dirPath = "$currentDir/.hg"
+# $dirPath = "$currentDir/.git"
# if(!(Test-Path -Path $dirPath )){
# return $false
@@ -67,13 +67,13 @@ function ReadIsLastTagCommit
function IsRepository
{
- $value = (& hg status);
+ $value = (& git status);
if($value -eq $null){
return $false;
}
- $string = ((& hg status).Trim() -split '\n')[0]
+ $string = ((& git status).Trim() -split '\n')[0]
if ( $string -contains '*abort:*') {
return $false;
diff --git a/jenkins/Jenkinsfile b/jenkins/Jenkinsfile
index 16bdca8..a4bcb34 100644
--- a/jenkins/Jenkinsfile
+++ b/jenkins/Jenkinsfile
@@ -33,7 +33,7 @@ pipeline {
if ("${params.CAN_RELEASE}" == "true" && env.BRANCH_NAME == "develop") {
echo "CAN_RELEASE: ${params.CAN_RELEASE}"
- sshagent (['jenkins-hg-key']) {
+ sshagent (['jenkins-master-key']) {
sh '''#!/bin/bash
whoami
chmod +x ./MicroservicesSDK/build.sh
@@ -76,7 +76,7 @@ pipeline {
echo "Release Branch"
- sshagent (['jenkins-hg-key']) {
+ sshagent (['jenkins-master-key']) {
sh '''#!/bin/bash
whoami
chmod +x ./MicroservicesSDK/build.sh
@@ -90,7 +90,7 @@ pipeline {
{
echo "Release Branch"
- sshagent (['jenkins-hg-key']) {
+ sshagent (['jenkins-master-key']) {
sh '''#!/bin/bash
whoami
chmod +x ./MicroservicesSDK/build.sh
diff --git a/jenkins/scripts/status.sh b/jenkins/scripts/status.sh
index 0ee515a..02e4827 100644
--- a/jenkins/scripts/status.sh
+++ b/jenkins/scripts/status.sh
@@ -2,7 +2,7 @@
function update-status {
- commitId=${MERCURIAL_REVISION}
+ commitId=${GIT_REVISION}
status=${1}
name=${2}
key=$( echo $3 | rev | cut -c -40 | rev )