Comment surmontez-vous l'erreur svn 'out of date'?

J'ai essayé de déplacer une structure de répertoire d'un emplacement à un autre dans Subversion, mais j'obtiens une erreur Item '*' is out of date commit.

J'ai la dernière version vérifiée (pour autant que je sache). svn st -u n'affiche aucune différence autre que les commandes mv.

321
svn
demandé sur Jeffrey Bosboom 2008-09-18 01:38:50

30 réponses

Je reçois parfois cela avec TortoiseSVN sur windows. La solution pour moi est de svn update le répertoire, même s'il n'y a pas de révisions à télécharger ou à mettre à jour. Il fait quelque chose aux métadonnées, ce qui le corrige comme par magie.

597
répondu Michael 2008-09-17 21:52:50

Après avoir essayé toutes les choses évidentes, et quelques-unes des autres suggestions ici, sans aucune chance, une recherche Google a conduit à ce lien (lien ne fonctionne plus) - Subversion dit: votre fichier ou répertoire est probablement obsolète

En un mot, l'astuce est d'aller à la .SVN directory (dans le répertoire qui contient le fichier incriminé), et supprimez le fichier" all-wcprops " .

Travaillé pour moi quand rien d'autre.

40
répondu Tom Bushell 2013-12-08 20:34:37

Je crois que ce problème vient de la .fichier svn. C'est incorrect dans l'ancien parent, le nouveau parent ou l'ancien. J'essaierais de revenir à votre point de départ. Utilisez une exportation pour obtenir une copie propre du dossier. Déplacez la copie propre vers le nouvel emplacement et utilisez un ajout et une suppression pour effectuer le déplacement. C'est faire manuellement ce que fait SVN, mais cela pourrait fonctionner.

39
répondu Jim Deville 2008-09-17 21:49:59

, j'ai trouvé que cela fonctionne pour moi:

svn update
svn resolved <dir>
svn commit
27
répondu Per Löwgren 2013-01-19 10:30:58

A essayé de mettre à jour la copie locale, et de rétablir l'élément en question, et a toujours eu l'erreur "obsolète". Cela a fonctionné pour une raison quelconque:

svn update --force /path/to/dir/or/file
13
répondu Stu Thompson 2011-05-18 11:25:56

J'ai juste eu le même problème dans plusieurs dossiers, et c'est ce que j'ai fait de commettre:

1) dans la perspective" synchroniser L'équipe", faites un clic droit sur le dossier > remplacer et mettre à jour
2) Supprimez à nouveau le dossier
3) S'engager et être heureux

10
répondu Rafael Xavier 2013-10-31 13:40:44

Je vous Remercie. Cela vient de le résoudre pour moi. svn update --force / chemin d'accès au nom de fichier /

Si votre fichier récent dans le répertoire local est le même, il n'y a pas d'invites. Si le fichier est différent, il invite à TF, MF etc... choisir mf (le mien plein) assure que rien n'est écrasé et que je pourrais commettre une fois terminé.

Jay CompuMatter

5
répondu Jay 2011-06-06 11:01:16

Je parviens à le résoudre en appuyant sur un bouton de mise à jour

5
répondu Alvin567 2012-09-03 15:04:43

Comme le suggère @Alexander-Klyubin, faites le mouvement dans le dépôt. Cela va également être beaucoup plus rapide, surtout si vous avez une grande quantité de données à déplacer, car vous n'aurez plus à transférer toutes ces données sur le réseau.

svn mv https://username@server/svn/old/ https://username@server/svn/new/

Devrait fonctionner très bien

4
répondu Aeon 2008-09-18 02:31:40

Supprimez votre fichier ou votre chemin en utilisant avant d'exécuter la commande, faites un bk de vos modifications

sudo rm -r /path/to/dir/

Après :

svn up and commit or delete 
3
répondu Clamorious 2012-09-10 14:46:34

Êtes-vous sûr d'avoir vérifié la tête et non une révision inférieure? Aussi, Avez-vous fait une mise à jour pour vous assurer que vous avez la dernière version?

Il y a une discussion à ce sujet sur http://svn.haxx.se/users/archive-2007-01/0170.shtml.

2
répondu jgreep 2008-09-17 21:47:14

Effectuez le déplacement directement dans le référentiel.

2
répondu Alexander 2008-09-17 21:48:56

Il y a au moins une autre cause de l'erreur de message "obsolète". Dans mon cas, le problème a été .svn / dir-props qui a été créé en exécutant "SVN propset svn: ignore-F.gitignore ."pour la première fois. Supprimer .svn/dir-accessoires semble être une mauvaise idée et peut entraîner d'autres erreurs, de sorte qu'il peut être préférable d'utiliser "svn propdel" pour nettoyer l'errant "svn propset".

