我有以下git命令:
git log --stat=1000 --all > gitstat.log
有可能在JGit中实现吗?
如果是,那么用JGit编写的等效方法是什么?
要访问存储库的历史记录,JGit提供了RevWalk
。它的markStart()
方法用于指定历史记录应从哪个提交开始。存储库中的所有引用都可以通过获取Repository::getAllRefs()
。
一旦一个RevWalk
实例设置,使用它的迭代器或它的next()
方法来遍历的历史。
放在一起看起来像这样:
try (RevWalk revWalk = new RevWalk(repository)) {
for (Ref ref : repository.getAllRefs().values()) {
revWalk.markStart(revWalk.parseCommit(ref.getObjectId()));
}
for (RevCommit commit : revWalk) {
// print commit metadata and diff
}
}
请注意,RevWalk
调用的实例parseCommit()
必须与调用的实例相同markStart()
。否则,RevWalk
将会产生有趣的结果。
提交(并由此访问其父项)后,您可以使用DiffFormatter
来获取Diff
s和Edit
s
的列表,这些列表可以告诉您更改了多少个文件和每个文件行。
您可能需要看一下这篇文章才能开始:如何使用JGit显示两次提交之间的更改
这里是一篇文章,深入介绍了JGit的diff API:http://www.codeaffine.com/2016/06/16/jgit-
diff/
我想为Atom编写一个命令,它由两个或多个预先存在的命令组成,比如“Select Line”和“Cut”。我该怎么做?
问题内容: 我想知道stat命令如何计算文件的块。我读了 这篇文章,它说: 值st_blocks以512字节块为单位给出文件的大小。(例如,当文件有孔时,它可能小于st_size / 512。)值st_blksize给出了“首选”的块大小,以实现有效的文件系统I / O。(以较小的块写入文件可能会导致读取-修改-重写效率低下。) 但我无法在测试中验证它。 我的文件系统是ext3。 dumpe2fs
问题内容: 如何在JGit中合并? 假设我要与分支合并,该怎么做? 问题答案: 要合并,您可以在之后使用(在org.eclipse.jgit.api包中)。为了给您提供示例,因为Jgit确实缺少示例: 我没有尝试该代码,因此它可能并不完美,但这只是一个开始。而且我没有包括进口。使用JGit开发意味着基于Javadoc的许多尝试
问题内容: 我有一个函数要转换为 ES6中 的新箭头语法。它是一个命名函数: 有没有办法在不使用var语句的情况下为其命名: 显然,我只能在定义此功能后使用它。如下所示: ES6中 是否有新方法可以做到这一点? 问题答案: 如何在ES2015中编写命名箭头功能? 您可以按照在问题中排除的方式进行操作:将其放在赋值或属性初始化程序的右侧,在该赋值或属性初始化程序中,JavaScript引擎可以合理地
我有一个函数,我正在尝试转换为ES6中的新箭头语法。它是一个命名函数: 有没有办法给它一个没有var语句的名字: 显然,我只能在定义了这个函数之后才能使用它。大致如下: 在ES6中有没有一种新的方法可以做到这一点?
上面给出的很多都是nodejs写的小工具模块,nodejs和npm的种种好处,使得nodejs开发命令行模块异常简单 先说一下node module的作用 封装常见类库 命令行工具 nodejs这几年之所以如此快的崛起,就是因为模块编写简单,npm无比强大 npm是nodejs最好的东西,常用分类 1)命令行工具 比如express-generator 比如gulp 和grunt 2)shell相