2009-08-18 8 views
22

Partout où je vais sur google j'obtiens la même réponse à ce problème mais c'est la mauvaise réponse pour moi. À l'origine j'ai installé Subversion 1.5.6 pour Windows (je cours Windows Server 2008) sur mon serveur et j'ai fait un dépôt pour un projet. Ensuite, j'ai utilisé un client Tortoise version 1.6.X sur mon ordinateur portable pour mettre à jour le projet. Tout était fameux jusqu'à ce que j'essaie d'utiliser un script hook post-commit (je mets à jour les dossiers dans wwwroot sur commit pour refléter les changements sur une page web). J'ai reçu un message à l'effet "Ce client est trop vieux pour travailler avec la copie de travail 'XXX'". J'ai donc désinstallé le client SVN sur mon ordinateur portable et retiré le référentiel du serveur. J'ai ensuite fait un nouveau dépôt sur le serveur à partir de zéro et installé TortoiseSVN version 1.5.6 en pensant que si la version du client est la même que Subversion sur le serveur, alors ils devraient bien jouer. Après avoir téléchargé à nouveau le dépôt sur mon ordinateur portable et réinstallé mon script crochet je reçois le même message ...Ce client est trop vieux pour travailler avec la copie de travail

Il est très pénible et dérangeant d'avoir à continuer d'oblitérer mes dépôts et de réinstaller mon client pour trouver ceux qui coopèrent par essais et erreurs. Je ne vois aucune raison (et je ne peux en trouver aucune en ligne) de savoir pourquoi le référentiel argumenterait si TortoiseSVN et mon serveur Subversion sont tous les deux 1.5.6.

Y at-il quelqu'un là-bas qui peut donner un aperçu de la raison pour laquelle je recevrais ce message? Peut-être même quelqu'un qui pourrait me faire savoir quelle version de TortoiseSVN je dois utiliser pour que mon serveur SVN 1.5.6 ne se plaint pas. Mon script hook fonctionne à partir de la ligne de commande sur mon serveur, donc je sais que ce n'est pas sa faute. Merci d'avance.

+2

Vous obtenez le message d'erreur de TortoiseSVN ou autre chose? Que fait le script hook? Êtes-vous accéder au serveur svn via http? – leeeroy

+1

Si vous avez des problèmes avec le client, pourquoi recréer le référentiel et ne pas simplement recréer une copie de travail? Ou avez-vous mis à jour le serveur aussi? – Eugene

+0

Je reçois l'erreur dans TortoiseSVN et le client de ligne de commande. Voici à quoi ressemble mon script: "[PATH TO svn.exe]" update "[CHEMIN VERS SERVEUR COPIE]" --quiet --non-interactive --username [USERNAME] --password [PASSWORD] --config-dir "[CHEMIN VERS FICHIER DE CONFIGURATION DU REPOSITORY]" Je n'accède pas par http – Adamantine

Répondre

14

Il s'avère que ma version du serveur de SVN était 1.5.6, mais le client TortoiseSVN que j'avais installé sur le serveur était la version 1.6.3. Quand je devrais vérifier ma copie de travail de wwwroot (ou la mettre à jour en utilisant les bonnes options de clic que TortoiseSVN m'a donné) et a mis à jour cette copie de travail, le serveur SVN n'a pas pu le mettre à jour parce qu'il était une version inférieure.

J'ai téléchargé TortoiseSVN 1.5.6 à partir du fichier hippo et j'ai revérifié la copie de travail sur le serveur et tout a bien fonctionné!

+1

N'était-ce pas exactement le point que je faisais? (Voir mon dernier commentaire) – paracycle

3

Vous prétendez que la cause de votre problème n'est pas le script de hook post-commit, mais mon intuition est que c'est exactement la racine de vos problèmes. Lorsque votre script post-commit s'exécute, comment récupère-t-il les fichiers de votre serveur Subversion pour qu'il puisse les copier sur votre serveur web? Est-ce que ce n'est pas les vérifier? En outre, vous dites que tout fonctionnait bien jusqu'à vous avez installé le script hook post-commit. J'ai déjà travaillé dans des situations d'installation SVN client/serveur en mode mixte, y compris TortoiseSVN en tant que client et je n'ai jamais rencontré d'incompatibilité tant que les clients qui travaillent sur le même référentiel sont de la même version.

Pourriez-vous s'il vous plaît poster le contenu de votre crochet post-commit afin que nous puissions élaborer plus loin?

+0

Je commence à penser que vous avez raison sur le script hook. Voici le script de mon hook: "[PATH TO svn.exe]" update "[CHEMIN VERS SERVEUR COPIE]" --quiet --non-interactive --username [USERNAME] --password [MOT DE PASSE] --config -dir "[CHEMIN VERS FICHIER DE CONFIGURATION DU REPOSITORY]" c'est un fichier .cmd dans le répertoire hooks de mon dépôt – Adamantine

+0

Exactement ce que je pensais. Maintenant, quelle est la version de svn.exe spécifiée dans '[PATH TO svn.exe]'? Je vous parie qu'il y a un conflit là-bas. – paracycle

+0

Sur une note de côté, voici un lien vers l'endroit où j'ai obtenu cette solution. Semble travailler pour lui, mais pas pour moi: http://www.codersrevolution.com/index.cfm/2008/9/15/Creating-a-postcommit-hook-for-Subversion – Adamantine

0

Si vous passez de 1,6 à 1,5, vous devrez peut-être rétrograder. Vous ne nous dites jamais comment vous déplacez votre référentiel, mais vous devez, en fonction de votre méthode, obtenir une version du référentiel lui-même.

http://wiki.open.collab.net/wiki/Subversion_Client_FAQ#head-ed7f8e6b7f3265c74eaf7d49dcd4aab85bae2a12

+0

il n'y avait pas besoin de rétrograder le dépôt parce que je l'ai complètement supprimé et refait quand j'ai changé de version. – Adamantine

0

Vérifiez pour voir ce que la commande svn votre script hook post-commit est en cours d'exécution. Vérifiez que la version de cette commande correspond à la version du dernier client SVN à toucher votre référentiel.

Par défaut, lors de l'utilisation d'une nouvelle version d'un client subversion, le référentiel sera mis à niveau vers cette version. Cela signifie que soudainement les clients plus âgés cessent de travailler.

+0

Il mettra à jour la copie de travail, pas le dépôt (sauf si vous mettez à jour le serveur lui-même). Habituellement, si vous voulez des clients plus âgés, vous faites simplement un paiement propre. – Eugene

0

J'ai eu la même erreur. Mais la cause a été que j'ai vérifié le projet avec un client svn 1.5 et mon plugin subclipse dans eclipse était la version 1.4. Donc mettre à jour mon plugin subclipse vers la version 1.6 a fait l'affaire. donc le problème était que la sous-section 1.4 ne fonctionne pas avec les projets qui ont été extraits avec le client svn 1.5.

Espérons que cela aide quelqu'un.

1

Dans mon cas, j'ai déplacé le code Eclipse d'un endroit à un autre, puis le problème a commencé. Pour résoudre je vérifie le projet sous la forme svn repo. Puis, dans l'ancien projet, j'ai nettoyé tous les fichiers svn. (il suffit de chercher .svn et de supprimer) puis je copie le contenu dans le projet qui vient d'être extrait, mes modifications sont devenues visibles et mon projet est à jour. Cette méthode peut être appliquée pour d'autres erreurs gênantes. Espérons que cette aide quelqu'un

Questions connexes