2009-07-21 5 views
20

Comment mettre à jour notre SVN de la version 1.4.4 à la version 1.6?Comment mettre à niveau SVN 1.4.4 (r25188) vers SVN 1.6

Je pensais que nous pourrions utiliser la ligne de commande suivante, mais il n'existe pas dans notre version:

svnadmin upgrade 

SVN est en cours d'exécution sur un environnement Windows Server. Nous exécutons la version du serveur SVN: svnadmin, version 1.4.4 (r25188) compilé 2007-06-08T18: 49: 42.

+0

Mettez-vous à niveau le client ou le serveur? – EFraim

+0

Nous exécutons la version SVN Server: svnadmin, version 1.4.4 (r25188) compilé 8 juin 2007, 18:49:42 – Robs

Répondre

32

Quel type de serveur utilisez-vous? Si vous utilisez apache (http: //) ou svnserve (svn: //), remplacez simplement tous les binaires svn par les versions 1.6.3 des binaires (genou jerk nag - sauvegardez d'abord votre dépôt, gardez l'ancien binaires autour). N'oubliez pas de mettre à jour les modules Apache si vous utilisez Apache.

Si vous n'utilisez pas de serveur, mais que vous exécutez directement les fichiers (c: \), mettez à jour vos clients pour utiliser 1.6.3.

À ce stade, votre nouveau serveur 1.6 dessert le référentiel 1.4. Pour mettre à niveau la structure du référentiel et obtenir un accès complet aux nouvelles fonctionnalités, utilisez la commande svnadmin upgrade fournie avec les binaires 1.6. Exécutez cette commande sur une machine qui a accès aux fichiers physiques du référentiel et donnez-lui l'emplacement physique de la racine du référentiel (c: \ myrepository).

Vous pouvez obtenir une structure de référentiel plus optimisée si vous videz le contenu avec svnadmin dump, créez un nouveau référentiel vide, svnadmin chargez l'ancien vidage. Lisez les notes de version pour 1.5 & 1.6 et la sortie de "svnadmin help upgrade" pour savoir pourquoi.

Vos clients peuvent mettre à niveau séparément, lorsqu'ils sont prêts. Un service 1.6 peut parler à un client 1.4, 1.5 ou 1.6, et un client 1.6 peut parler à un serveur 1.4, donc ce n'est pas grave si vous mettez à niveau les clients en premier.

Contrairement au référentiel, les copies de travail sur vos machines sont mises à niveau dès qu'un nouveau client les voit. Cela signifie que vous aurez du mal à mélanger des clients de différentes versions sur la même machine, par exemple, si vous utilisez tortoisesvn et ankh svn, vous devrez mettre à jour les deux versions de la version 1.6 en même temps. Si vous obtenez des erreurs de version de copie de travail, ce sera pourquoi. Il ne disparaîtra pas jusqu'à ce que vous arrêtiez d'utiliser les anciens clients.

Comme pour tout ce qui concerne la subversion, le redbook est essentiel.

+0

Merci Jim T - Je vais essayer. – Robs

+0

En pensant que je devais juste exécuter "svnadmin upgrade" et que cela mettrait à jour le logiciel et le dépôt. – Robs

+0

J'ai maintenant le nouveau 1.6.2 fonctionnant le long de la 1.4.4 Ce n'était pas tout à fait ce que je m'attendais. – Robs

0

La commande svnadmin fait partie du package de serveur SVN. Assurez-vous que vous exécutez la version serveur du package (vous n'avez pas besoin d'exécuter svnadmin sur votre client/copie de travail local).

Si vous avez installé une version groupée/packagée, assurez-vous qu'il s'agit de la version complète.

+0

Nous exécutons SVN Server sur Windows 2003 Server. Comment vérifier si c'est une version empaquetée/emballée? – Robs

2

Nous avons suivi la recommandation de Jim T et cela a bien fonctionné. Nous avons eu un seul problème avec COMMIT:

svn: Engagez Failed (détails ci-après): svn: Impossible d'ouvrir le fichier/db/TXN-verrouillage actuel »: Autorisation refusée

Nous avons résolu en changeant la autorisations des fichiers dans le dossier db.

+0

parce que vous n'avez pas l'autorisation d'écriture avec le projet. Donnez l'autorisation au référentiel, puis vous pouvez valider svn. – unknown

Questions connexes