问题标签 [jgit]

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 投票
7 回答
14586 浏览

java - 如何在 JGit 中“cat”一个文件?

不久前,我在寻找一个可嵌入的 Java 分布式版本控制系统,我想我在JGit中找到了它,它是 git 的纯 Java 实现。但是,示例代码或教程的方式并不多。

如何使用 JGit 检索某个文件的 HEAD 版本(就像svn cathg cat应该这样做)?

我想这涉及一些 rev-tree-walking 并且正在寻找代码示例。

0 投票
3 回答
11388 浏览

java - 从远程 git 存储库获取单个文件

有没有办法用 Java 以编程方式从远程 git 存储库下载单个文件?

  1. 我更喜欢使用尽可能少的带宽的解决方案,最好只下载单个文件。我不需要浏览存储库,我已经有了文件的路径。
  2. 我更喜欢不依赖于其他应用程序的解决方案(例如在机器上安装另一个 git 客户端)。包含 git 客户端实现本身的 Java 库将是最佳选择。

我能够使用SVNKit对 Subversion 做类似的事情,我已经看到有一个纯 java 的 git 实现(eclipse 的 JGit)可能能够做类似的事情,所以我希望有一个肯定的答案;尽管根据我对 git 工作原理的了解——只允许从本地存储库进行更新——这可能会被证明是有问题的。

0 投票
1 回答
1491 浏览

jgit - JGit 取消暂存文件/从索引中删除文件并修改提交

我想出了如何在 JGit 库中做很多事情,例如提交文件,找出所有文件的状态(即更改、修改、未跟踪等),但我不知道如何取消暂存文件添加到索引中。有人可以让我知道如何做到这一点,也许可以指出一些文档,因为 Eclipse 站点没有,我在 Google 上找不到任何文档。

另外,如果有人知道如何修改提交,我也会非常感激。

谢谢。

0 投票
4 回答
13283 浏览

java - 使用 jGit 循环提交文件

我已经设法掌握了 jGit 文件的基础知识,包括连接到存储库以及添加、提交甚至循环文件的提交消息。

我接下来要做的是能够获取单个文件的所有提交消息,然后能够将单个文件恢复到特定的参考/时间点。

0 投票
2 回答
2024 浏览

java - JGit Java Git 库取消暂存文件

我无法重置以在 JGit 中正常工作。IE。我可以将所有文件添加到索引中,并且可以通过以下命令从索引中删除/重置/取消暂存其中的一些文件,但它不适用于所有文件。在 JGit 中取消暂存文件的正确方法是什么?

0 投票
2 回答
915 浏览

java - JGit/EGit 加载翻译包失败 en_US

我在 JUnit 测试中运行以下代码来测试获取 git 存储库。我正在为 JGit 所需的每个基本功能编写一个测试,以便我可以在我的应用程序中实现它们。问题是我在下面的 git.fetch() 调用中不断收到以下错误:

代码示例如下。我验证了存储库路径和一切似乎都是正确的。如果我在 fetch 调用上放置一个断点,然后在 MSysGit 中运行相同的命令,它就可以工作。

谢谢!

0 投票
5 回答
4645 浏览

java - Jgit javadocs在哪里?

我找不到 jgit 的 javadocs。我试图用 maven 构建 jgit,但构建失败,所以我请求你的帮助。我在哪里可以找到 jgit 的 javadocs。

0 投票
6 回答
45765 浏览

java - 在 JavaGit、JGit 和 EGit 之间选择的困惑

我正在制作一个使用 Git 的 Java 应用程序。我发现有一些东西叫做 JavaGitEGitJGit

我知道 JavaGit 和 EGit/JGit 是不同的。我不明白的是EGit和JGit之间的区别。两者都托管在 Eclipse 项目上,但一个似乎与 Eclipse 相关,而另一个则不是。

我不使用 Eclipse,也不打算使用,所以我真的不太关心“Eclipse 集成”。

JGit 是否以某种方式连接到 Eclipse?(托管在www.eclipse.org,JGit的文档里面也有很多“eclipse”关键字)

在这三个中,我需要什么来连接我的 Java 程序(不是用 Eclipse 编写的)以使用 Git 存储库?

我更喜欢独立的 Git 库(即,不依赖于本地 Git 安装)

编辑:还有一个问题:

编辑:我找到了答案——它确实(还没有尝试过)。它transport在一个名为的类中的包中BundleWriter

0 投票
2 回答
712 浏览

git - 在java中计算一个git packfile sha1校验和

我正在学习 Git 包文件,目前正在尝试重现(在 Java 中)我认为是整个包文件的 SHA1 20 字节校验和。我将字节数组从“PACK”4 字节标头中提取到最后一个打包对象的压缩数据的末尾。我读过的所有内容都表明接下来的 20 个字节是整个包文件的 SHA1 校验和。

作为从 Git 接收的字节数组的一部分的 20 字节校验和是:B910248BF9B63AC53595E3835CA57BDAF08DA830

我使用以下来计算我自己的 SHA1 校验和:
crypt = MessageDigest.getInstance("SHA-1");
crypt.reset();
crypt.update(testData);
byte [] result = crypt.digest();

我的结果是:B910248BF9B63AC53595E3835CA57BDAF08DA813

我对我的结果的最后一个字节如何与 Git 的不同(如果我使用字节流的正确部分)感到困惑。如果唯一的问题是传递给 digest() 的数据范围,那么整个计算的校验和很可能看起来不同。

有任何想法吗?

0 投票
1 回答
952 浏览

android - Android上的JGit提交问题

我正在尝试使用 JGit 库将我的 android 手机上的文档同步到服务器。

它几乎可以工作......但我无法承诺工作。每当我尝试提交时,我都会收到异常“数据错误”。我将问题追溯到 org.eclipse.jgit.util.IO 中的以下语句:

行 fd.read(dst, off, len) 将抛出执行。我认为 fd 参数是 InflaterInputStream 所以这段代码试图从压缩档案中读取。

我试图在装有 Android 2.2 的 HTC Desire Z 上运行它。

我正在使用 org.eclipse.jgit-0.12.1.jar 和 com.jcraft.jsch_0.1.31.jar 来访问 jgit 功能。

我已经做了一些测试示例来尝试理解问题

以下代码在我的 Windows XP 机器上运行没有问题:

以下代码将在我的 android 手机上引发异常:

关于我可以做些什么来完成这项工作的任何想法?

问候,安德斯