如何使用 jGit 限制每个文件版本的提交次数

How can I limit the number of commits for each file version with jGit

我们正在使用 jgit 来存储一些内部文件的版本,我希望每个文件只允许有限数量的版本。目前我可以使用以下方法为每个文件添加无限数量的提交:

git.add()
        .addFilepattern(fileName + ".yaml")
        .call();
git.commit()
        .setMessage(comment)
        .setAuthor((String)context.get("userName"),(String)context.get("userName")+"@xxx.ch")
        .call();

我想检查每个文件的 git 版本数是否大于 n,在这种情况下 squash n-versionn+1 version 或者只是删除n+1 version。如果回购中特定文件的版本数大于 n 并压缩两个版本或删除 n+1 version,我如何检查 jGit?有没有更好的方法来做到这一点?

更新:

假设我允许 git 存储库中的每个文件有 5 个版本,并且我在 git reflog 中有以下条目:

A-----B-----C-----D-----E-----F-----G--- ---H------我

具体文件有以下git log个完整:

B-----C-----E-----F-----G-----H

我可以设想两种选择: 一种选择:“挤压”将 G 和 H 提交给 Z。 第二个选项:“删除”提交 H

我只在本地机器上的一个分支(master)工作。 我查看了 this 问题的答案,但我仍然不确定如何使用 `jGit.

来做到这一点

我们决定不重写存储库中文件的历史记录。