<br><br><div class="gmail_quote">On Wed, Feb 22, 2012 at 2:57 PM, Herbert Valerio Riedel <span dir="ltr">&lt;<a href="mailto:hvr@gnu.org">hvr@gnu.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">Eugene Kirpichov &lt;<a href="mailto:ekirpichov@gmail.com">ekirpichov@gmail.com</a>&gt; writes:<br>
<br>
&gt; It can be used like this:<br>
&gt;<br>
&gt; {-# LANGUAGE TemplateHaskell #-}<br>
&gt;  import Distribution.VcsRevision.Git<br>
&gt;  import Language.Haskell.TH.Syntax<br>
&gt;<br>
&gt;  showMyGitVersion :: String<br>
&gt;  showMyGitVersion = $(do<br>
&gt;    v &lt;- qRunIO getRevision<br>
&gt;    lift $ case v of<br>
&gt;      Nothing           -&gt; &quot;&lt;none&gt;&quot;<br>
&gt;      Just (hash,True)  -&gt; hash ++ &quot; (with local modifications)&quot;<br>
&gt;      Just (hash,False) -&gt; hash)<br>
<br>
</div>Btw, I&#39;m wondering (haven&#39;t tried myself), when using TH to generate the<br>
version string, does GHC&#39;s and/or cabal&#39;s dependency tracking<br>
<br>
 a) reliably refresh the generated hash so that you can be sure it&#39;s<br>
    the git-commit id compiled into the binary is reliable, and<br>
<br>
 b) avoid re-generating the TH file and redundant recompilation if the<br>
    git commit-id hasn&#39;t changed?<br>
<span class="HOEnZb"><font color="#888888"><br></font></span></blockquote><div>Do you mean all this in the context where this resides in a library rather than an application? I haven&#39;t thought about that yet.</div><div>
 </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="HOEnZb"><font color="#888888">
hvr<br>
--<br>
</font></span></blockquote></div><br><br clear="all"><div><br></div>-- <br>Eugene Kirpichov<br>Principal Engineer, Mirantis Inc. <a href="http://www.mirantis.com/" target="_blank">http://www.mirantis.com/</a><br>Editor, <a href="http://fprog.ru/" target="_blank">http://fprog.ru/</a><br>