2

我对 SVN 和使用SVNKit API 从 Java 代码访问存储库了解很多。我可以在 SVN 上进行这些操作:

  • 打开存储库
  • 访问存储库之前的用户身份验证检查
  • 验证 SVN URL
  • 获取给定 URL 下的项目列表
  • 按给定的修订号导出项目/文件
  • 获取存储库/项目/文件的最新版本
  • 获取更新

现在我需要提供对Git的支持以及相同的功能。我已经安装了 Git/EGit/JGit,并且我也使用 JGit API 查看了一些示例,但我无法使用 Java 代码完成上述大部分任务。作为 SVN 用户,这对我来说似乎太复杂了。对此有任何指导/帮助吗?

4

2 回答 2

2

我的项目jgit-cookbook提供了许多常见任务的示例,也许可以帮助您入门。jgit 用户指南还解释了一些基本概念并提供了示例。第三,我会查看处于相当良好状态的类的javadoc,即使 API 有时有点混乱。

于 2013-08-18T20:08:40.277 回答
1

正如 Sameer 所说,您必须熟悉 Git 的工作原理,请参阅Pro Git 书籍

对于您的问题列表,并不总是有直接的等价物,因为概念不同。一些问题的提示:

打开存储库

File workTree = new File("/path/to/git-repository");
Repository repository = new FileRepositoryBuilder().setWorkTree(workTree).build();

按给定的修订号导出项目/文件

请参阅 如何在 JGit 中“分类”文件? .

获取存储库/项目/文件的最新版本

Git git = new Git(repository);
ObjectId head = repository.resolve(Constants.HEAD);
// All commits, use setMaxCount(1) for newest, use addPath for filtering to path
Iterable<RevCommit> commits = git.log().add(head).call();

获取更新

根据您的需要,使用FetchCommand(using git.fetch()) 或,请参阅Git 的 API 文档并导航到那里的命令。PullCommand

于 2013-08-16T13:30:07.630 回答