问题标签 [libgit2]

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 回答
556 浏览

c# - 限制在 LibGit2Sharp 中查询的提交数量?

我正在做一个循环:

它工作正常,但有没有办法可以限制结果的数量?例如,我想获得最新的 100 个提交,而忘记旧的。

0 投票
2 回答
486 浏览

git - How to achieve `git rm --cached` and `git rm -f`with LibGit2Sharp?

1) I tried using repo.Index.Remove(item.Filename);, but it's giving me:

Additional information: Unable to remove file 'file.txt'. Its current status is 'Modified'.

I need to find a way to do git rm file.txt -f (i.e. force removal).

2) I need a way to do git rm file.txt --cached so that the file is only removed from the repository (staged for removal), but still keeping it in the filesystem. Is there a way to do this in LibGit2Sharp?

3) Is it OK to call repo.Index.Remove() if the given path has never been part of the repository (i.e. the file is untracked)?

0 投票
2 回答
2677 浏览

c - 使用 libgit2 进行 Git 结帐

这个问题是我之前的问题的演变或解决方案:Clone a git repo (indepth)我认为在这种情况下创建一个新问题是最好的做法,但我可能错了。

这很简单:我将如何做git checkout masterlibgit2相当的事情

一年前似乎不可能:https ://github.com/libgit2/libgit2/issues/247 据此,至少 5 个月前可以进行克隆。但我从未见过任何关于如何做到这一点的代码文档示例。(编辑)我的意思是我没有看到任何关于包含完整克隆的信息git checkout,也没有看到任何关于结帐的代码/文档。

0 投票
1 回答
159 浏览

c# - 如何在查询 refs 时排除 stash?

我正在尝试查询提交:

否则没关系,但它也会返回 stash。我怎样才能排除藏匿处?我知道,当我遍历结果时,我猜我可以忽略它们,但是我不会像我想要的那样拥有 100 个。

0 投票
2 回答
852 浏览

c# - 如何恢复提交?

我尝试查看 LibGit2Sharp 中的每个对象,但我无法找到恢复特定提交的方法。是否可以恢复 LibGit2Sharp 中的提交或尚未撤消?

我本来会期待类似的repo.Revert(commit.Sha),甚至可能是commit.Revert().

也许可以通过对更改进行差异来实现这一点,并手动创建一个 blob 并提交它?

0 投票
1 回答
161 浏览

c# - 比较磁盘上的文件和 Head 上的相应版本?

我将如何在磁盘上的文件和 HEAD 上的相应版本之间进行比较?

我试过了:

DiffTarget.Index仅区分索引和头部树之间的变化。这很好,但我还想要一种方法来检索工作副本和树之间的更改。这可能吗?

我怎么能将差异限制在某个文件上——而不是整个索引?

0 投票
2 回答
1311 浏览

c# - 遍历 LibGit2Sharp 中的差异变化

TreeChanges在 LibGit2Sharp中迭代的最佳(如高性能、简单)方法是什么?

如果我访问该.Patch属性,我会检索更改的全文。这对我来说还不够……理想情况下,我希望能够遍历 diff 行,并且每行检索行的状态(修改、添加、删除)并从中构建我自己的输出。

更新:

假设我想建立自己的差异输出。我想做的是迭代更改的行,在迭代期间我会检查更改的类型(添加、删除),并构造我的输出。

例如:

以上只是一个简单的例子,我正在寻找什么样的灵活性。能够通过更改,并根据行更改类型运行一些逻辑。该Patch属性已经“构建”,一种方法是解析它,但库首先构建输出然后我解析它似乎很愚蠢......我宁愿直接使用构建成分。

我需要这种功能,以便我可以显示更改的视觉差异,这涉及比我上面给出的简单示例更多的代码和逻辑。

0 投票
1 回答
483 浏览

c# - 如何使用 LibGit2Sharp 部分暂存文件?

我已提交此文件:

foo.txt

现在我将其修改为:

我跑git add . && git diff --cached foo.txt了,这就是我得到的:

假设我现在想line 1.5从索引中删除并保留line 2.5,我将如何使用 LibGit2Sharp 执行此操作?

这也可以反过来问:如何将部分文件添加到索引?我正在寻找某种程序化版本的git add -p.

0 投票
1 回答
302 浏览

c# - 使用父引用

我正在使用 libgit2sharp,我想获得一个Commit代表类似HEAD~10. 我试过repo.Lookup("HEAD~10")了,但这不起作用:

LibGit2Sharp.LibGit2Exception:libgit2 引发错误。类 = GITERR_REFERENCE (-1)。
给定的参考名称   在 LibGit2Sharp.Repository.Lookup(String shaOrReferenceName, GitObjectType type, LookUpOptions lookUpOptions   的 LibGit2Sharp.ReferenceCollection.Resolve[T](String name)的
  LibGit2Sharp.Core.Ensure.Success(Int32 result, Boolean allowPositiveResult) )   在 libgit2Sharp.Repository.Lookup(String shaOrReferenceName, GitObjectType type)   在 libgit_tmp.Program.Main(String[] args)



我意识到我可以通过类似下面的代码来做同样的事情,但如果我能以这种方式指定引用,我仍然更喜欢它。有什么办法吗?如果不是,是 libgit2sharp 还是 libgit2 的限制?

0 投票
4 回答
8334 浏览

python - 为什么我缺少 git2.h 以及如何取回它?

每次尝试设置 pygit2 时,我都会遇到一个奇怪的问题。以下是我运行的内容和生成的错误。

我想我已经成功安装了 libgit2(构建和制作完成得很好)。也许这是一个路径问题?我已将 LIBGIT2 环境变量设置为 libgit2 文件夹中的 src 目录。那是正确的地方吗?