Push fails with "No error message has been provided by the native library" when trying to push large files

Offen
#2,012 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Anfängerfreundlichkeit
35/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Veraltet
Tech-Stack
csharp, git
Bereich
devtools

Rechercherichtung

Reproduziere den Fehler, indem du ein Repository klonst, eine ungefähr 18 MB große JSON-Datei erstellst, sie committest und auf 0.27.0-preview-0182 repo.Network.Push mit den angegebenen PushOptions aufrufst; vergleiche dieselben Schritte mit der neuesten stabilen Version. Verfolge die Einstiegspunkte von Repository und repo.Network.Push und ermittle, ob die Regression in der Push-Verarbeitung oder in der nativen Fehlerberichterstattung liegt; abgeschlossen ist die Aufgabe, wenn der Push der großen Datei erfolgreich ist oder einen nützlichen, umsetzbaren Fehler meldet.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

I am not able to push large files to origin with pre-release 0.27.0-preview-0182. The same code worked with latest stable release
Ending up with exception and message: "No error message has been provided by the native library"
Tried to push a new json file which is 18MB large.
I did not check what file size is the breaking point, but if needed can try to investigate that too.

Adding reproduction steps with snippets of my code, hope this is enough, otherwise please ask for more.

Reproduction steps
  1. Clone repository and create branch
Repository.Clone(githubRepoUrl, $"./{folderName}", 
  new CloneOptions { CredentialsProvider = _gitHubClientWrapper.CredentialsProvider() });

using (var repo = new Repository($"./{folderName}"))
{
  repo.CreateBranch(newBranchName);
}
  1. Create large file. I just generated a large list of objects serialized into json. Got around 18mb of json file.
  2. Commit and push the branch to origin
using (var repo = new Repository($"./{folderName}"))
{
	Branch branch = repo.Branches[newBranchName];
	Commands.Checkout(repo, branch);
	Commands.Stage(repo, "*");
	Signature committer = new Signature("Github bot", "@bot", DateTime.Now);

	try
	{
		repo.Commit("Comit message", committer, committer);
		Remote remote = repo.Network.Remotes["origin"];
		repo.Branches.Update(branch, b => b.Remote = remote.Name, b => b.UpstreamBranch = branch.CanonicalName);
		repo.Network.Push(branch, new PushOptions
		{
			CredentialsProvider = _gitHubClientWrapper.CredentialsProvider(),
		});

	}
	catch (EmptyCommitException)
	{
		_logger.LogInformation("There's nothing to commit.");
		return;
	}
}
Expected behavior

Push is successful.

Actual behavior

Push fails with exception and message "No error message has been provided by the native library"

Version of LibGit2Sharp (release number or SHA1)

0.27.0-preview-0182

Operating system(s) tested; .NET runtime tested

Windows11, .NET 7

Vorherrschende Sprache
C#
Sterne
3.5k
Forks
925
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus libgit2/libgit2sharp

Alle Issues in libgit2/libgit2sharp

Ähnliche Issues

Weitere Issues zu C#

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.