10 votes

Comment puis-je forcer subversion à livrer un fichier périmé ?

Je voudrais "écraser" mon dernier commit avec la version précédente. J'ai essayé d'extraire la version 631, d'effectuer quelques modifications et de la valider en tant que version 633. Mais svn n'est pas d'accord, car la version 632 existe.

Quel est le moyen le plus simple de le faire ? Il s'agit d'un commit multi-fichier. Je ne veux pas le faire manuellement.

9voto

Raj More Points 22358

Au lieu de vérifier le 631, faites un REVERT à 631. Ensuite, vous pourrez vous changer et vous enregistrer.

9voto

rafaelrezend Points 479

La question est un peu ancienne, mais la réponse peut être utile pour une référence future :

Eh bien, en fait, on n'est pas censé livrer des fichiers périmés au SVN. Le serveur lui-même refuse ces fichiers pour des raisons de sécurité. Une chose à faire est de faire une mise à jour à partir de la dernière version, mais en gardant vos fichiers "périmés" pendant le processus de fusion automatiquement :

svn up --accept mine-full

En d'autres termes, la mise à jour sera effectuée, mais les fusions entrantes seront ignorées.

3voto

Gilbert Le Blanc Points 25590

Si vous ne pouvez pas faire un REVERT à la version 631, faites ce qui suit :

  • Enregistrez vos modifications à l'extérieur de votre zone de travail.
  • Mettez à jour votre espace de travail à la version 632 (HEAD).
  • Appliquez de nouveau les modifications à votre zone de travail.
  • Engagez-vous.

1voto

Victor Points 1003

Je souhaite également disposer de cette fonctionnalité. Pourquoi n'existe-t-il pas une commande similaire à svn commit --force-overwrite-new-version ?

Copiez la révision 631 du SVN vers la révision 633 du SVN, et ensuite vous pouvez livrer vos changements à la révision 634 du SVN.

svn copy remote_url@631 remote_url
svn commit

P.S. Pas plus que git ont cette caractéristique. Il n'existe pas de commande telle que git merge foo --force-overwrite .

Parfois, les exigences changent, et un code qui est engagé devient inutile. Cela arrive très souvent, donc écraser du code est d'une utilité vitale. Je me demande pourquoi ni svn ni git possède cette caractéristique. Quelle conception stupide !!!

0voto

Owl Points 11

Copiez le fichier avec les anciennes modifications ailleurs, faites une mise à jour svn du fichier à vérifier. Quand c'est terminé, écrasez le fichier récent nouvellement mis à jour avec votre ancien fichier, puis faites un svn commit.

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