gpt4 book ai didi

c# - Git mega 压缩所有具有相同消息和作者的顺序提交

转载 作者:太空狗 更新时间:2023-10-29 14:46:50 29 4
gpt4 key购买 nike

我有一个 application它监视文件系统(TeamCity 配置目录),以了解对 XML 配置文件的更改。当检测到更改时,它会提交给 Git(使用 libgit2sharp )。 Git“提交者”始终是应用程序在其下运行的服务帐户用户,但 Git“作者”是通过检查 TeamCity 审计日志来确定的,以便将更改归因于进行更改的用户。该应用程序记录了一条通用的提交消息,例如“构建配置‘x’已被用户‘y’修改”。并提交更改。

由于 TeamCity 配置更改往往是作为一系列网页交互进行的,我们最终会进行大量(10 到 30 次左右)顺序提交,显示对给定配置文件的更改(通常是相同的( build-config) 或两个 (vcs-config) 文件在整个提交系列中被更改。

我想将具有相同提交消息和作者的所有顺序提交压缩为单个提交。是否有一个 git 命令可以一次对整个 repo 执行此操作,或者我是否需要为我想要压缩的每个提交序列编写一系列调用脚本?

在使用 libgit2sharp 时,我发现在 vanilla git 中找出我想要实现的目标然后在 c# 代码中实现 git 命令是有意义的。但也许有人已经知道正确的 libgit2sharp 调用顺序来完成这项工作。

最佳答案

我认为以前从未使用过它来压缩历史记录,但您可以尝试使用 LibGit2Sharp 的 RewriteHistory接口(interface)。查看the tests了解它通常是如何被调用的。 TreeFilterParentFilter 的某种组合可能会满足您的需求。

关于c# - Git mega 压缩所有具有相同消息和作者的顺序提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22199210/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com