# Normal state, works fine.
> svn commit -m"bump"  
Sending        eac_cpf.xsl
Transmitting file data .
Committed revision 509.

# Set a property, but forget to commit.
> svn propset svn:ignore -F .gitignore .
property 'svn:ignore' set on '.'

# Edit a file. Should have committed before the edit.
> svn commit -m"bump"                   
Sending        .
svn: Commit failed (details follow):
svn: File or directory '.' is out of date; try updating
svn: resource out of date; try updating

# Delete the property.
> svn propdel svn:ignore .              
property 'svn:ignore' deleted from '.'.

# Now the commit works fine.
> svn commit -m"bump"     
Sending        eac_cpf.xsl
Transmitting file data .
Committed revision 510.
2
répondu infogizmo 2013-02-21 17:26:13

Si vous utilisez le pont svn GitHub, c'est probablement parce que quelque chose a changé du côté de github. La solution est simple, il suffit d'exécuter svn switch, ce qui lui permet de se trouver correctement, puis de mettre à jour et tout fonctionnera. Exécutez simplement ce qui suit à partir de la racine de votre commande

svn info | grep Relative 
svn switch path_from_previous_command
svn update

Ou

svn switch `svn info | grep Relative | sed 's_.*: __'`
svn update

La base de cette solution vient du blog de Lee Preimesberger

2
répondu Perkins 2015-09-06 07:56:51

Le déplacez-vous en utilisant svn mv, ou simplement mv? Je pense que l'utilisation de mv peut causer ce problème.

1
répondu Ryan Bigg 2008-09-18 12:48:52

