Может ли git refspec включать несколько подстановочных знаков?

Бег git ls-remote origin в репо, к которому у меня есть доступ, я вижу ветки следующей формы, использующие пространства имен git.

refs/namespaces/share/refs/namespaces/<username>/refs/heads/<branch-name>

Я хотел бы сопоставить их с refs/remotes/<username>/<branch-name>,

На этой странице справки github приведен пример того, как решить более простую версию этой проблемы, добавив ее в .git/config:

[remote "origin"]
    fetch = +refs/pull/*/head:refs/remotes/origin/pr/*

Я могу заставить вещи работать для моего случая с:

[remote "origin"]
    fetch = +refs/namespaces/share/refs/namespaces/USER1/refs/heads/<branch-name>:refs/remotes/origin/USER1/*
    fetch = +refs/namespaces/share/refs/namespaces/USER2/refs/heads/<branch-name>:refs/remotes/origin/USER2/*
    # etc

Но это требует, чтобы я знал все имена пользователей заранее. К сожалению, используя два *s не работает:

[remote "origin"]
    fetch = +refs/namespaces/share/refs/namespaces/*/refs/heads/<branch-name>:refs/remotes/origin/*/*

Есть ли способ добиться этого переназначения?

1 ответ

Нет, или точнее, не говоря уже о написании программы для написания серии fetch = линий.

Вы могли бы написать такую ​​программу, используя своего рода мета-конфигурацию (хранится в .git/config или где-то еще, это не имеет большого значения на этом уровне). Программа будет работать git ls-remote на пульте вычисли fetch = линии и обновления .git/config содержать их.

Если вы назовете эту программу, скажем, git-synchrofetch (это имя предназначено для того, чтобы вернуться к синхронизации), вы можете вызвать его git fetch после обновления .git/config, Тогда вместо git fetch origin ты можешь бежать git synchrofetch origin, чтобы обновить выборки по умолчанию, а затем получить.

(Обратите внимание, что программа может также просто вызывать git fetch непосредственно с полным набором refspecs, но идея здесь состоит в том, чтобы позволить большей части другого кода Git работать как обычно и выполнять ресинхронизацию только тогда, когда вы думаете, что набор имен пользователей изменился.)

Другие вопросы по тегам