在多个 Git 存储库之间共享 .mailmap 或其他顶级文件,跨平台

Share .mailmap or other top-level files between multiple Git repositories, cross-platform

我有许多 Git 个贡献者相似的存储库。在这些存储库的生命周期中,大多数贡献者使用了各种电子邮件地址等。因此,每个存储库都有一个 .mailmap 文件以方便 git shortlog -s -e.

因为这些.mailmap个文件几乎完全相同,所以现在的情况不是DRY。每次贡献者采用新的电子邮件地址或类似地址时,都需要在他们贡献的所有存储库中的所有 .mailmap 文件中添加一个新别名。

我想将 .mailmap 文件分解到一个存储库中(我们称之为 mailmap),这样新的别名只需要添加到 one 地方,它将传播到所有其他存储库。

使用名为 mailmapgit submodule,在从 .mailmapmailmap/.mailmap 的每个其他存储库中使用符号 link,似乎是一个合理的选择,但是符号 link 会在 Windows 上工作吗? IE。 git shortlog -s -e 会在 Windows 上显示与在 POSIX 系统上相同的内容吗? (当前贡献者不使用 Windows,但 Windows 用户可能会克隆 Git 存储库,我们希望 git shortlog -s -e 为他们工作,也为我们工作.)

如果不是,什么可能是更好的解决方案?

要使符号链接在 Windows 上工作,有几种可能性,包括:

  • 确保 Windows 用户使用 GNU/kWindows (aka Windows Subsystem for Linux).
  • 确保 Windows 用户使用 Cygwin with elevated privileges and either CYGWIN=winsymlinks:nativestrictCYGWIN=winsymlinks:native.
  • 确保 Windows 用户手动(或可能通过挂钩自动)replace POSIX symlinks with Windows equivalents