Question

J'ai donc mon dépôt subversion stocké sur un nuage (par exemple code.google.com), mais pour diverses raisons que je dois faire mon code non-public.

J'ai décidé que je devais télécharger l'ensemble du référentiel et migrer vers mon propre serveur svn.

Alors je suis allé sur l'utilisation:

svnsync init DEST SRC
svnsync sync DEST

Et il a fallu environ 0,5 seconde pour chaque révision du repo!

Heureusement, ma pension n'avait comme 200 révisions ... donc quelques minutes à attendre. Mais qu'en est-projets matures qui ont 200.000 ou 2.000.000 révisions!

... 2E6 * 0,5 / 60/60/24 ~ 11 jours!


est-il quoi que ce soit plus rapide que « svnsync » pour télécharger votre repo d'un nuage?

Était-ce utile?

La solution

Eh bien, évidemment, vous pouvez sauvegarder vous-même sur le serveur, puis zip et télécharger. Ou vous pouvez tout simplement pas télécharger toute l'histoire.

Mais quel est le point de cette question? Il est un peu académique, que votre problème est résolu.

Autres conseils

J'ai le même problème dans ma collection de dépôts qui ont des centaines de milliers de révisions. Voici comment je contourner:

  1. Créer un référentiel vide sur le miroir.
  2. Créer un fichier de vidage gziped de mon dépôt. (Mon système de sauvegarde fait déjà) (note: cette étape a pris la nuit pour envoyer mon dépôt géant à travers continent)
  3. scp (ou votre technique de copie de fichiers distant favori), le fichier de vidage sur le serveur miroir.
  4. référentiel de charge, en veillant à spécifier --force-uuid.
  5. Configurer les revprops sur la révision 0. Je viens a un dépôt blanc normalement configuré et regarda son tour 0.

Vous êtes maintenant prêt à fonctionner svnsync sur votre serveur maître. Cela continuera d'où votre décharge laissé à.

Dans le cas de l'OP, où vous n'avez pas accès à la console au serveur svn, svnsync (qui est essentiellement svn checkout d'URL 1 combiné avec svn commit à l'URL 2) est aussi bon que vous allez obtenir.

Mais si vous avez accès au serveur, il existe des moyens plus rapides que svnsync. Une bonne méthode pour construire un miroir est utilisé svnadmin hotcopy pour faire la copie initiale du référentiel, puis utilisez l'option svnsync init --allow-non-empty ajouté à la subversion 1.7 pour le transformer en un miroir. Cela vous donne également une sauvegarde de vos crochets, etc., qui SVNSync sera pas autrement.

Notez que vous voulez déplacer votre répertoire hooks à hooks-original ou quelque chose afin qu'ils ne seront pas utilisés par le miroir --- surtout si vous avez un crochet post-commit sur le repo original qui appelle svnsync sync!

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