将Mercurial用户名replace为经过Apachevalidation的用户名

我有一个Debian 6 x64,python2.6,Apache 2.2,Mercurial 1.8。 Mercurial通过HTTPS访问,python使用mod_wsgi ,Apache使用mod_authnz_external执行“Authentication:Basic”。

我需要的是replace用户提供的Mercurial用户名。 因此,如果用户将用户名configuration为“JD”,但是以用户名“[email protected]”login,我想在Mercurial提交历史logging中看到“[email protected]”。

你不能这样做。 您无法更改进入服务器的更改集中的任何内容,只能通过pretxnchangegroup钩子检查它们,如果您不喜欢所看到的内容,则可以拒绝它们。

无法更改的原因是变更集ID取决于变更集本身中的所有信息:用户名,提交date,提交消息,更改的文件,更改本身。 如果你改变任何东西,那么你也改变变更散列。

如果变更集已经被推送到其他地方,那么更改变更集哈希值是不幸的,因为您无法向客户端通知您已经更改了其变更集,所以最终会出现重复的变更集。

你可能会说,如果Alice没有真实姓名地将变更集推送到服务器上,这是一个错误,但这实际上是一个function。 使用分布式版本控制系统,Alice可能直接从Bob中检查他的更改。 然后,她可能会在其上添加更多的变更集,并将整个事件推送到服务器。 因此,如果您阻止用户推送除自己的更改集之外的任何内容,则可以阻止这种直接协作。