web-dev-qa-db-fra.com

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

J'ai tenté de déplacer une structure de répertoires d'un emplacement à un autre dans Subversion, mais une erreur de validation Item '*' is out of date s'est produite.

J'ai la dernière version extraite (pour autant que je sache). svn st -u ne fait apparaître aucune différence autre que les commandes mv.

329
Tim Visher

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

621
Michael

Après avoir essayé toutes les choses évidentes et quelques autres suggestions ici, sans aucune chance, une recherche Google a conduit à ce lien (le lien ne fonctionnait plus) - Subversion dit: Votre fichier ou répertoire est probablement hors de -date

En un mot, l’astuce consiste à accéder au répertoire . Svn (dans le répertoire contenant le fichier incriminé), et à supprimez le fichier "all-wcprops" .

Travaillé pour moi quand rien d'autre n'a fait.

41
Tom Bushell

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

39
Jim Deville

J'ai trouvé que cela fonctionne pour moi:

svn update
svn resolved <dir>
svn commit
32
Per Löwgren

J'ai essayé de mettre à jour la copie locale et de rétablir l'élément en question tout en obtenant l'erreur "obsolète". Cela a fonctionné pour une raison quelconque:

svn update --force /path/to/dir/or/file
14
Aaron Hall

Je viens d'avoir le même problème dans plusieurs dossiers et voici ce que j'ai fait pour valider:

1) Dans la perspective "Synchroniser l’équipe", cliquez avec le bouton droit de la souris sur le dossier> Remplacer et mettre à jour.
2) Supprimez à nouveau le dossier
3) Engagez-vous et soyez heureux

10
Rafael Xavier

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

Si votre fichier récent dans le répertoire local est identique, il n'y a pas d'invite. Si le fichier est différent, il vous demande tf, mf, etc.

Jay CompuMatter

5
Jay

J'arrive à le résoudre en appuyant sur un bouton de mise à jour

5
Alvin567

Comme @ Alexander-Klyubin le suggère, déplacez-vous dans le référentiel. Cela sera également beaucoup plus rapide, en particulier si vous devez déplacer une grande quantité de données, car vous ne devrez plus jamais transférer toutes ces données sur le réseau.

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

devrait bien fonctionner

4
Aeon

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

Sudo rm -r /path/to/dir/

après :

svn up and commit or delete 
3
Clamorious

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

# 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
infogizmo

Si vous utilisez le pont github svn, c'est probablement parce que quelque chose a changé du côté de github. La solution est simple, il vous suffit d’exécuter svn switch, qui le laisse se retrouver correctement, puis de le mettre à jour et tout fonctionnera. Il suffit de lancer ce qui suit à partir de la racine de votre caisse

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 provient de blog de Lee Preimesberger

2
Perkins

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

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

2
jgreep

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

2
Alexander

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

Si l'erreur out of date se produit de manière aléatoire alors qu'elle ne devrait normalement pas, lorsque vous exécutez la validation, cela peut indiquer que vous utilisez un client ou un serveur obsolète et non pris en charge par Subversion 1.7 ou une version plus ancienne.

Vous devez mettre à niveau le serveur et les clients afin de résoudre le problème. Reportez-vous à l’entrée correspondante des notes de publication de Subversion 1.9: erreurs "obsolètes" lors de la validation sur HTTPv1.

1
bahrep

L'erreur est due au fait que vous n'avez pas mis à jour ce fichier particulier. Commencez par mettre à jour, puis vous seul pouvez valider le fichier.

1
abhishek pant

Le déplacez-vous avec svn mv ou juste mv? Je pense que l’utilisation de mv peut être à l’origine de ce problème.

1
Ryan Bigg

Je l'ai fait et cela a fonctionné pour moi:
1. Faites une 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 >> Obtenir la révision: cela annulera vos modifications locales.
4. Maintenant, fusionnez votre code avec le dernier fichier avec le fichier de sauvegarde (étape 1).
5. Synchronisez et validez le fichier nouvellement fusionné.

1
Sameer Patel

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

1
Bower

