在多个 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 地方,它将传播到所有其他存储库。
使用名为 mailmap
的 git submodule
,在从 .mailmap
到 mailmap/.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:nativestrict
或 CYGWIN=winsymlinks:native
.
- 确保 Windows 用户手动(或可能通过挂钩自动)replace POSIX symlinks with Windows equivalents。
我有许多 Git 个贡献者相似的存储库。在这些存储库的生命周期中,大多数贡献者使用了各种电子邮件地址等。因此,每个存储库都有一个 .mailmap
文件以方便 git shortlog -s -e
.
因为这些.mailmap
个文件几乎完全相同,所以现在的情况不是DRY。每次贡献者采用新的电子邮件地址或类似地址时,都需要在他们贡献的所有存储库中的所有 .mailmap
文件中添加一个新别名。
我想将 .mailmap
文件分解到一个存储库中(我们称之为 mailmap
),这样新的别名只需要添加到 one 地方,它将传播到所有其他存储库。
使用名为 mailmap
的 git submodule
,在从 .mailmap
到 mailmap/.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:nativestrict
或CYGWIN=winsymlinks:native
. - 确保 Windows 用户手动(或可能通过挂钩自动)replace POSIX symlinks with Windows equivalents。