问题标签 [libgit2sharp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4380 浏览

c# - 无法加载 DLL 'git2.dll' 找不到指定的模块

我正在尝试在网络项目中使用libgit2sharp 。问题是 libgit2sharp 的解决方案是针对 VS2010 的,而我使用的是 VS2008。所以我不得不创建一个新的解决方案并修改代码不使用默认参数。这不是问题,除了当我尝试使用已编译的 libgit2sharp DLL 时出现标题中列出的异常。

我已经尝试在 git2.dll 中进行链接,但这并没有帮助。将 git2.dll 复制到网络项目中也没有帮助。

编辑:该问题已在 LibGit2Sharp 问题跟踪器中处理:https ://github.com/libgit2/libgit2sharp/issues/39

0 投票
2 回答
720 浏览

git - 如何检索子模块的状态?

我在使 libgit2sharp / libgit2 与 git 子模块一起工作时遇到了困难。

我有 git 存储库,其中有几个项目作为子模块链接到存储库中的文件夹。Git 和 GitHub 可以很好地识别它们,但是当我尝试通过 libgit2sharp / libgit2 检索这些文件夹状态时,会引发异常。它说“无法确定文件'[文件名]'的状态。提供的路径指向一个文件夹,而不是一个文件”

libgit2 应该为子模块文件夹提供状态吗?他们有地位吗?目前我只是跳过对这些项目状态的查询,但觉得它不正确。

非常感谢您的帮助!

0 投票
3 回答
4843 浏览

git - 如何检索文件的历史记录?

我遇到了另一个 libgit2 问题,非常感谢您的帮助。

我正在尝试检索文件历史记录,即更改此文件的提交列表。而且它似乎非常不合常规......据我所知,没有任何功能。

我能想出的唯一方法是使用修订遍历 API 来遍历修订,检查附加到提交的树对象并在那里搜索给定文件,如果找到,将提交添加到我的列表中,否则继续下一次提交。

但它看起来对我来说不是最优的......

可能有没有其他方法,例如,直接查看.git文件夹并在那里获取所需的信息?

提前谢谢了!

0 投票
1 回答
420 浏览

asp.net-mvc - GIT 在克隆和推送时使用哪些 HTTP 协议?

我正在尝试使用 LibGit2Sharp 库来响应基本的 GIT 命令,例如使用 ASP.MVC 进行克隆和推送,但不确定我应该如何设置我的控制器以做出相应的响应。

克隆推送时 GIT 是否会发起 HTTP GET 和 POST 请求?如果我的控制器设置为

谢谢

0 投票
1 回答
7179 浏览

c# - Git 存储库内部格式说明

有没有关于 Git 如何在他的存储库中存储文件的文档?我正在尝试通过 Internet 进行搜索,但没有可用的结果。也许我使用了不正确的查询,或者这是一个很大的秘密——Git 存储库内部格式?

让我解释一下,为什么我需要这个火箭科学信息:我正在使用 C# 获取文件历史表单存储库。但在libgit2sharp图书馆中,目前尚未实施。所以(作为一个负责任的人;)我需要自己实现这个功能并为社区做出贡献。

但是在将内核源代码移动到 github 之后,我什至不知道从哪里开始搜索。

提前谢谢了!

0 投票
1 回答
1509 浏览

c# - 如何使用 LibGit2Sharp 从 Git 存储库中获取文件二进制数据?

由于不再积极维护 GitSharp,我决定尝试将我的项目从使用 GitSharp 迁移到 LibGit2Sharp。使用 GitSharp,我可以访问在给定分支的情况下签入我的仓库的任何文件的原始字节。我找不到任何有关如何使用 LibGit2Sharp 完成此操作的文档或示例代码。

有人可以给我和如何做到这一点的例子吗?

0 投票
2 回答
418 浏览

c# - 如何将 TreeEntry 添加到 Commit 的 Tree 集合中?

如果我有一个裸存储库,并且我想从中添加、编辑和删除文件,我该如何使用 LibGit2Sharp 执行此操作?

我看到每个 Commit 都有一个包含 TreeEntry 对象的 Tree 对象。是否可以添加、编辑和删除这些 TreeEntry(s)?如果是这样,该指数是否会反映这些变化正在等待并需要进行?

谢谢!

0 投票
1 回答
5377 浏览

git - 使用 libgit2sharp 获取提交与其父级之间的更改

我正在使用 libgit2sharp(libgit2 的 C# 包装器)并且一直遇到问题,因为它没有很多我希望的功能(希望我能尽快为它做出贡献;这似乎是一个非常有用的项目)

我现在要做的事情是获取从特定提交及其父项更改的文件列表。我不会试图弄清楚合并及其两个父级之间发生了什么变化。我对定期提交更感兴趣。

这些人(https://github.com/libgit2/libgit2sharp/issues/89)正在做类似的事情。我认为他们的程序是一个合理的想法,但我对 GIT 内部的理解有点弱(最终用户的 GIT 指南有很多指南,但内部结构没有那么多)

我很好奇 GIT 本身是如何执行“git diff”命令的。假设 GIT 实际上并不存储增量,而是文件的完整版本(如果它未更改,它只会指向现有的 SHA。可以从各种来源找到此信息,例如这里http://xentac.net/2012/01 /19/the-real-difference-between-git-and-mercurial.html)。这似乎使两个提交之间的更改变得更加困难(在我的情况下是一个特定的提交及其单亲),因为数据不是作为提交的一部分存储的(如果您检查 libgit2sharp 的 Commit.cs 中的 Commit 类,这一点很清楚文件)。

我可以从提交中访问的是树。执行以下操作来查找此信息是否有意义:

1)从所需的提交开始,沿着树向下走,并将所有 SHA 值存储在一个集合中。

2) 从父级开始进行所需的提交,然后沿着其树向下走,将其所有 blob SHA 值存储在另一个集合中。

3) 更改文件的 SHA 将是不在两组交集的文件。

我用这种方法看到的问题是它看起来没有办法从 blob 的 SHA 值中获取文件名(我在 libgit2sharp 的 Blob.cs 文件中没有看到任何可以做到这一点的东西)。

我知道这个问题有很多方面,但它们是从 git 获取特定数据的大目标的一部分。

谢谢。

0 投票
3 回答
3836 浏览

c# - 在 LibGit2Sharp 中找出提交所属的分支?

我正在循环提交LibGit2Sharp

我可以检索和之类的属性AuthorMessage但我看不到它属于哪个分支?理想情况下,我希望有一个指向分支对象的指针,但在这种情况下,即使是名称也可以。

这是调试器显示的内容:

在此处输入图像描述

这就是我要找的:

在此处输入图像描述

TortoiseGit 显示最相关分支名称的行为:

在此处输入图像描述

示例存储库:https ://docs.google.com/open?id=0B-3-X85VysdNcmZIaGVTSDZSenVGbTJxYlI2SUlsZw

0 投票
1 回答
225 浏览

git - 是否可以使用 libgit2 将文件的一部分添加到 Git 索引?

我正在使用 libgit2,实际上是 libgit2sharp,有没有办法添加类似于add -pCLI 中的文件的部分内容?

我没有从文档中找到任何东西:http: //libgit2.github.com/libgit2/#HEAD/group/index