问题标签 [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 投票
3 回答
15883 浏览

java - 使用带有 JGit 的密钥安全地访问 Git 存储库

我正在使用JGit访问远程 Git 存储库,我需要为此使用SSH。JGit 使用JSch提供安全访问。但是,我不确定如何为 JGit 设置密钥文件和知道主机文件。我尝试过的如下。

通过继承JSchConfigSessionFactory创建了SshSessionFactory的自定义配置:

在我访问远程 Git 存储库的课程中,执行了以下操作:

我不知道如何将此 JSch 对象与 JGit 相关联,以便它可以成功连接到远程存储库。当我尝试使用 JGit 克隆它时,出现以下异常:

我已将 git.test.com 条目添加到我的/etc/hosts文件中。我使用相同的代码通过 http url 访问 git repo,因此代码运行良好。这是失败的关键处理部分。关于如何处理这个的任何想法?

0 投票
0 回答
1237 浏览

java - Jgit浅克隆(深度-2)

在对 JGIT(BasePackFetchConnection 类)进行一些更改后,我们能够将命令(deepen 2)发送到服务器以进行浅层克隆。但是,当服务器以浅提交响应时,Jgit 无法处理此问题。

必须向服务器发送哪些进一步的命令才能接收包中的浅层存储库?以下文档不清楚如何处理浅响应 https://github.com/git/git/blob/master/Documentation/technical/pack-protocol.txt

0 投票
1 回答
250 浏览

java - 查找 2 次 git 提交之间可用的分支

我有一个开始提交,我想从中找到所有分支,直到我到达另一个没有找到提交的注释。

在这种情况下,假设来自提交 1-5 的所有提交都有注释“查找分支”,而提交 6 没有带有该值的 not。

所以我将从提交 1 开始查找所有父项(即:提交 2)并尝试检查是否有此提交的分支(即:子项的数量大于 1)。如果有超过 1 个孩子

  1. getChildren()方法仅适用于 PlotCommit 对象,但该方法parentCommit.getParents()仅返回RevCommitObject。
  2. 我想找到特定提交中存在的分支名称

然后当提交上没有更多注释时(即提交 6 没有注释),逻辑将停在那里并返回分支名称的集合

预期结果

我想找到包含特定 git note 的提交的分支名称。在上面的示例中,将返回 Commit 1 和 commit 5 的分支名称

0 投票
2 回答
17644 浏览

eclipse - 为什么不建议将 Eclipse 项目文件夹作为 Git 存储库?

当将项目共享为 git 并尝试将 Eclipse 项目文件夹作为 git 存储库时,Eclipse 表示不建议这样做,它应该位于 Eclipse 工作区之外。

这是为什么?

0 投票
1 回答
2002 浏览

daemon - JGit:如何使用 InMemoryRepository 了解 dfs 实现

我想了解如何为 jgit 实现替代 dfs 后端,我正在查看 https://github.com/eclipse/jgit/blob/master/org.eclipse.jgit/src/org/eclipse/jgit/storage/dfs /InMemoryRepository.java 为例。

我很难弄清楚如何将其设置为独立的 git 守护进程。基本上,我希望能够启动一个 java 进程,它是单个(空)内存中 git 存储库的 git 服务器,然后我希望能够使用 git 客户端从该存储库守护进程中推/拉。

0 投票
2 回答
1501 浏览

git - Git & JGit:从特定版本中检索文件的最快方法

背景:

我想从 Git 中的特定修订中检索文件。以前我使用git show此线程中描述的方法使用命令:如何从 Git 中的特定修订中检索单个文件?意义:

但是,基于我在另一篇文章中解释的问题:Read both binary and text from process output我无法从git show的输出中读取二进制数据。在 SO 用户的建议下,我迁移到JGit作为 Java 的本机实现。我在 SO 上找到了这个线程,它描述了如何使用 JGit API 从特定修订版中检索文件。 如何在 JGit 中“cat”一个文件?

问题:

性能对我的项目非常重要。因此,我正在寻找检索文件的最佳方法。上面描述的 API 方法似乎在树中导航并获得正确的修订。考虑到我可以在 Git 中使用单个命令来检索文件,我不确定哪个更快。

  • 我应该使用为 JGit 描述的方法还是应该使用git show命令?
  • JGit有更好的解决方案吗?
0 投票
1 回答
2131 浏览

java - 如何在 JGit 中实现稀疏结帐?

我需要在 Github 存储库中提取特定子目录的内容并将其放在我自己的目录下。经过大量研究,似乎稀疏的结帐是要走的路。但是,我有点不确定,如何使用 JGit 来实现它。

0 投票
8 回答
9250 浏览

eclipse-plugin - Egit 已安装(与 Juno 一起提供),但根本不显示

我想在 eclipse 中使用 GIT,最好是 EGit,因为它得到了 eclipse 社区本身的支持。然而,尽管 eclipse 声称安装了所需的插件,但它并没有出现在透视图、导入和设置菜单中。

我正在使用适用于 Java EE 的 Eclipse Juno,并确认了以下安装: 已安装的功能 当我更新软件时,没有更多可用的更新。当我访问 Egit 或 JGit 的存储库时,eclipse 告诉我插件已经安装。

Window > Preferences > Team 不包含 Git 项,仅包含 CVS 和 SVN。导入项目不包含 Git 选项。透视窗口不包含 Git repo 选项。

0 投票
2 回答
876 浏览

eclipse - How to build JGit in Eclipse (dependency errors)

I'm trying to build the latest version of JGit. I checked out the latest version from the Git repository. According to the build instructions, I installed the dependencies via Orbit. I then ran mvn clean install which was able to compile everything and run all the tests. So this was great, there were no errors, and I can find the compiled .jar files.

I then opened Eclipse and imported the projects into a working set. For some reason, there are numerous errors in the build process.

Imports cannot be resolved:

And more cannot be resolved:

I tried installing Jetty via Eclipse (Install New Software). However, that did not resolved the issue.

Am I just not supposed to build JGit in Eclipse? All builds and testing should be done with Maven? I'm also confused as to why Jetty and Apache are being imported in some of these subprojects for JGit and they're not listed as dependencies of JGit on the wiki.

Thanks in advance.

0 投票
2 回答
4079 浏览

eclipse - 添加到 repo 后无法在 eclipse 中运行项目。不是java项目

我设置了我的 github 帐户和 egit。它真的很好用。我已经学会了分期,提交,推/拉......几乎。

不幸的是 (Juno) Eclipse 没有将 FoobarProstate 识别为 Java 项目。它说 FoobarProstate 只是一个项目。当我单击绿色运行箭头时,我收到错误消息

选择无法启动,并且最近没有启动。

我在 Eclipse 中创建了项目,使用向导使用File > Import > Git > Projects from Git 将其导入。那可能是我的错误。

这是我在 Eclipse Package Explorer 中看到的。

Eclipse 包资源管理器的屏幕截图

我试过的:

  • 右键单击项目名称 > 配置给我一个选项:转换为 Maven 项目。我不知道那是什么,我不认为我想要那个。

  • 绿色运行下拉箭头 > 运行方式给了我(不适用)

  • 我无法弄清楚将项目更改为 java 项目的在线说明。

在我在网上找到的答案中,它说要更改运行配置(绿色运行下拉箭头>运行配置...)。但这些说明要么不适用于朱诺,要么难以遵循。我真的很困惑。

笔记:

  • 在我的存储库的 github 视图中,此存储库名称旁边显示“Java”!该存储库与我的 Java 项目具有相同的名称 (FoobarProstate)。

  • 我的 FoobarProstate 文件存储在 C:\Users\EmilyBB\git\FoobarProstate 中。这不是我的 Eclipse 工作区(C:\Users\EmilyBB\workspace)。那是问题吗?

  • 我刚刚安装了 Android 的东西(ADT 等)

谢谢!