标签: libgit2sharp

用libgit2sharp推送到bitbucket

我正在尝试使用libgit2sharp推送到我在bitbucket上的回购。我正在尝试这样做:

repo.Network.Push(repo.Branches[branchName], pushOptions);
Run Code Online (Sandbox Code Playgroud)

一切似乎都很好,没有异常抛出,并且回调中没有错误,但是当我检查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 …
Run Code Online (Sandbox Code Playgroud)

c# git libgit2sharp

4
推荐指数
1
解决办法
1939
查看次数

删除git存储库

考虑以下计划:

var path = Path.Combine(
    Path.GetTempPath(),
    Path.GetFileNameWithoutExtension(Path.GetRandomFileName()));
Directory.CreateDirectory(path);

var testFile = Path.Combine(path, "test.txt");
File.WriteAllText(testFile, "Test file");

var source = Repository.Init(path);

using (var repository = new Repository(source))
{
    repository.Index.Add("test.txt");
}

Directory.Delete(path, true); 
Run Code Online (Sandbox Code Playgroud)

在删除存储库文件夹时,我得到了UnauthorizedAccessException- 拒绝访问其中一个内部git文件.为了删除文件夹,还有什么我应该处理的吗?

c# git libgit2sharp

4
推荐指数
1
解决办法
768
查看次数

如何提交到裸仓库?

我正在编写一个用于保险丝(Linux)的git包装器,以访问git存储库,如普通文件和目录。

访问用于分支,标签和提交的文件夹和文件效果很好,但是提交文件时出现奇怪的行为。

我做以下样式:

  • 从流(磁盘上的临时文件)创建新的Blob
  • 创建一个新的TreeDefinition
  • 创建一个新的树
  • 在ObjectDatabase中创建一个新的提交
  • 将分支引用更新为新提交

之后,我更新了分支引用,我仅查看更新的文件,而没有其他任何信息!

这里有代码

        String referenceName = null;
        IEnumerable<Commit> parentCommit = null;

        // Riposiziona il puntatore dello stream all'inizio
        openedHandle.Stream.Seek(0, SeekOrigin.Begin);

        // Crea il blob
        Blob blob = this.repository.ObjectDatabase.CreateBlob(openedHandle.Stream);

        // Acquisisce la path rimuovendo le prime due parti della path
        List<string> pathParts = new List<string>(openedHandle.Path.Split('/'));
        pathParts.RemoveRange(0, 3);

        // Inserisce il blob in un tree
        TreeDefinition treeDefinition = new TreeDefinition();
        treeDefinition.Add(String.Join("/", pathParts), blob, Mode.NonExecutableFile);
        Tree tree = this.repository.ObjectDatabase.CreateTree(treeDefinition);

        // Inizializza l'autore ed il commiter
        Signature …
Run Code Online (Sandbox Code Playgroud)

linux git mono libgit2 libgit2sharp

3
推荐指数
1
解决办法
362
查看次数

如何用 libgit2sharp 做'git add *'?

我有一个外部进程,它将更改应用于最初通过 libgit2sharp 克隆的本地 Git 存储库的文件部分。我想执行 - 通过 libgit2sharp - 命令的等价物git add *,然后是git commit -m "Hello World". 该Repository课程的文档很少涉及这一点。

怎么做到呢?

.net git libgit2sharp

3
推荐指数
2
解决办法
1667
查看次数

如何向 Fetch() 和 Pul() 方法提供凭据?

我正在寻找一个关于如何使用lidgit2sharp 进行拉动的漂亮干净示例。我在这里举了一个执行获取的示例,但是对凭据的引用引发了异常。

using (var repo = new Repository(workingDir, null))
{
    Remote remote = repo.Network.Remotes.Add("master", repoUrl);
    repo.Network.Fetch(remote, 
    {    
        Credentials credentials = new Credentials
        {
            Username = "username",
            Password = "password"
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

例外是无法创建抽象类或接口“LibGit2Sharp.Credentials”的实例

libgit2sharp

3
推荐指数
1
解决办法
3644
查看次数

libgit2sharp 可以依赖已安装的 git 全局配置提供程序吗?

我正在将一些 LibGit2Sharp 代码连接到 VSO,因此我需要使用备用凭据来访问它。(NTLM 不起作用)我不想管理这些明文凭据 - 我已经在使用 git-credential-winstore 来管理它们,如果我需要更新这些凭据,我很高兴登录该框信用。

我看到我可以传入 DefaultCredentials 和 UsernamePassword 凭据 - 有什么方法可以让它从机器上已经配置的全局 git cred 存储中获取凭据?

libgit2sharp

3
推荐指数
1
解决办法
502
查看次数

如何在LibGit2Sharp中使用新的CredentialsProvider?

我通过以下方式使用LibGit2Sharp.Credentials类一段时间:

LibGit2Sharp.Credentials credentials = new UsernamePasswordCredentials()
{
       Username = TokenValue,
       Password = ""
};

var pushOptions = new PushOptions() { Credentials = credentials} ;
Run Code Online (Sandbox Code Playgroud)

现在LibGit2Sharp.PushOptions.Credentials是绝对的,我必须使用CredentialsProvider.

我想问你CredentialsProvider在这种情况下使用的正确方法是什么?

非常感谢你!

git github libgit2sharp

3
推荐指数
1
解决办法
2722
查看次数

使用libgit2sharp中止git merge

在libgit2sharp中,我正在为上游分支进行提取和合并,我希望能够中止合并,类似于:

git merge --abort

当MergeStatus是:

LibGit2Sharp.MergeStatus.Conflicts

目前是否可以使用(使用v.0.20.1)?如果没有,是否有人知道实现这样的东西需要什么?

libgit2sharp

3
推荐指数
1
解决办法
419
查看次数

LibGit2Sharp 相当于 git diff --stat

我正在寻找一种方法来捕获我的工作目录中每个文件中有多少行发生了变化 - 就像git diff --stat在 git 中一样 - 有没有办法用 LibGit2Sharp 做到这一点?

我知道我可以从补丁中获得总 LinesAdded/Deleted,但我想知道一个文件一个文件。

libgit2 libgit2sharp

3
推荐指数
1
解决办法
1001
查看次数

LibGit2Sharp 和身份验证 UI

我正在使用 LibGit2Sharp 向应用程序添加许多 Git 操作。我添加了 来Microsoft.Alm.Authentication帮助进行身份验证和凭证管理器访问。它非常适合检索已从命令行输入的凭据。

但是,有什么方法可以连接到凭据管理器的登录 UI,提示输入 Github、BitBucket 和 VSTS 的用户名和密码。此 UI 会从命令行自动弹出,但在使用 LibGit2Sharp 时不会触发。

我查看了 Github 上的 GitCredentialManager 项目,我可以看到提供 UI 的组件,但在尝试弄清楚如何显式挂钩这些组件之前,我是否遗漏了一些方法,即这是作为Microsoft.Alm.Authentication(或相关包)?或者有人可以指出如何最好地将其连接起来的示例或指南吗?

c# authentication libgit2sharp credential-manager

3
推荐指数
1
解决办法
2901
查看次数