Fusionando un repository de Git independiente con otro repository de Git que es un conducto con Subversion: evitando la duplicación cuando se fusiona

Estoy felizmente desarrollando un proyecto de Django en mi propio repository de Git en mi server local. Estoy creando twigs, comprometiéndome y uniéndome felizmente. El path es algo así como:

/path/to/git/django/ 

y la estructura es:

 project ├── README ├── REQUIREMENTS ├── __init__.py ├── fabfile.py ├── app1 ├── manage.py ├── app2 ├── app3 ├── app4 └── project 

El rest de mi equipo de desarrollo aún usa Subversion, que es un repository gigante con múltiples proyectos. Cuando estoy trabajando con eso en mi server local, sigo usando Git (a través de git-svn). El path es algo así como

 /path/to/giant-svn-repo/ 

Los proyectos viven bajo esto como:

 giant-svn-repo |── project1 |── project2 |── project3 └── project4 

Cuando quiero trabajar con los últimos cambios desde el repository svn remoto, hago una rebase git-svn. Luego, para las nuevas características, creo una nueva twig, desarrollé, confirmo, comprobé maestro, fusioné twig con maestro, eliminé twig, y ​​luego un último git-svn dcommit. Guay. Todo funciona bien

Estos dos repositorys (vamos a llamarlos git-django y git-svn) son completamente independientes en este momento.

Ahora quiero agregar git-django en el repository git-svn como un nuevo proyecto (es decir, en un directory secundario llamado djangoproject ). Esto funciona bastante bien, usando el siguiente flujo de trabajo:

  1. cd en git-svn repo
  2. Crea una nueva twig en el repository de git-svn
  3. Crear un nuevo directory para alojar mi proyecto django
  4. Agregue un nuevo control remoto que se vincule a mi proyecto original Django
  5. Fusionar el control remoto en mi directory local
  6. Árbol de lectura con el prefijo de la ruta relativa djangoproject, por lo que coloca la base de código en la location correcta en function de la raíz de git-svn repo
  7. Confirme los cambios para que todo se vierta en el lugar correcto

Desde la línea de command, esto se ve así:

 > cd /path/to/giant-svn-repo > git checkout -b my_django_project > mkdir /path/to/giant-svn-repo/djangoproject > git remote add -f local_django_dev /path/to/git/django/project > git merge -s ours --no-commit local_django_dev/master > git read-tree --prefix=djangoproject -u local_django_dev/master > git commit -m 'Merged local_django_dev into subdirectory djangoproject' 

Esto funciona, pero además de los contenidos de django git repo en / path / to / giant-svn-repo / djangoproject, ¡también está en la raíz principal del tree de repository!

 project ├── README ├── REQUIREMENTS ├── __init__.py ├── fabfile.py ├── djangoproject │  ├── README │  ├── REQUIREMENTS │  ├── __init__.py │  ├── fabfile.py │  ├── app1 │  ├── manage.py │  ├── app2 │  ├── app3 │  ├── app4 │  └── project ├── app1 ├── manage.py ├── app2 ├── app3 ├── app4 └── project 

Parece que he contaminado el directory padre donde se encuentran todos los proyectos del gigante-svn-repo.

¿Hay alguna forma en que pueda evitar que esto suceda?

(Por cierto, todo esto se ha hecho en una estructura de directory de testing; aún no he corrompido nada. Solo bash descubrir la mejor manera de hacerlo)

Estoy seguro de que solo está (re) definiendo un argumento más para git merge , git read-tree o git commit, pero estoy prácticamente al límite de git kung-fu.

Gracias por adelantado.