<div class="gmail_quote"><div class="im">On Mon, Nov 28, 2011 at 3:53 PM, Erik Schnetter <span dir="ltr">&lt;<a href="mailto:schnetter@cct.lsu.edu" target="_blank">schnetter@cct.lsu.edu</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


I like your setup where EinsteinExact &quot;contains&quot; another repository<br>
&quot;thorns&quot;. I assumes that makes it much simpler to regenerate code<br>
without needing to handle spurious conflicts.<br></blockquote><div><br></div></div><div>This was the intention, although the jury is out on whether it really is an improvement. Ian and I decided to try it out as an experiment and have mixed opinions about whether it was a success. I think it does help to keep the history cleaner for the main repository and it&#39;s nice to always be able to comfortably throw away any local changes in the thorns repository (for example, you can do a &#39;git reset&#39; instead of worrying about rebasing).</div>


<div><br></div><div>The downside is that because of the way git&#39;s submodules system works (see <a href="http://book.git-scm.com/5_submodules.html" target="_blank">http://book.git-scm.com/5_submodules.html</a> for a good description), it is still necessary to have a commit on the master branch whenever the thorns are regenerated. On top of this, now whenever a change is made it has to be pushed twice, once for the master branch and once for the thorns branch.</div>

<div class="im">
<div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Can we copy this for McLachlan? Can you briefly describe how to set<br>
this up, and how we would have to extend GetComponents (if at all) to<br>
make this work?</blockquote><div><br></div></div><div>This is certainly possible and very easy to do. It essentially amounts to  creating a separate repository for the generated thorns and adding this as a submodule to the main repository. GetComponents then needs to clone the repository with the --recursive option. Also, when pulling in new changes, it&#39;s important to remember to run &#39;git submodule update&#39; after pulling.</div>

</div><br>