J'ai déplacé le répertoire sur ma machine locale pour le garder en sécurité, puis svn a supprimé le répertoire stupide, puis commis. Quand j'ai essayé d'ajouter le dossier de ma machine locale, il a toujours jeté l'erreur (SVN move a fait la même chose quand j'ai essayé de renommer le dossier). Donc, je suis revenu, puis j'ai fait un DIRNAME mkdir, ajouté et commis. Ensuite, j'ai ajouté le contenu et commis, et cela a fonctionné.

1
répondu Melissa 2010-11-01 19:56:55

J'ai reçu aléatoirement cette erreur après avoir supprimé quelques répertoires contenant chacun des fichiers. J'ai supprimé les répertoires via Netbeans et j'ai réalisé qu'il ne les supprimait pas réellement. Il semblait simplement supprimer tout ce qui se trouvait dans les répertoires et supprimer la référence au répertoire dans Netbeans. Ils existaient toujours sur le système de fichiers cependant. Assurez-vous qu'ils sont supprimés du système de fichiers et réessayez la validation.

1
répondu Bower 2012-06-06 06:39:45

Si une fois résolu un problème similaire en vérifiant simplement une nouvelle copie de travail et en remplaçant le .répertoire svn lancer les erreurs de validation avec celui nouvellement extrait. La raison dans mon cas était qu'après une corruption du référentiel et une restauration à partir d'une sauvegarde, la copie de travail pointait vers une révision qui n'existait pas dans le référentiel restauré. Également obtenu l'élément de date" erreurs. La mise à jour de la copie de travail avant la validation n'a pas résolu cela mais a remplacé le .svn comme décrit ci dessus faire.

1
répondu fileunderwater 2012-10-11 08:07:30

Je l'ai fait et cela a fonctionné pour moi:
1. Prendre une copie de sauvegarde de votre fichier. Vous pouvez simplement copier votre code dans un fichier texte.
2. Cliquez avec le bouton droit sur le fichier que vous souhaitez valider >> équipe >> Afficher L'historique. 3. Dans le Panneau "afficher L'historique", vous verrez toutes les révisions de ce fichier. Faites un clic droit sur la dernière révision du fichier > > Get Revision: il remplacera vos modifications locales.
4. Maintenant, fusionnez votre code avec le dernier fichier avec le fichier de sauvegarde (étape # 1).
5. Synchroniser et valider la nouvelle fusion fichier.

1
répondu Sameer Patel 2015-08-27 06:19:03

Mettez à niveau votre serveur et votre client vers Subversion 1.9.

Si l'erreur out of date se produit aléatoirement alors qu'elle ne le devrait normalement pas, lorsque vous exécutez commit, elle peut indiquer que vous utilisez un client ou un serveur Subversion 1.7 obsolète et non pris en charge ou plus ancien.

Vous devez mettre à niveau le serveur et les clients afin de résoudre le problème. Voir l'entrée Subversion 1.9 Release Notes correspondante: "erreurs" obsolètes " lors de la validation sur HTTPv1.

1
répondu bahrep 2016-01-18 17:09:42

L'erreur est parce que vous n'avez pas mis à jour ce fichier particulier, mettez d'abord à jour alors vous seul pouvez valider le fichier.

1
répondu abhishek pant 2016-05-13 12:30:17

Essayé tout sauf le changement .svn directement. Rien n'a aidé alors voici ma solution.

Dans Eclipse > Window > Show View > History j'ai vu que le fichier n'est pas à la dernière révision, bien que j'ai fait plusieurs svn "Override & Update" / "Revert" / delete file and checkout.

Donc je suis allé Package Explorer > Clic droit sur Fichier > remplacer par > Latest from Repository .

Un autre regard dans la vue historique a montré que le fichier était maintenant sur la dernière révision.

1
répondu katana0815 2016-12-14 16:43:33

Cela s'est produit lorsque j'ai mis à jour une branche d'une version antérieure avec des fichiers du tronc. J'ai utilisé L'Explorateur Windows pour copier les dossiers de mon dossier trunk checkout et les ai collés dans ma vue Eclipse du dossier release branch checkout. Maintenant, L'Explorateur Windows a été configuré pour ne pas afficher les fichiers "cachés" commençant par".", donc j'étais inconscient de tous les incorrects.les fichiers svn étant collés dans mon dossier de commande de la branche release. Doh!

Ma solution était de souffler les endommagés Eclipse project, vérifiez-le à nouveau, puis copiez les nouveaux fichiers plus soigneusement. J'ai également changé Windows pour afficher les fichiers "cachés".

0
répondu Jim Ferrans 2009-06-18 04:28:45

J'ai eu cette erreur en essayant de valider certains fichiers, seulement c'était un fichier/dossier qui n'existait pas dans ma copie de travail. Je ne voulais vraiment pas passer par les tracas de déplacer les fichiers et de revérifier, à la fin, j'ai fini par éditer le .svn / fichier d'entrées et supprimé la référence de répertoire incriminé.

0
répondu Al W 2011-12-20 02:42:28

Dans mon cas, seule la suppression de la version locale et la ré-extraction de la nouvelle copie étaient une solution.

0
répondu Macilias 2013-11-18 10:58:55

Je viens d'avoir cette erreur. Ce que je recommande est de vérifier d'abord sur votre serveur si le fichier d'origine est là. Parfois, les modifications ne sont pas effectuées dans votre dossier local. Si c'est votre situation, il suffit de supprimer votre dossier et de commander à nouveau.

0
répondu brunch875 2013-11-26 20:26:40

Pour résoudre, j'avais besoin de restaurer le fichier avec problème, et mettre à jour ma copie de travail, et plus tard j'ai modifié le fichier à nouveau et après ces étapes, l'erreur ne s'est plus produite.

0
répondu sandolkakos 2015-02-06 08:35:59

Il suffit de faire svn en ligne de commande ou si vous êtes dans windows, sélectionnez l'option svn update.

  • Une fois que cela sera fait, cela vous permettra de faire d'autres actions comme commettre et d'autres.
0
répondu Indrajeet Gour 2015-07-15 10:07:51

Je viens de l'obtenir alors que j'essayais de commit à partir d'un répertoire trunk. Faire svn update à partir du répertoire trunk n'a pas résolu l'erreur; cependant, faire svn update à partir du répertoire parent (où appartient le répertoire .svn) a résolu l'erreur.

Ma conjecture sur ce qui s'est passé (un cas d'utilisation entre autres, il peut y avoir plusieurs raisons à cela "svn: e160024: ressource obsolète; essayez de mettre à jour"): le long de trunk, Il y avait un répertoire branches. J'ai tiré un branches/branch-1 dans master de GitHub. Faire svn update à partir du répertoire parent (qui est la racine de ma copie de travail) au lieu de trunk semble avoir fait quelque chose dans branches en plus de trunk. Quand j'ai essayé de commit à nouveau, il n'y avait pas d'erreur.

Cependant, comme je l'ai dit plus haut, c'est un cas parmi beaucoup d'autres.

Side note: contrairement à ce que quelqu'un a suggéré, Je ne crois pas que ce soit une bonne idée de jouer manuellement dans le répertoire .svn.

0
répondu Hibou57 2016-12-05 19:36:40

"nettoyer" il vous mettra sur la bonne voie.

Faites un clic droit sur le dossier svn et cliquez sur 'Nettoyer', faites-le si vous obtenez cette erreur.

0
répondu Binara Medawatta 2017-12-01 13:10:19