update_submodules duplicates
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Python
- Estrellas
- 1.7k
- Forks
- 408
- Merge medio
- 2 d 57 min
- PR fusionados (30 d)
- 7
Descripción
I'm trying to replicate git clone --recursive in pygit2, and this is the function I've come up with.
def get_submodules(repo, creds):
submodules = repo.listall_submodules()
repo.init_submodules(submodules=submodules)
repo.update_submodules(submodules=submodules, callbacks=creds)
for submodule_path in submodules:
submodule = repo.lookup_submodule(submodule_path)
sub_repo = submodule.open()
get_submodules(sub_repo, creds)
The problem I'm having is that in certain circumstances, this will cause crashes. Let me paint the picture.
Master Repo
- Submodule A
- Submodule B
2.1 Submodule A
2.2 Submodule D - Submodule C
When update_submodules attempts to run on Submodule A the second time, it crashes. Not completely sure how to get around this. Some repos are in this format, but I haven't found a workaround. Any thoughts?
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza con el ejemplo get_submodules y las llamadas repo.update_submodules y repo.lookup_submodule. Reproduce la estructura anidada en la que Submodule A aparece más de una vez y, después, inspecciona cómo se gestionan las actualizaciones repetidas. Se considera terminado cuando la operación recursiva ya no falla con esa estructura y el comportamiento se ha verificado con el escenario informado.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- git, python
- Área
- tooling
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 32/100