我帮助维护的一个项目中的GitLab贡献者视图已经“损坏”了一段时间了。看来 GitLab 无法理解某些用户名和/或电子邮件地址属于同一用户。
目前,我们的 GitLab贡献者视图显示以下内容:
Dev A <dev_a@company.com>
DevB <dev_b@company.com>
devb <dev_b@private.com>
Dev C <dev_c@company.com>
Dev D <dev_d@private.com>
Dev D <dev_d@company.com>
DevD <dev_d@company.com>
...
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,有些人是相同的,尽管他们由不同的贡献者条目代表。在本表中,此类示例包括:
其中开发人员 B 有两个用户名,分别与不同的电子邮件地址相关联,而开发人员 D 具有与两个地址相关联的相同用户名,以及与两个不同用户名相关联的相同地址。
最初尝试通过 GitLab 提供的 Web UI 来解决此问题。在GitLab > 用户设置 > 电子邮件中,电子邮件可以与帐户关联。对于Dev D的个人资料,如下所示:
dev_d@company.com (Verified) [Primary email][Commit email][Default notification email]
dev_d@education.com (Verified)
dev_d@private.com (Verified)
Run Code Online (Sandbox Code Playgroud)
到目前为止,这表明两者<dev_d@company.com>都<dev_d@private.com>与同一帐户关联。这不足以让 GitLab 将这些地址映射到贡献者视图中的同一用户。
我们进行了第二次尝试,提供了一个.mailmap文件,其中包含主用户名/电子邮件地址到辅助用户名/电子邮件地址的映射。
当前.mailmap文件如下所示:
Dev A <dev_a@company.com>
Dev C <dev_c@company.com>
Dev B <dev_b@company.com> DevB <dev_b@company.com>
Dev B <dev_b@company.com> devb <dev_b@private.com>
Dev D <dev_d@company.com> Dev D <dev_d@private.com>
Dev D <dev_d@company.com> DevD <dev_d@company.com>
...
Run Code Online (Sandbox Code Playgroud)
当在项目根目录中git shortlog -se本地调用时.mailmap,结果似乎是正确的。每个用户仅被提及一次(当不.mailmap存在文件时,则不会被提及),显示正确的主要电子邮件并累积提交。
这也是提交、推送的,因此 GitLab 应该知道,但是邮件映射文件当前存在于分支上,而不是主分支上。但这不是障碍,因为贡献者视图也可以显示分支。提供的文件.mailmap使贡献者的视图完全不受影响。代表相同用户的所有别名仍然未合并,并且不分别与用户和彼此关联。
.mailmap (所以大概 GitLab还无法处理?)| 归档时间: |
|
| 查看次数: |
372 次 |
| 最近记录: |