我已经准备好要在多个 Git 存储库上使用的 .editorconfig
文件。每个存储库都包含一个 Visual Studio 解决方案 (C#)。我的第一个想法是将 .editorconfig
文件放在自己的存储库中,然后将其作为子模块包含在所有“解决方案存储库”中。然而问题是:子模块将位于子文件夹中。因此,包含的 .editorconfig
不会应用于整个项目/解决方案(而仅应用于子文件夹及其子文件夹)。在我看来,我也无法在解决方案配置文件 ( .editorconfig
) 中指定我的解决方案范围 .sln
的路径。
在多个 Git 存储库之间实际共享单个 .editorconfig
文件的最佳方法是什么? .editorconfig
文件仍然需要进行版本控制(从而在用户之间共享),即。没有本地 editorconfig 配置。
最佳答案
我自己找到了一个解决方案,使用共享存储库作为我想要的子模块:这是一个符号链接(symbolic link)!
例如,如果您的子模块名为 Global
,请进入解决方案的根目录并通过以下方式创建指向子文件夹 Global
中真实文件的符号链接(symbolic link):
mklink .editorconfig .\Global\.editorconfig
可以像任何其他文件一样提交和推送此链接。 Gitea(我用作服务器)甚至显示一个小箭头作为文件符号的叠加。显然它知道它只是一个符号链接(symbolic link)。当我在 Windows 机器上克隆这个存储库时,符号链接(symbolic link)按预期工作。也许它甚至适用于 *nix 系统;不过我没有尝试。
我撤回了这个解决方案:VS2017 (15.8.2) 不会立即获取更改。必须关闭并重新打开解决方案。 If you are using a real
.editorconfig
file changes are detected immediately since 15.8 Preview 3 。编辑: 我们决定不提交到 Git 的符号链接(symbolic link),因为它曾经被 Gitea 搞砸了(可能是一个错误)并且因为我们有非 Windows 开发系统。相反,我们在项目文件
<Error Condition="!Exists('$(SolutionDir).editorconfig')" Text=".editorconfig is missing. Please run $(SolutionDir)_post_clone_script.bat first." />
中有一个“后克隆脚本”与条件错误相结合。关于git - 共享 Git 存储库中的 .editorconfig,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52186841/