libgit2sharpが直接実装していないことを理解している「プル」コマンドを実装しようとしています。リモートから取得してからマージする必要があることを理解しています。次のコードを思いつきました:
this._repo = new Repository(workingDir);
Credentials credentials = new Credentials() {Username = this._username, Password = this._password};
Remote remote = this._repo.Network.Remotes["origin"];
FetchOptions fetchOptions = new FetchOptions();
fetchOptions.Credentials = credentials;
var branch = @"refs/heads/TestBranch:refs/remotes/origin/TestBranch";
this._repo.Network.Fetch(remote, new string[] { branch }, fetchOptions);
//this._repo.Fetch(this._repo.Head.Name);
//this._repo.Fetch(remote.Name, fetchOptions);
//this._repo.Network.Fetch(remote, fetchOptions); //this._repo.Network.Remotes["origin"], new FetchOptions() { Credentials = new Credentials() { Password = this._password, Username = this._username }});
私が試した Fetch の他のすべてのバリエーションを示すためにコメントを残しましたが、何を試しても常に同じエラーが発生します。
An error was raised by libgit2. Category = NoMemory (User).
Out of memory
このエラーを回避できたのは、資格情報を入力せずに 401 リターン コードを受け取ったときだけでした。
これは HTTPS 経由でリモートの BitBucket アカウントを使用しています。BitBucket でremote
エントリに含まれるユーザー名に関連する同様の問題が 1 つ見つかりましたが、これは修正されるはずでしたが、とにかくユーザー名を削除しても機能しませんでした。