Déployer un dépôt gitosis vers un site web

Salut,
Maintenant que mon dépôt gitosis est actif et rempli, j’ai l’intention de m’en servir pour mettre à jour un site web.
Je n’ai pas trouvé grand chose sur Internet, je me demandais si certains ici avaient déjà fait ça…
Si oui, un “mode d’emploi” serait le bienvenue.

Je ne comprend pas trop comment gitosis range les fichiers dans le dépôt, ni comment “cloner” vers un autre emplacement (un répertoire accessible via apache). Il doit y aussi avoir des questions de droits de fichiers…

Bref je suis un peu paumé.
Il y a un moyen de cloner un dépôt gitosis vers un autre répertoire du serveur ?

Re,
J’ai trouvé un moyen, mais c’est pas propre…

#!/bin/bash cd /var/www/site rm -R /var/www/site/web git clone /var/git/repositories/mondepot.git web chown -R webx:clienty /var/www/site/web/ chown -R root:root /var/www/site/web/stats exit

Le souci c’est que j’ai deux répertoires et deux fichiers (.htaccess et .htpasswd) qui ne devraient pas êtres dans le dépôt clonés.
Mais si le répertoire n’est pas vide, impossible de cloner:

fatal: destination path 'web' already exists and is not an empty directory.

Bref, ma solution n’est pas terrible… :017

$ mkdir /chemin/extraction $ touch /chemin/extraction/deja_present $ cd /chemin/vers/depot $ git archive --format=tar HEAD | tar xv -C /chemin/extraction AUTHORS COPYING DEPENDENCIES INSTALL README VERSION configure fix-aptitude-dependencies fix-aptitude-dependencies.conf $ ls -1 /chemin/extraction AUTHORS configure COPYING deja_present DEPENDENCIES fix-aptitude-dependencies fix-aptitude-dependencies.conf INSTALL README VERSION
Inconvénient qui va avec (forcément) : il ne supprime pas les fichiers déjà présents, donc si tu supprimes un fichier de ton dépôt il restera quand même dans le répertoire d’extraction. De deux choses l’une :

  • soit tu nettoies le répertoire avant de faire l’extraction (rm tout sauf ce que tu veux garder)
  • mieux : tu extrais dans un nouveau dossier, tu copies les fichiers nécessaires depuis l’ancien vers le nouveau, et tu échanges (mv prod prod_ancien ; mv extraction prod).

Re,
En fait je n’avais rien compris…
Un simple pull dans le clone suffit à le mettre à jour, avec un chown derrière (dans un script) et c’est réglé.
Je n’ai pas réussi à le faire avec /hooks/post-receive ça me sort une erreur…

Reste le problème de l’initialisation avec les répertoires initiaux.
J’ai encore BEAUCOUP à apprendre sur git, il faut que je m’y mette sérieusement si je veux travailler de façon propre avec ça…
Les options sont très nombreuses; trop nombreuses (et utiles) pour que je reste sur du basique…

Merci Syam

L’inconvénient du clone/pull c’est que tu dupliques aussi le dépôt lui-même (donc tout l’historique). Suivant l’utilisation que tu en fais c’est pas forcément gênant, mais ça restera toujours redondant. Enfin j’dis ça j’dis rien. :stuck_out_tongue:
Par contre ça règle effectivement le problème de synchronisation quand tu supprimes des fichiers du dépôt.

[quote=“syam”]L’inconvénient du clone/pull c’est que tu dupliques aussi le dépôt lui-même (donc tout l’historique). Suivant l’utilisation que tu en fais c’est pas forcément gênant, mais ça restera toujours redondant. Enfin j’dis ça j’dis rien. :stuck_out_tongue:
Par contre ça règle effectivement le problème de synchronisation quand tu supprimes des fichiers du dépôt.[/quote]

Oui,
Mais comme c’est pour du développement, et que le site n’est accessible que par mot de passe, ça n’a pas beaucoup d’importance.
L’objectif, c’est que lorsque le développeur fait un push de ses modifications, ce soit accessible immédiatement sur le serveur web pour contrôle; C’est bien pratique (et ça fait “pro”) pour présenter au client! :wink:
Et ça à l’air d’être ok (sauf que c’est pas automatique, il faut que je travaille le post-receive…)

Avec RedMine par dessus pour suivre les évolution et donner les consignes, c’est parfait!

Je passe en [Résolu] même si ça ne l’est pas tout à fait.

Encore merci, comme d’hab’ le problème s’est décanté au fur et à mesure que je posais les questions… :mrgreen:

Salut,
Pour ceux qui pourraient être intéressés:

Déployer un site web à partir de votre dépôt