如何使用 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-version
和 n+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.
来做到这一点
我们决定不重写存储库中文件的历史记录。
我们正在使用 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-version
和 n+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.
来做到这一点我们决定不重写存储库中文件的历史记录。