Ich libgit2sharp
verwenden, um Dateien in einem Repository zu drücken, sobald sie erzeugt wurden.libgit2sharp - Git - nicht schieben Nicht-fastforwardable Referenz
using (var repo = new Repository(RepositoryPath))
{
// Stage the file
Commands.Stage(repo, "*");
// Create the committer's signature and commit
Signature author = new Signature("translator", "example.com", DateTime.Now);
Signature committer = author;
// Commit to the repository
Commit commit = repo.Commit($"Resx files updated {DateTime.Now}", author, committer);
Remote remote = repo.Network.Remotes["origin"];
var options = new PushOptions
{
CredentialsProvider = (_url, _user, _cred) =>
new UsernamePasswordCredentials
{
Username = _settings.GitUserName,
Password = _settings.GitPassword
}
};
repo.Network.Push(remote, @"refs/heads/master", options);
}
Dies ist seit einiger Zeit groß gearbeitet und drängt, ohne Frage zu der Verwahrungsstelle, aber ich bin jetzt die folgende Fehlermeldung für einige Dateien bekommen und die Push tritt nicht für alle Dateien.
Fehlermeldung (von Server-Log):
Message: cannot push non-fastforwardable reference
StackTrace: at LibGit2Sharp.Core.Ensure.HandleError(Int32 result)
at LibGit2Sharp.Core.Proxy.git_remote_push(RemoteHandle remote, IEnumerable`1 refSpecs, GitPushOptions opts)
at LibGit2Sharp.Network.Push(Remote remote, IEnumerable`1 pushRefSpecs, PushOptions pushOptions)
at LibGit2Sharp.Network.Push(Remote remote, String pushRefSpec, PushOptions pushOptions)
at Westwind.Globalization.Core.Utilities.DbResXConverter.SyncToGit(String resourceSet)
Ich habe Fehler gesucht, aber kann nichts finden, dass dies deckt? Auch als das Repository auf einem Azure Web-Server saß wird gehe ich davon aus ich würde jede Git-Befehle über libgit2sharp C# Code ausgeführt haben, da ich nicht Berechtigungen würde Kommandozeile Git-Befehle auszuführen.
Jede Hilfe zu diesem sehr geschätzt.