1
Je vais transférer des dépôts Git d'un ancien serveur SCM vers 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:Comment déplacer des dépôts Git et minimiser les temps d'arrêt
- Sur la nouvelle machine, cloner chaque dépôt en utilisant
git clone --mirror
- Copie sur des crochets de prise en pension pour chaque dépôt
- accès Disallow à l'ancien serveur (nous utilisons gitosis, donc supprimer l'accès pour tous les utilisateurs sauf pour le nouveau serveur)
- Déplacez l'entrée DNS afin que les utilisateurs Git de l'alias DNS utilisent
- Exécutez
git pull
pour chaque référentiel sur le nouveau serveur. Pour chaque référentiel sur le nouveau serveur, modifiez le fichier de configuration pour supprimer la sectionremote "origin"
. - Activez l'accès au nouveau serveur
Questions:
- Est-ce correct? Je suis spécifiquement concerné par l'étape # 6.
- Y a-t-il un moyen de le faire pour réduire les temps d'arrêt?
Merci.
Merci pour votre aide, VonC. Il y a une connectivité entre les deux cases, donc j'utiliserai clone pour déplacer le contenu du repo. En outre, merci pour le pick-up sur la copie des crochets. J'ai manqué ça. Je pense que clone --mirror est meilleur que clone --bare dans ce scénario car le miroir est le plus nue et ajoute l'origine au fichier de configuration. Y at-il quelque chose à propos de clone --mirror je ne sais pas ce qui vous ferait ne pas le recommander? – StretchyBill
@StretchyBill: 'git clone --mirror' me semble bien, déjà utilisé dans les techniques de sauvegarde comme dans http://stackoverflow.com/questions/1251713/backup-of-github-repo ou http://stackoverflow.com/questions/1694608/dépôt-cloné-dépôt-dans-git-le-maître/1694832 # 1694832 – VonC