Estoy intentando dividir un repositorio grande en varios más pequeños. El objetivo es dividir una carpeta y conservar las etiquetas en el proceso.
Yo he tratado:
git filter-branch --prune-empty --subdirectory-filter my-folder develop
Este lugar correctamente my-folder
en la raíz del nuevo proyecto y retuvo las etiquetas. Sin embargo, revisar una etiqueta resultó en ver toda la estructura de directorios anterior dentro del nuevo repositorio.
Así que probé:
git filter-branch --tag-name-filter cat --prune-empty --subdirectory-filter my-folder -- --branches=develop --tags
Esto da como resultado que la rama de desarrollo esté allí con la estructura de directorios anterior, PERO cuando pago una etiqueta, ¡veo el subdirectorio correctamente filtrado a la raíz! Entonces las etiquetas son correctas pero no la rama de desarrollo. Básicamente tiene el problema opuesto al primer método.
No sé por qué el segundo método no funcionó. ¡Realmente agradecería cualquier sugerencia!
EDITAR:
Intentando esto ahora:
git filter-branch --tag-name-filter cat --prune-empty --subdirectory-filter my-folder -- --all
Tenía dudas, ya que espero que esto tome un poco más de tiempo. Esto tomó más tiempo, pero en su mayoría funcionó. ¿Lo que no funcionó? Bueno, las etiquetas más antiguas en las que aún no se había creado la carpeta se dejaron en el repositorio y, cuando se desprotegieron, contenían la estructura de directorios completa (muy) antigua. Tuve que grep y eliminar todas estas etiquetas. Aún así, el repositorio no es tan pequeño como esperaba…