summaryrefslogtreecommitdiff
path: root/eclass
diff options
context:
space:
mode:
Diffstat (limited to 'eclass')
-rw-r--r--eclass/git-r3.eclass7
1 files changed, 6 insertions, 1 deletions
diff --git a/eclass/git-r3.eclass b/eclass/git-r3.eclass
index 42d6dbf6b32..957ff08c296 100644
--- a/eclass/git-r3.eclass
+++ b/eclass/git-r3.eclass
@@ -362,8 +362,13 @@ _git-r3_set_submodules() {
submodule."${subname}".update)
[[ ${upd} == none ]] && continue
+ # https://github.com/git/git/blob/master/refs.c#L39
+ # for now, we just filter /. because of #572312
+ local enc_subname=${subname//\/.//_}
+ [[ ${enc_subname} == .* ]] && enc_subname=_${enc_subname#.}
+
submodules+=(
- "${subname}"
+ "${enc_subname}"
"$(echo "${data}" | git config -f /dev/fd/0 \
submodule."${subname}".url || die)"
"$(echo "${data}" | git config -f /dev/fd/0 \