J'ai déplacé le répertoire sur mon ordinateur local pour le mettre en sécurité, puis svn a supprimé le répertoire stupide, puis validé. Lorsque j'ai essayé d'ajouter le dossier à partir de ma machine locale, il a ENCORE généré l'erreur (le déplacement SVN a fait la même chose lorsque j'ai essayé de renommer le dossier). Alors je suis revenu, puis j'ai fait un mkdir DIRNAME, ajouté et commis. Ensuite, j'ai ajouté le contenu et engagé, et cela a fonctionné.

1
Melissa

Si une fois résolu un problème similaire, en extrayant simplement une nouvelle copie de travail et en remplaçant le répertoire .svn, en lançant les erreurs de validation, cette dernière a été extraite. La raison dans mon cas était qu’après la corruption du référentiel et la restauration à partir d’une sauvegarde, la copie de travail était dirigée vers une révision qui n’existait pas dans le référentiel restauré. Également eu des erreurs "article obsolète". La mise à jour de la copie de travail avant la validation n'a pas résolu le problème, mais le remplacement du fichier .svn, comme décrit ci-dessus, l'a été.

1
fileunderwater

Essayé tout mais changer directement dans .svn. Rien n'a aidé alors voici ma solution.

Dans Eclipse> Fenêtre> Afficher la vue> Historique J'ai vu que ce fichier n'était pas à la dernière révision, bien que j'aie créé plusieurs "annulations et mises à jour"/"Rétablir"/supprimer et extraire le fichier.

Je me suis donc lancé dans l'explorateur de packages> clic droit sur fichier> remplacer par> dernier du référentiel.

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

1
katana0815

"Clean Up" Il va vous mettre sur la bonne voie.

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

1
Binara Medawatta

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

0
Macilias

Je viens de recevoir ceci 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, utiliser svn update à partir du répertoire parent (auquel appartient le répertoire .svn) a résolu l'erreur.

Mon hypothèse à propos de ce qui s'est passé (un cas d'utilisation parmi d'autres, il peut y avoir plusieurs raisons à cette "svn: E160024: ressource périmée; essayez de mettre à jour"): le long de trunk, il y avait un branches annuaire. J'ai tiré un branches/branch-1 dans master depuis GitHub. Faire svn update depuis le répertoire parent (c'est-à-dire 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 encore, il n'y avait pas d'erreur.

Cependant, comme je l’ai dit plus haut, il s’agit probablement d’un cas parmi beaucoup d’autres.

Note latérale: contrairement à ce que quelqu'un a suggéré, je ne pense pas que ce soit une bonne idée de jouer manuellement dans le répertoire .svn.

0
Hibou57

j'ai eu cette erreur en essayant de valider certains fichiers, il s'agissait seulement d'un fichier/dossier qui n'existait pas dans ma copie de travail. Je n'ai VRAIMENT pas eu envie de déplacer les fichiers et de les revérifier. Finalement, j'ai fini de modifier le fichier .svn/entries et de supprimer la référence de répertoire incriminée.

0
Al W

Cela s'est produit lorsque j'ai mis à jour une branche d'une version antérieure avec des fichiers du coffre. J'ai utilisé l'Explorateur Windows pour copier dossiers à partir de mon dossier d'extraction de coffre, puis je les ai collés dans ma vue Eclipse du dossier d'extraction de branche. Maintenant, Windows Explorer était configuré pour ne pas afficher les fichiers "cachés" commençant par ".", De sorte que je ne connaissais pas tous les fichiers .svn incorrects collés dans mon dossier d'extraction de branche de publication. Doh!

Ma solution a été de supprimer le projet Eclipse endommagé, de le vérifier à nouveau, puis de copier les nouveaux fichiers avec plus de soin. J'ai également changé Windows pour afficher les fichiers "cachés".

0
Jim Ferrans

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 des actions supplémentaires telles que l’engagement et d’autres.
0
Indrajeet Gour

Pour résoudre le problème, j’ai dû inverser le fichier posant problème et mettre à jour ma copie de travail. Par la suite, j’ai modifié à nouveau le fichier. Après ces étapes, l’erreur ne se produisait plus.

0
sandolkakos

Je viens de recevoir cette erreur. Ce que je recommande, c’est d’abord de vérifier sur votre serveur si le fichier original est là. Parfois, les modifications ne sont pas effectuées dans votre dossier local. Si tel est votre cas, supprimez simplement votre dossier et revenez à la caisse.

0
brunch875