Question

Je déplacerai dépôts Git à partir d'un serveur SCM ancien à un nouveau. Ma principale préoccupation (autre que la fidélité, bien sûr) est de minimiser les temps d'arrêt. Voici mon plan:

  1. Sur la nouvelle machine, chaque clone référentiel à l'aide git clone --mirror
  2. Copie sur des crochets de prise en pension pour chaque dépôt
  3. interdire l'accès aux vieux serveur (nous utilisons gitosis, donc supprimer l'accès pour tous les utilisateurs à l'exception du nouveau serveur)
  4. Déplacer l'entrée DNS afin de l'alias DNS utilisateurs Git utiliser
  5. Effectuer git pull pour chaque dépôt sur le nouveau serveur.
  6. Pour chaque dépôt sur le nouveau serveur, modifiez le fichier de configuration pour supprimer la section remote "origin".
  7. Activer l'accès au nouveau serveur

Questions:

  1. Est-ce correct? Je suis particulièrement préoccupé par l'étape 6.
  2. Est-il possible de le faire qui permettra de réduire les temps d'arrêt?

Merci.

Était-ce utile?

La solution

Je voudrais (s'il n'y a pas de communication possible entre l'ancien serveur et nouveau serveur):

  • en utilisant git bundle
  • copier le paquet sur le nouveau serveur
  • créer repo nus
  • git fetch de ces faisceaux dans chacun des repo nu vide (pas d'origine pour définir)
  • Copie vol stationnaire crochets
  • à interdire l'accès ancien serveur
  • faire un dernier paquet git sur chaque repo (paquet supplémentaire, très rapide)
  • copier ces petits paquets
  • git fetch l'incrément des petits paquets supplémentaires
  • rétablir l'accès

En cas de communication possible (par SSL) entre le nouveau et l'ancien serveur:

  • Je voudrais créer une « migration » spécial gitosis utilisateur, avec accès à tous les projets
  • clone --bare chaque projet sur le nouveau serveur
  • Copie vol stationnaire crochets
  • à interdire l'accès ancien serveur
  • un dernier git fetch sur chaque repo cloné
  • supprimer origine
  • rétablir l'accès
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top