Question

Si j'ai un clone d'un dépôt git comme une copie en cache sur un serveur distant pour le déploiement de style Capistrano / vlad, est-il préférable de le faire A)

git archive --format=tar origin/master | (cd #{destination} && tar xf -)

ou B)

cp -R cached-copy #{destination} && rm -Rf #{destination}/.git

Pour clarifier, le référentiel est déjà sur le serveur distant, et je veux juste copier une version particulière dans un répertoire de presse sur le même serveur lors du déploiement.

Était-ce utile?

La solution

Je dirais en fait

rsync -avP /local/repo/* server:/remote/repo

Cela fonctionne aussi longtemps qu'il est OK sauter tous les fichiers de point dans la prise en pension, non seulement .git. Si vous voulez sauter uniquement .git alors vous aurez besoin de l'option -f et la page de manuel.

I love rsync . Fonctionne très bien et la plupart du temps vous pouvez l'utiliser comme vous le feriez utiliser scp!

Autres conseils

A)

Vous enregistrez le réseau aérien de transférer le répertoire .git qui pourrait être assez important selon la quantité de l'histoire et des objets pas dans la tête en cours.

Si vous avez déjà voulu avoir un dépôt git réel sur la machine distante, vous êtes mieux pousser à un véritable dépôt et seulement devoir changer les deltas.

Ni!

Une meilleure façon de le faire est à:

  • git fetch votre cache
  • Clone le cache de votre répertoire courant (avec les options de --no-checkout activé)
  • Commander la commettras vous voulez.

Quand vous faites un clone local Git utilise les hardlinks. Cela signifie que, jusqu'à ce que vous modifiez un fichier, que vous l'habitude, vous pouvez avoir 1000 déploiements et utiliser (pratiquement) que l'espace dont vous avez besoin pour un. De cette façon, a beaucoup plus rapide aussi l'archivage ou rsync.

Aussi quelqu'un peut avoir déjà écrit votre code pour vous.

de capistrano_rsync_with_remote_cache de vigetlab

J'utiliser avec Subversion et il fonctionne bien pour moi.

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