scratch/output/Scratch/fr/blog/2010-09-02-Use-git-to-calculate-trusted-mtimes/index.html
2012-01-20 11:16:02 +01:00

208 lines
No EOL
12 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="keywords" content="nanoc, web, git">
<link rel="shortcut icon" type="image/x-icon" href="/Scratch/img/favicon.ico" />
<link rel="stylesheet" type="text/css" href="/Scratch/assets/css/main.css" />
<link rel="stylesheet" type="text/css" href="/Scratch/css/twilight.css" />
<link rel="stylesheet" type="text/css" href="/Scratch/css/idc.css" />
<link rel="alternate" type="application/rss+xml" title="RSS" href="http://feeds.feedburner.com/yannespositocomfr"/>
<link rel="alternate" lang="fr" xml:lang="fr" title="Utilisation de git pour calculer les mtimes" type="text/html" hreflang="fr" href="/Scratch/fr/blog/2010-09-02-Use-git-to-calculate-trusted-mtimes/" />
<link rel="alternate" lang="en" xml:lang="en" title="Use git to calculate trusted mtimes" type="text/html" hreflang="en" href="/Scratch/en/blog/2010-09-02-Use-git-to-calculate-trusted-mtimes/" />
<script type="text/javascript" src="/Scratch/js/jquery-1.3.1.min.js"></script>
<script type="text/javascript" src="/Scratch/js/jquery.cookie.js"></script>
<script type="text/javascript" src="/Scratch/js/index.js"></script>
<!--[if lt IE 9]>
<script src="http://ie7-js.googlecode.com/svn/version/2.1(beta4)/IE9.js"></script>
<![endif]-->
<title>Utilisation de git pour calculer les mtimes</title>
</head>
<body lang="fr" class="article">
<script type="text/javascript">// <![CDATA[
document.write('<div id="blackpage"><img src="/Scratch/img/loading.gif" alt="Chargement en cours..."/></div>');
// ]]>
</script>
<div id="content">
<div id="choix">
<div class="return"><a href="#entete">&darr; Menu &darr;</a></div>
<div id="choixlang">
<a href="/Scratch/en/blog/2010-09-02-Use-git-to-calculate-trusted-mtimes/" onclick="setLanguage('en')">in English</a>
</div>
<div class="flush"></div>
</div>
<div id="titre">
<h1>
Utilisation de git pour calculer les mtimes
</h1>
</div>
<div class="flush"></div>
<div class="flush"></div>
<div id="afterheader">
<div class="corps">
<p>Vous pouvez remarquer quà la fin de chaque page je donne une date de dernière modification.
Précédemment cette date était calculée en utilisant la date du fichier.
Mais il arrive fréquemment que je fasse un <code>touch</code> dun fichier pour engendrer tout le site de nouveau.
Donc la date nest pas nécessairement la <em>vraie</em> de modification du contenue.</p>
<p>Jutilise <a href="http://git-scm.org">git</a> pour <em>versionner</em> mon site web.
Et cet outil me permet de récupérer la dernière date de <em>vraie</em> modification dun fichier.
Voici comment je my prend avec <a href="http://nanoc.stoneship.org">nanoc</a>&nbsp;:</p>
<div class="code"><div class="file"><a href="/Scratch/fr/blog/2010-09-02-Use-git-to-calculate-trusted-mtimes/code/gitmtime.rb"> &#x27A5; gitmtime.rb </a></div><div class="withfile">
<pre class="twilight">
<span class="Keyword">def</span> <span class="Entity">gitmtime</span>
filepath<span class="Keyword">=</span><span class="Variable"><span class="Variable">@</span>item</span>.<span class="Entity">path</span>.<span class="Entity">sub</span>(<span class="String"><span class="String">'</span>/Scratch/<span class="String">'</span></span>,<span class="String"><span class="String">'</span>content/html/<span class="String">'</span></span>).<span class="Entity">sub</span>(<span class="StringRegexp"><span class="StringRegexp">/</span></span><span class="StringRegexp"><span class="StringRegexpSpecial">\/</span>$</span><span class="StringRegexp"><span class="StringRegexp">/</span></span>,<span class="String"><span class="String">'</span><span class="String">'</span></span>)
ext<span class="Keyword">=</span><span class="String"><span class="String">%{</span>.<span class="StringEmbeddedSource"><span class="StringEmbeddedSource">#{</span><span class="StringVariable"><span class="StringVariable">@</span>item</span><span class="StringEmbeddedSource">[</span><span class="StringConstant"><span class="StringConstant">:</span>extension</span><span class="StringEmbeddedSource">]</span><span class="StringEmbeddedSource">}</span></span><span class="String">}</span></span>
filepath<span class="Keyword">&lt;&lt;=</span>ext
<span class="Keyword">if</span> <span class="Keyword">not</span> <span class="Support">FileTest</span>.<span class="Entity">exists?</span>(filepath)
filepath.<span class="Entity">sub!</span>(ext,<span class="String"><span class="String">%{</span><span class="StringEmbeddedSource"><span class="StringEmbeddedSource">#{</span><span class="StringVariable"><span class="StringVariable">@</span>item</span><span class="StringEmbeddedSource"><span class="StringEmbeddedSource">.</span><span class="Entity">raw_filename</span></span><span class="StringEmbeddedSource">}</span></span><span class="StringEmbeddedSource"><span class="StringEmbeddedSource">#{</span>ext<span class="StringEmbeddedSource">}</span></span><span class="String">}</span></span>)
<span class="Keyword">end</span>
str<span class="Keyword">=</span><span class="String"><span class="String">`</span>git log -1 --format='%ci' -- <span class="StringEmbeddedSource"><span class="StringEmbeddedSource">#{</span>filepath<span class="StringEmbeddedSource">}</span></span><span class="String">`</span></span>
<span class="Keyword">if</span> str.<span class="Entity">nil?</span> <span class="Keyword">or</span> str.<span class="Entity">empty?</span>
<span class="Keyword">return</span> <span class="Support">Time</span>.<span class="Entity">now</span>
<span class="Keyword">else</span>
<span class="Keyword">return</span> <span class="Support">DateTime</span>.<span class="Entity">parse</span>( str )
<span class="Keyword">end</span>
<span class="Keyword">end</span>
</pre>
</div></div>
<p>Bien entendu je sais que cest très lent et absolument pas optimisé.
Mais ça fonctionne comme prévu.
Maintenant la date que vous voyez en bas de la page correspond exactement à la dernière date de modification de son contenu.</p>
<p><em>Mise à jour</em>:
Je tiens à remercier Eric Sunshine et Kris pour leurs conseils sur ce problème.</p>
</div>
<div id="choixrss">
<a id="rss" href="http://feeds.feedburner.com/yannespositocomfr">
s'abonner
</a>
</div>
<script type="text/javascript">
$(document).ready(function(){
$('#comment').hide();
$('#clickcomment').click(showComments);
});
function showComments() {
$('#comment').show();
$('#clickcomment').fadeOut();
}
document.write('<div id="clickcomment">Commentaires</div>');
</script>
<div class="flush"></div>
<div class="corps" id="comment">
<h2 class="first">commentaires</h2>
<noscript>
Vous devez activer javascript pour commenter.
</noscript>
<script type="text/javascript">
var idcomments_acct = 'a307f0044511ff1b5cfca573fc0a52e7';
var idcomments_post_id = '/Scratch/fr/blog/2010-09-02-Use-git-to-calculate-trusted-mtimes/';
var idcomments_post_url = 'http://yannesposito.com/Scratch/fr/blog/2010-09-02-Use-git-to-calculate-trusted-mtimes/';
</script>
<span id="IDCommentsPostTitle" style="display:none"></span>
<script type='text/javascript' src='/Scratch/js/genericCommentWrapperV2.js'></script>
</div>
<div id="entete" class="corps_spaced">
<div id="liens">
<ul><li><a href="/Scratch/fr/">Bienvenue</a></li>
<li><a href="/Scratch/fr/blog/">Blog</a></li>
<li><a href="/Scratch/fr/softwares/">Softwares</a></li>
<li><a href="/Scratch/fr/about/">À propos</a></li></ul>
</div>
<div class="flush"></div>
<hr/>
<div id="next_before_articles">
<div id="previous_articles">
articles précédents
<div class="previous_article">
<a href="/Scratch/fr/blog/2010-09-02-base64-and-sha1-on-iPhone/"><span class="nicer">«</span>&nbsp;base64 et sha1 sur iPhone</a>
</div>
<div class="previous_article">
<a href="/Scratch/fr/blog/2010-08-31-send-mail-from-command-line-with-attached-file/"><span class="nicer">«</span>&nbsp;Envoyer un mail en ligne de commande avec un fichier attaché</a>
</div>
<div class="previous_article">
<a href="/Scratch/fr/blog/2010-08-23-Now-heberged-on-heroku/"><span class="nicer">«</span>&nbsp;Maintenant sur Heroku</a>
</div>
</div>
<div id="next_articles">
articles suivants
<div class="next_article">
<a href="/Scratch/fr/blog/2010-10-06-New-Blog-Design-Constraints/">Contraintes du design de ce blog&nbsp;<span class="nicer">»</span></a>
</div>
<div class="next_article">
<a href="/Scratch/fr/blog/2010-10-10-Secure-eMail-on-Mac-in-few-steps/">Sécurisez vos emails&nbsp;<span class="nicer">»</span></a>
</div>
<div class="next_article">
<a href="/Scratch/fr/blog/2010-10-14-Fun-with-wav/">S'amuser avec un .wav&nbsp;<span class="nicer">»</span></a>
</div>
</div>
<div class="flush"></div>
</div>
</div>
<div id="bottom">
<div>
<a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/deed.fr">Droits de reproduction ©, Yann Esposito</a>
</div>
<div id="lastmod">
Écrit le : 02/09/2010
modifié le : 14/09/2011
</div>
<div>
Site entièrement réalisé avec
<a href="http://www.vim.org">Vim</a>
et
<a href="http://nanoc.stoneship.org">nanoc</a>
</div>
<div>
<a href="/Scratch/fr/validation/">Validation</a>
<a href="http://validator.w3.org/check?uri=referer"> [xhtml] </a>
.
<a href="http://jigsaw.w3.org/css-validator/check/referer?profile=css3"> [css] </a>
.
<a href="http://validator.w3.org/feed/check.cgi?url=http%3A//yannesposito.com/Scratch/fr/blog/feed/feed.xml">[rss]</a>
</div>
</div>
<div class="clear"></div>
</div>
</body>
</html>