答案1
你不能这样做。你不能对进入服务器的变更集进行任何更改,你只能检查它们(使用pretxnchangegroup
钩),如果您不喜欢所看到的内容,请拒绝它们。
您无法更改任何内容的原因是变更集 ID 取决于变更集本身的所有信息:用户名、提交日期、提交消息、更改的文件、更改本身。如果您更改任何内容,那么您也会更改变更集哈希。
如果变更集已被推送到其他地方,则更改变更集哈希值是不幸的 - 您最终会得到重复的变更集,因为您无法向客户端传达您已更改其变更集的信息。
您可能会说,如果 Alice 未使用真实姓名将变更集推送到服务器,那将是一个错误,但这实际上是一个功能。使用分布式版本控制系统,Alice 可以直接从 Bob 那里拉取变更集来查看他的变更。然后,她可能会在他的变更集之上添加更多变更集,并将整个变更集推送到服务器。因此,如果您阻止用户推送除他们自己的变更集之外的任何内容,那么您就阻止了这种直接协作。