Я использую git (TortoiseGit 1.7.5.0) и имею репо с подмодулями, на которые ссылаются через абсолютные пути следующим образом:
[submodule "common/sub"]
path = common/sub
url = ssh://localhost/lib/common/sub
Хотя супер-репо клонируется как ssh://user@localhost/super
, имя пользователя не должно указываться в каждом URL подмодуля, поскольку разные пользователи должны работать с кодом, используя свои собственные учетные данные.
При извлечении / отправке субмодулей мне приходилось вводить свой логин (пароль не нужен, потому что я запускаю Pageant): имя пользователя не передается TortoisePlink через командную строку.
Работая в Интернете, я обнаружил несколько постов, в которых упоминаются относительные URL для подмодулей , но, видимо, такой подход не работает с TortoiseGit: я пробовал несколько форматов - программа часто вылетает.
Во всяком случае мне удалось с форматом, как:
[submodule "common/sub"]
path = common/sub
url = ../common/sub
Файл .git/config
заполняется правильными абсолютными URL-адресами, но после этого TortoiseGit просто падает ...
Я рассмотрел другие варианты, в том числе:
используйте гитолит (как предлагается здесь ) или sdorra (как предлагается здесь ), но это выглядит как слишком сложное решение.
следовать стратегии слияния поддеревьев (как предложено здесь ).
Это выглядит как хороший подход.
Одним из рабочих обходных путей является инициализация подмодуля с "нестандартным" URL-адресом , как объяснено в конце git Submodules Explained (ссылка была найдена здесь ).
Полагаю, в моем случае может помочь какой-то более простой обходной путь (например, предоставление входа по умолчанию в каком-либо локальном конфигурационном файле или через командную строку), но я не нашел никаких подходящих подсказок для этого.
И вопрос : как проще всего использовать субмодули без жестко запрограммированных имен пользователей в абсолютных URL-адресах?