【发布时间】:2014-05-01 00:58:00
【问题描述】:
我正在尝试使用 libgit2sharp 推送到我在 bitbucket 上的存储库。我正在尝试这样做:
repo.Network.Push(repo.Branches[branchName], pushOptions);
一切似乎都很好,没有抛出异常,回调中也没有错误,但是当我检查 bitbucket 时,我的提交都不存在。其他方法似乎工作正常(即我可以在 bitbucket 上创建一个新分支,然后使用 libgit2sharp 获取并查看我现在在本地拥有该分支)。这里有什么我可能会遗漏的吗?
编辑:
试图只制作一个小示例程序,看看我是否可以让这个工作不成功。我不知道我的代码是否有帮助,但这里是:
class Program
{
static void Main(string[] args)
{
PushOptions options = new PushOptions();
Credentials creds = new Credentials();
creds.Username = "username";
creds.Password = "password";
options.Credentials = creds;
options.OnPackBuilderProgress = Program.packBuilderProgressHandler;
options.OnPushTransferProgress = Program.pushTransferProgressHandler;
options.OnPushStatusError = Program.pushStatusErrorHandler;
Repository repo = new Repository("E:/Ohad/Work/libgitTest");
repo.Network.Push(repo.Branches["origin/master"], options);
Console.WriteLine("Press enter to close...");
Console.ReadLine();
}
public static bool packBuilderProgressHandler(PackBuilderStage stage, int current, int total)
{
Console.Out.WriteLine("packBuilder => " + current + " / " + total);
return true;
}
public static bool pushTransferProgressHandler(int current, int total, long bytes)
{
Console.Out.WriteLine("pushTransfer => " + current + " / " + total + " , " + bytes);
return true;
}
public static void pushStatusErrorHandler(PushStatusError error)
{
Console.Out.WriteLine("error => " + error.Message);
}
}
只需在 bitbucket 上创建一个新的 repo 并添加上面的代码(更改硬编码的内容),它应该是可重现的。我只是做了一个随机更改,添加并提交它,然后使用程序尝试推送到 bitbucket。我从上面得到的输出是:
pushTransfer => 0 / 0 , 12
pushTransfer => 0 / 0 , 32
Press enter to close...
0/0 对我来说看起来很可疑,但我不知道我做错了什么 =/。谢谢你的帮助!!
编辑 2: 我刚刚添加了这个:
repo.Branches.Update(repo.Head, delegate(BranchUpdater updater)
{
updater.Remote = "origin";
updater.UpstreamBranch= repo.Head.CanonicalName;
})
在我推送之前,它解决了问题。不知道具体原因,但我会接受 =)。
【问题讨论】:
-
如果没有复制代码和无法使用的存储库,恐怕很难解决您的问题。
-
nulltoken 上述任何一项有帮助吗?谢谢=)
标签: c# git libgit2sharp