logo

blog

My cute blog can’t be this disorganised!

Paramétrage de mon serveur git.html (2407B)


      1 <h1><a href="/articles/Param%C3%A9trage%20de%20mon%20serveur%20git">Paramétrage de mon serveur git</a></h1>
      2 <p>Après avoir eu plusieurs problèmes avec gitlab.com (impossibilitée de <code>git push</code> sur mon propre dépot, par example). J’ai décidé de faire un truc simple, inspiré de git.linkmauve.fr. J’ai mis tout mes dépots git dans le <code>/git</code>
      3 <h2>Démarrage avec juste nginx et ssh</h2>
      4 <p>Celui-là est trivial quand on connais le truc, suffit de mettre <code>git update-server-info</code> dans <code>hooks/post-update</code> du dépot git (qui doit être un --bare)</p>
      5 <h2>Ajout de git-daemon</h2>
      6 <P>Celui-là fût encore plus simple, j’ai juste eu à dire où sont les dépots git</p>
      7 <h2>Une meilleure interface</h2>
      8 <p>En cherchant des alternatives au GNU je suis tombé sur <a href="http://git.2f30.org/stagit/">stagit</a>, un générateur static pour git (je n’aime pas les CGI, surtout quand ça peut avoir un accès sur mon dépot git), pour l’utiliser j’ai rajouté ces lines au post-update-hook :</p>
      9 <pre><code>repo=$(pwd)
     10 cd "$(pwd | sed s/.git$//)" &amp;&amp; stagit -c "$repo.cache" "$repo"
     11 cd /git &amp;&amp; stagit-index *.git &gt; /git/index.html</code></pre></p>
     12 <h2>Déployement vers blog</h2>
     13 <p>Celui-là sort une erreur(probablement parceque GIT_INDEX_FILE est pas censé être vide) mais ça fonctionne :P</p>
     14 <code>GIT_INDEX_FILE='' git --work-tree=/srv/web/hacktivis.me --git-dir=/git/blog.git checkout -f</code>
     15 <h2>Garbage Collector</h2>
     16 <p>Ce n’est pas comme si mes dépots étaient gros, git est censé faire ça tout-seul mais apparement non, donc je fait un <code>git gc</code> à chaque fois, ce qui n’est pas très optimisé.</p>
     17 <h2>post-update hook final</h2>
     18 <pre><code>
     19 #!/bin/sh
     20 repo=$(pwd)
     21 update_f=' * Updating %s…'
     22 is_ok(){ echo ' [OK]'; }
     23 
     24 printf "$update_f" 'Garbage Collector'
     25 git gc &amp;&amp; is_ok
     26 
     27 printf "$update_f" info
     28 git update-server-info &amp;&amp; is_ok
     29 
     30 printf "$update_f" stagit
     31 cd "$(pwd | sed s/.git$//)" &amp;&amp; stagit -c "$repo.cache" "$repo" &amp;&amp; is_ok
     32 
     33 printf "$update_f" stagit-index
     34 cd /git &amp;&amp; stagit-index *.git &gt; /git/index.html &amp;&amp; is_ok
     35 
     36 # Erreurs mais fonctionnel
     37 grep blog &lt;&lt;&lt;$repo &amp;&amp; printf "$update_f" blog &amp;&amp; GIT_INDEX_FILE='' git --work-tree=/srv/web/hacktivis.me --git-dir=/git/blog.git checkout -f &amp;&amp; is_ok
     38 </code></pre>