Skip to end of metadata
Go to start of metadata

Problème

git ne suit pas les répertoires. Donc, quand un répertoire est vide, il ne remarque pas son existance. Or svn, lui, suit le contenu des répertoires. Donc, quand on pousse un commit depuis git vers un dépôt svn, git n'envoie pas d'information particulière sur la disparition éventuelle de répertoires. De ce fait, il reste plein de répertoires vides dans le dépôt distant svn.

Solution

Pour remédier à cette situation, il faut ajouter les lignes suivantes dans son fichier .gitconfig ou dans le fichier .git/config du dépôt considéré. Enfin, on peut aussi taper les commandes suivantes :

Supprimer automatiquement les répertoires vides de git dans le dépôt svn distant
# uniquement pour le projet en cours, dans lequel on se trouve :
git config svn.rmdir true
# globalement, pour tous les projets gérés
git config --global svn.rmdir true

Enfin, on peut éventuellement ajouter l'option lors du commit des modifications envoyé au serveur svn distant :

git svn dcommit --rmdir

Remarques

Lorsque le dépôt svn contient déjà des répertoires vides, le fait d'ajouter cette option n'enlèvera pas les anciens répertoires vides. Pour cela, il faut procéder différemment. Pour le moment, la solution n'a pas été trouvée. Elle requiert certainement quelques bidouilles.