Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

'LibGit2Sharp.NotFoundException: the ProgramData file 'config' doesn't exist' when pushing on MacOS #2156

Open
@SamirKharchi

Description

Hello,

I am facing this issue on MacOS 15.4.1 Sequoia, Apple M2.

I am trying to push some changes I made, to the remote location but I get the following exception thrown when pushing (cloning and committing the changes obviously worked fine).

There is a .gitconfig in my user home directory with the according user.name & user.email section key value pairs.
Additionally I update the local /.git/config file with these information and manually checked that the file is actually updated.

Is this a bug? And if so, is it related to #2046?

But the more pressing question is, how can I workaround this issue?

Here is the stack trace, saying the config file cannot be found in the program data (which obviously is a windows related naming):

LibGit2Sharp.NotFoundException: the ProgramData file 'config' doesn't exist: 
 at LibGit2Sharp.Core.Ensure.HandleError(Int32 result) in /_/LibGit2Sharp/Core/Ensure.cs:line 154
 at LibGit2Sharp.Core.Ensure.ZeroResult(Int32 result) in /_/LibGit2Sharp/Core/Ensure.cs:line 172
 at LibGit2Sharp.Core.Proxy.git_config_add_file_ondisk(ConfigurationHandle config, FilePath path, ConfigurationLevel level, RepositoryHandle repo) in /_/LibGit2Sharp/Core/Proxy.cs:line 449
 at LibGit2Sharp.Configuration.Init(Repository repository) in /_/LibGit2Sharp/Configuration.cs:line 75
 at LibGit2Sharp.Configuration..ctor(Repository repository, String repositoryConfigurationFileLocation, String globalConfigurationFileLocation, String xdgConfigurationFileLocation, String systemConfigurationFileLocation) in /_/LibGit2Sharp/Configuration.cs:line 49
 at LibGit2Sharp.Repository.<>c__DisplayClass25_1.<.ctor>b__3() in /_/LibGit2Sharp/Repository.cs:line 220
 at System.Lazy`1[[LibGit2Sharp.Configuration, LibGit2Sharp, Version=0.31.0.0, Culture=neutral, PublicKeyToken=7cbde695407f0333]].ViaFactory(LazyThreadSafetyMode mode)
 at System.Lazy`1[[LibGit2Sharp.Configuration, LibGit2Sharp, Version=0.31.0.0, Culture=neutral, PublicKeyToken=7cbde695407f0333]].ExecutionAndPublication(LazyHelper executionAndPublication, Boolean useDefaultConstructor)
 at System.Lazy`1[[LibGit2Sharp.Configuration, LibGit2Sharp, Version=0.31.0.0, Culture=neutral, PublicKeyToken=7cbde695407f0333]].CreateValue()
 at System.Lazy`1[[LibGit2Sharp.Configuration, LibGit2Sharp, Version=0.31.0.0, Culture=neutral, PublicKeyToken=7cbde695407f0333]].get_Value()
 at LibGit2Sharp.Repository.get_Config() in /_/LibGit2Sharp/Repository.cs:line 323
 at LibGit2Sharp.Branch.UpstreamBranchCanonicalNameFromLocalBranch() in /_/LibGit2Sharp/Branch.cs:line 181
 at LibGit2Sharp.Branch.get_UpstreamBranchCanonicalName() in /_/LibGit2Sharp/Branch.cs:line 155
 at LibGit2Sharp.Network.Push(IEnumerable`1 branches, PushOptions pushOptions) in /_/LibGit2Sharp/Network.cs:line 327
 at LibGit2Sharp.Network.Push(Branch branch, PushOptions pushOptions) in /_/LibGit2Sharp/Network.cs:line 299
 at versioning.MainPageViewModel.CommitAndPushVersionChanges(String repository, String branch, String jiraIssue, String username, String token, String version)

Here is my code to update the local config file:

private static Configuration BuildConfuration(string repositoryLocation, string username, string email) Configuration.BuildFrom(repositoryLocation + "/.git/config", userHomeFolder() + "/.gitconfig");
 configuration.Add("user.name", username);
 configuration.Add("user.email", email, ConfigurationLevel.Local);

Here is the code that produces the exception:

private static void CommitAndPushVersionChanges(string repository, string branch, string email, string username, string token)
{
 using var repo = new Repository(repository);
 // Stage the file
 repo.Index.Add("a.txt");
 repo.Index.Write();
 var configuration = BuildConfiguration(repository, username, email);
 var author = configuration.BuildSignature(DateTimeOffset.Now);
 // Commit & Push to the repository
 repo.Commit($"Commit Message", author, author);
 
 var options = new PushOptions
 {
 CredentialsProvider = (_, _, _) =>
 new UsernamePasswordCredentials
 {
 Username = "x-token-auth",
 Password = token
 }
 };
 // EXCEPTION IS THROWN FOR THIS CALL
 repo.Network.Push(repo.Branches[branch], options);
}

Can anybody help?

Cheers
Samir

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

        AltStyle によって変換されたページ (->オリジナル) /