2009-03-03 7 views
12

Est-il possible d'utiliser la même copie de travail et de la mettre dans deux serveurs SVN différents (commit, update, ...)?Même copie de travail du code avec 2 serveurs SVN

+0

Bonne question, +1, vous seriez surpris de voir combien de personnes doivent faire cela pour une raison ou une autre. –

Répondre

3

Oui, vous pouvez utiliser la commande Relocate (merci, Peter) pour connecter votre copie de travail au premier référentiel, y commettre, puis la relocaliser dans le deuxième référentiel et la valider également. Mieux vaut d'abord faire une copie de votre dossier de copie de travail ailleurs.

+1

Je reçois l'erreur 'Repository UUID ne correspond pas' :( – Saneef

+0

Les informations de connexion sont-elles différentes pour les référentiels? –

+0

Cela ne fonctionne pas! Chaque référentiel possède son propre UUID, donc vous ne pouvez pas passer --relocate à une nouvelle URL est un référentiel différent, sauf que vous manipulez l'uuid pour le faire correspondre (ce qui n'est pas une bonne chose à faire) –

1

Si plusieurs personnes parlent à des serveurs svn différents, vous aurez des problèmes. Les deux serveurs ne se parleront pas pour s'assurer qu'ils n'ont pas de conflits, utilisent les mêmes numéros de révision, etc. Au moins, je ne connais pas de svn hacks qui le feront. (Il existe d'autres systèmes de versions distribuées autour de svn, tels que svk.)

Quel est le but principal ici? Pouvez-vous seulement pousser sur un seul serveur, mais avoir ensuite un crochet post-commit pour répliquer la modification sur un autre serveur, ce qui permettrait un accès en lecture seule à partir de l'autre emplacement?

Plus de détails vous pouvez donner sur ce que vous voulez faire, plus nous sommes susceptibles de pouvoir vous aider.

1

Les systèmes de contrôle de version distribués, tels que Mercurial, Bazaar ou Git sont mieux adaptés pour de telles tâches. Vous pouvez pousser vous change dans n'importe quel nombre de dépôts.

1

C'est possible mais horriblement racé. Je dois actuellement faire cela parce que mon ISP est mort de cerveau et j'ai un problème difficile à atteindre différents centres de données en Europe. Donc, je pousse à mon serveur au Canada qui pousse immédiatement vers le référentiel réel.

À deux reprises, j'ai fini par avoir un numéro de révision différent (+1), ce qui signifie que mon prochain svn up est devenu très intéressant. Donc, je viens d'utiliser SSHFS (une monture FUSE) pour éditer des fichiers en place sur la copie Canada, puis je les ai validés directement. C'est toujours une vraie douleur et une des nombreuses raisons pour lesquelles j'aime autant Mercurial.

0

Tout d'abord, la caisse à chaque serveur de votre code, et après faire un svn_up.sh script comme ceci:

ssh server_one_ip_address svn up /path_to_working_copy_on_server1 
ssh server_two_ip_address svn up /path_to_working_copy_on_server2 

Utilisez sh svn_up .sh au lieu de svn up

Questions connexes