99 votes

Problème SVN (Subversion) "L'ajout d'un fichier est prévu, mais il est manquant" - Utilisation des versions

Je suis à l'aide de Versions SVN.

Je tente de la commettre, et que vous obtenez ce message:

S'engager a échoué (détails à suivre): /Utilisateurs/mike/Sites/monsite.com/astss-cvsdude/Trunk/panier/flashfile.swf' est prévu pour plus, mais est manquant

Je suppose que c'est parce que j'avais ajouté des fichiers à la mise en pension, puis supprimé par l'intermédiaire du système de fichiers.

J'aimerais simplement faire une remarque de mon changement, et appliquer la modification à la repo.

Comment puis-je contourner ce problème?

126voto

MartinStettner Points 14514

Je ne suis pas sûr de ce que vous essayez de faire: Si vous avez ajouté le fichier via

svn add myfile

vous avez seulement dit svn pour mettre ce fichier dans votre référentiel lorsque vous faites votre prochain commit. Il n'y a aucun changement dans le dépôt avant de taper un

svn commit

Si vous supprimez le fichier avant de le commettre, svn a dans ses dossiers (parce que vous l'avez ajouté), mais ne peut pas l'envoyer au dépôt car le fichier n'existe plus.

Donc, soit vous souhaitez enregistrer le fichier dans le référentiel, puis le supprimer à partir de votre copie de travail: Dans ce cas, essayez d'obtenir votre fichier (à partir de la corbeille?), faire la livraison et effacer le fichier via

svn delete myfile
svn commit

Si vous souhaitez annuler l' add et de simplement jeter le fichier, vous pouvez à un

svn revert myfile

qui dit svn (dans ce cas) pour annuler le complément de l'Opération.

MODIFIER

Désolé, je n'étais pas au courant que vous êtes à l'aide de la "Versions" client graphique pour Max OSX. Donc, soit essayer un de revenir sur le contenant du répertoire à l'aide de l'interface graphique ou saut dans l'eau froide et le feu de votre cachés Mac shell de commande :-) (cela s'appelle le "Terminal" dans l'allemagne de l'OSX, aucune idée de comment le ramener dans la version anglaise...)

26voto

mmopy Points 375

J'ai eu le même problème avec les versions affichant le même message. J'ai simplement cliqué avec le bouton droit sur les fichiers incriminés et sélectionné "Rétablir ..." dans le menu contextuel et tout s'est bien passé.

Fondamentalement, Versions (en réalité Subversion) pense que vous souhaitez toujours ajouter le fichier, mais ne le trouve pas car vous l'avez supprimé du système de fichiers. L'option Revert dit à Subversion de ne plus l'ajouter.

9voto

gbjbaanb Points 31045

Ajouter un fichier, puis le supprimer est le type d'opération considéré comme une erreur - et SVN vous le dit. Vous lui avez dit d'attendre des données de fichier et de ne pas les fournir lorsque vous vous engagez, les voyants rouges clignotent et les sirènes s'éteignent!

La solution consiste à annuler votre ajout, sinon validez le fichier, puis utilisez «svn rm» pour le supprimer du système de fichiers et du référentiel.

2voto

Totoro Points 669

Évitez d’utiliser Xcode pour renommer des fichiers dans une référence de dossier. Si vous renommez un fichier en utilisant Xcode, il sera marqué pour validation. Si vous le supprimez plus tard avant la validation, vous obtiendrez cette erreur.

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