Question

J'ai un serveur svn sur notre réseau local sur ses fenêtres. Les développeurs utilisent et check in / out de cela. Juste pour être du côté plus sûr, nous avons pris un serveur de Rackspace un linux. Est-il possible de faire une synchronisation automatique hebdomadaire à partir du serveur local svn à une distance. La seule télécommande sera principalement utilisé comme une sauvegarde à distance, mais juste au cas où si quelqu'un veut accéder alors ils peuvent faire car il n'y a pas d'adresse IP statique ou externe pour notre lan.

Était-ce utile?

La solution

Je suggère d'utiliser svnsync pour ça. Une fois déclenchée du crochet post-commit, cet outil (partie de la distribution de svn) permet une synchronisation en temps réel entre 2 (ou plus) des serveurs de svn.

Autres conseils

Tant que le serveur de sauvegarde est utilisé en lecture seule, quelque chose de base comme rsync devrait fonctionner. Mais vous voudrez peut-être mettre en œuvre une boucle de nouvelle tentative qui ne cesse en cours de synchronisation jusqu'à ce qu'il n'y a rien à synchroniser, de sorte que vous ne pas synchroniser un état exactement pendant que quelqu'un commet quelque chose.

Si vous avez besoin accès en lecture / écriture sur les deux sites, il pourrait être plus sûr et plus facile à utiliser quelque chose comme git et l'utilisation git-svn du côté client comme « compatibilité descendante ».

Une autre option consiste à utiliser SVK , un système de contrôle de version distribuée construite au-dessus de SVK . Mais cela aussi ne pas être totalement transparent pour les clients.

Vous pouvez utiliser svnadmin vider pour vider un dépôt entier. Vous pouvez utiliser un crochet postcommit avec la même commande pour vider la validation dans un format autonome qui peut être plus tard réappliquée

La combinaison de ces derniers et rsync vous pouvez effectivement reproduire votre serveur sur un autre serveur. Tant que votre serveur de sauvegarde est uniquement accessible en lecture seule, il peut être utilisé. Dans le cas d'une défaillance, un simple interrupteur svn permettra d'utiliser votre developpeurs le serveur de sauvegarde.

Je vous recommand acls de configuration pour interdire l'écriture à la serveur de sauvegarde à moins qu'il devient le maître.

Une autre solution tel que signifié par Peter pourrait être SVK, mais qui ne peut être utilisé pour une synchronisation automatique complète: Qu'advient-il s'il y a des changements contradictoires faites sur les deux serveurs? le script échouera ou mutiler cela. Quelque chose comme la fusion distribuée doit être examiné par un être humain.

Une autre solution serait la façon svn --mirror

Vous devriez essayer de lire des informations plus détaillées sur le maintien de prises en pension en phase: Comment synchroniser deux référentiels Subversion :)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top