使用相对网址的Git子模块

Ant*_*onK 8 git tortoisegit git-submodules

我使用git(TortoiseGit 1.7.5.0)并拥有一个带子模块的repo,它们通过以下方式通过绝对路径引用:

[submodule "common/sub"]
path = common/sub
url = ssh://localhost/lib/common/sub
Run Code Online (Sandbox Code Playgroud)

虽然super-repo被克隆为ssh://user@localhost/super,但用户名不应该进入每个子模块url,因为不同的用户应该使用自己的凭据来处理代码.
当拉/推子模块时,我必须输入我的登录名(不需要密码,因为我正在运行Pageant):用户名不会通过命令行传递给TortoisePlink.

在网上冲浪,我发现有几个帖子提到子模块的相对网址,但显然这种方法与TortoiseGit不兼容:我尝试了几种格式 - 程序经常崩溃.无论如何,我成功的格式如下:

[submodule "common/sub"]
path = common/sub
url = ../common/sub
Run Code Online (Sandbox Code Playgroud)

该文件.git/config填充了正确的绝对URL,但在那之后TortoiseGit崩溃了......

我已经回顾了其他选项,包括:

  1. 使用gitolite(这里提出)或sdorra(这里提出),但这看起来像一个过于复杂的解决方案.

  2. 遵循子树合并策略(如建议在这里).这看起来很不错.

其中一个工作解决方法是使用"非标准"URL初始化子模块,git子模块解释结束时所述(此处链接已在此处找到).

我想一些更简单的解决方法可能对我的情况有帮助(比如在某些本地配置文件中或通过命令行提供默认登录),但我没有找到任何可行的提示.

这个问题:什么是使用子模块没有绝对URL硬编码的用户名的最简单的方法?

Ant*_*onK 3

实际上,相对 url 已经可以在 msysgit 中正常工作了。我已将其从 1.7.7.1 升级到 1.7.8,崩溃现象消失了。伟大的!:)