36 votes

Comment puis-je rétrograder la version d'une copie de travail SVN?

SVN répertoires sont idéalement facile de se déplacer entre des ordinateurs, mais cela peut être l'occasion de version de l'inadéquation entre la copie de travail et installé svn client résultant dans l'erreur

svn: This client is too old to work with working copy '.';  
  please get a newer Subversion client

Dans un monde parfait, on pourrait installer une version plus récente du client SVN, mais quand ce n'est pas possible ou pratique, il serait agréable d'être en mesure de dégrader la note de la copie de travail de la version du client installé, surtout quand on sait qu'aucune des fonctionnalités de la version ultérieure sont utilisés.

De vérifier une nouvelle copie de travail avec l'ancien client ne fonctionne que si la problématique de la copie de travail ne dispose pas de tous les changements, et n'est pas trop grande pour que gênant.

Le scénario d'imaginer serait quelque chose comme: Joe envoie une copie de travail avec beaucoup de répertoires imbriqués (et associés versionnées .svn dossiers). Vous travaillez sur elle. Lorsque vous essayez de le commettre, svn vous dit que votre client est trop vieux. De l'envoyer à Joe ne devrait pas être nécessaire. De vérifier une nouvelle copie de travail ne devrait pas être nécessaire et en fusionnant les changements qui serait gênant, en tout cas.

Est-il possible de faire cela?

36voto

blahdiblah Points 17382

Réponse courte: il n'est pas trivial.

Heureusement, les développeurs ont anticipé ce problème et de le traiter dans une FAQ: http://subversion.apache.org/faq.html#working-copy-format-change
Le résultat étant de télécharger et d'utiliser leur script dans le but: http://svn.apache.org/repos/asf/subversion/trunk/tools/client-side/change-svn-wc-format.py

Notez que ce script ne veut que le numéro de version majeure du client, donc si vous avez un client de la version 1.4.4, la commande serait:

python change-svn-wc-format.py <WC_PATH> 1.4 [...other options...]


Mise à jour:

Le script ci-dessus ne fonctionne que pour le déclassement de la version 1.6 ci-dessous. Le déclassement de 1,7+ n'est apparemment pas possible. La note à partir de la source:

# Downgrading from format 11 (1.7) to format 10 (1.6) is not possible,
# because 11 does not use has-props and cachable-props (but 10 does).
# Naively downgrading in that situation causes properties to disappear
# from the wc.
#
# Downgrading from the 1.7 SQLite-based format to format 10 is not
# implemented.

6voto

justin Points 11

Je viens de supprimer le dossier .svn du fichier de projet créé par 1.7 et de rajouter la solution à l'aide de 1.6. Cela a fonctionné pour moi, j'espère que cela aidera quelqu'un d'autre.

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