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 )