36 votes

Git-svn W: avertissements -empty_dir. Que signifient-ils?

Lors de la tentative de cloner un existant dépôt Subversion à l'aide de git-svn en utilisant la norme de mise en page, j'ai eu un tas d' W: -empty_dir (et W: +empty_dir) mises en garde. La cloné le dépôt git semble être au travail, c'est à dire que je peux faire d'habitude git opérations et dcommit pour le dépôt SVN.

Le vrai problème, c'est que le clone initial et rebase créer les répertoires qui n'existent pas dans le dépôt SVN, au sommet du référentiel (le long de avec d'autres répertoires dans le coffre). Ces répertoires contiennent aucun fichier, mais seulement certains répertoires vides à l'intérieur. Il semble que le "W: -empty_dir" mises en garde correspondent à ces répertoires vides.

J'ai regardé pour les répertoires vides par la vérification de l'ensemble du référentiel à l'aide de SVN, mais il n'y a pas de répertoire vide. J'ai aussi vérifié par SVN si le référentiel contient des fichiers avec des propriétés spéciales, mais il n'a pas été tout autre que "exécutable" et "mime-type".

Le référentiel existant n'a pas été à l'origine, à la suite de la mise en page standard, mais je l'ai nettoyé de sorte que le haut répertoires sont juste "tronc", "tags" et "branches".

Ce qui peut être à l'origine de la création de ces répertoires vides qui n'existent pas en vertu de la Subversion?

19voto

VonC Points 414372

Sans savoir exactement où ces répertoires vides est venu, vous pourriez dire git-svn pour les supprimer en utilisant l' --rmdir option de ligne de commande ou svn.rmdir option de configuration.

Voir git-svn OPTIONS de l'homme et de la page de

Supprimer des répertoires de l'SVN arbre si il n'y a pas de fichiers laissés derrière.
SVN peut version répertoires vides, et ils ne sont pas supprimés par défaut si il n'y a pas de fichiers à gauche en eux. git ne peut pas version les répertoires vides.
L'activation de cette option rendra le commit SVN agir comme git.


L'avertissement vient de SVN balises (qui sont des "répertoires") non pris en charge par git-svn, comme dans "git svn interrompue, puis j'ai perdu toutes les balises, comment résoudre ce problème?".
À partir de ce fil:

SVN pistes répertoires, git n'a pas, de sorte que les répertoires vides ne peuvent pas être représentées dans git.
Ces mises en garde sur les fichiers semblent vous dire les fichiers qui ont été supprimés, entraînant un répertoire vide pour être laissé en place, en particulier svn commit importés.

La différence entre -empty_dir et +empty_dir est à propos de la façon dont le répertoire vide apparaît dans le repo SVN:

-empty_dir

Un tas de fichiers sont supprimés, laissant un répertoire (branche ou une étiquette) vide.

+empty_dir

Un vide branche ou une étiquette a été créée dans la version SVN importés, et git-svn de ne pas importer un répertoire vide.


Notez que vous pouvez redémarrer l'importation après cet avertissement.

8voto

JNovice Points 115

Une des choses avec git est qu'il ne suit pas les répertoires. Il s'agit de contenu (fichiers) dans git. Les répertoires vides sont donc quasiment laissés à languir dans votre référentiel local. La meilleure façon de se débarrasser des répertoires vides dans votre référentiel local est de faire git clean -d.

Commander man git clean pour plus d'informations.

5voto

Stein Points 63

Concernant la question dans le titre (qui est ce qui attire de google attention à cette page), en fonction de mes conclusions, à l'aide de git-svn 1.7.1 ou git 1.8.5: l'avertissement W: -empty_dir: x/y/z signifie que le fichier ou le dossier x/y/z a été enlevé dans le SVN de l'ensemble de modifications. Sauf si vous avez spécifié -q, --quiet), ce fait a déjà été signalé comme D x/y/z. Ce que je pense qu'il essaie de dire, c'est que en conséquence, le dossier x/y peut ont faire le vide et est donc éliminé de la git vue. Il est beaucoup plus fréquent que x/y n'est pas devenu vide et il n'y a rien d'étrange se passe.

Dans la pratique, si la suppression de x/y/z aurait laissé x/y vide, vous auriez probablement avoir retiré l'ensemble de x/y dans le SVN de la révision, et la suppression de x/y/z ne serait même pas être déclarés séparément. Donc, vous n'obtiendrez pas de cet avertissement, mais au lieu W: -empty_dir: x/y vous avertit que x est peut-être vide, qui, vous le savez, il n'a pas parce qu'alors, vous avez supprimé x...

Si, d'autre part, vous avez fait de laisser les répertoires vides autour de et veux les garder, je suppose que vous utilisez --preserve-vide-dirs et je ne vois pas de point dans l'avertissement (si elle apparaît toujours dans ce cas).

Donc, en bref, de l'ignorer. Contrairement aux W: +empty_dir, ce qui est une autre histoire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X