<HTML>
<HEAD>
<TITLE>Re: [vtk-developers] Auto install git hooks</TITLE>
</HEAD>
<BODY>
<FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'>That sounds pretty good to me.<BR>
<BR>
-Ken<BR>
<BR>
<BR>
On 6/29/10 2:27 PM, "Marcus D. Hanwell" <<a href="marcus.hanwell@kitware.com">marcus.hanwell@kitware.com</a>> wrote:<BR>
<BR>
</SPAN></FONT><BLOCKQUOTE><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'>So, I was thinking about this over the weekend, and talked to Brad King. There is an environment variable that is set by CTest when it drives the build. I can check if that variable is defined, and know that CTest is driving the build.<BR>
<BR>
If I did that then when a user first configures VTK CMake will print an error with copy/paste instructions to check out the local hooks (along with a link to the wiki). They can set a CMake cache variable to ignore the hooks to get past it if they wish. If you are not in a git checkout the whole process is skipped.<BR>
<BR>
If CTest invoked the configure then the environment variable is set, and so the error is not raised - negating the need to set a cache variable on all of the dashboard machines. The only assumption is that CTest is driving the build, which I think is reasonable. I tested the logic out in Titan and it looks good.<BR>
<BR>
Does this cover all of your requirements reasonably? I will be checking this code into Titan as I think it is an improvement on what we had there too. I would be happy to check the relevant portion into VTK.<BR>
<BR>
Marcus<BR>
<BR>
On Thu, Jun 17, 2010 at 6:33 PM, Moreland, Kenneth <<a href="kmorel@sandia.gov">kmorel@sandia.gov</a>> wrote:<BR>
</SPAN></FONT><BLOCKQUOTE><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'><BR>
In short, a pushurl is not a good indication of whether commits will be made or whether those commits will eventually be pushed to the main repository.<BR>
<BR>
-Ken<BR>
<BR>
<BR>
<BR>
On 6/17/10 2:46 PM, "Marcus D. Hanwell" <<a href="marcus.hanwell@kitware.com">marcus.hanwell@kitware.com</a> <<a href="http://marcus.hanwell@kitware.com">http://marcus.hanwell@kitware.com</a>> > wrote:<BR>
<BR>
</SPAN></FONT><BLOCKQUOTE><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'>On Thu, Jun 17, 2010 at 4:40 PM, Clinton Stimpson <<a href="clinton@elemtech.com">clinton@elemtech.com</a> <<a href="http://clinton@elemtech.com">http://clinton@elemtech.com</a>> > wrote:<BR>
</SPAN></FONT><BLOCKQUOTE><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'><BR>
Can you key off the existence of a pushurl?<BR>
But I also wonder how this would keep the hooks updated?<BR>
</SPAN></FONT></BLOCKQUOTE><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'><BR>
We could possibly be clever and do a little regex to check for the git@ form of the url/pushurl. I hadn't considered being that sneaky, but it sound like a viable approach and would ease the dashboard pain.<BR>
<BR>
Marcus<BR>
</SPAN></FONT><BLOCKQUOTE><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'><BR>
On Thursday, June 17, 2010 02:13:37 pm Marcus D. Hanwell wrote:<BR>
> On Thu, Jun 17, 2010 at 4:06 PM, Moreland, Kenneth <<a href="kmorel@sandia.gov>wrote">kmorel@sandia.gov>wrote</a>:<BR>
> >  That’s a good point about CMake modifying the source tree, but I think<BR>
> ><BR>
> > this is one of those cases we should let the rule slide.  In this case we<BR>
> > are installing what, IMHO, git should be pulling for us.  Although the<BR>
> > Wiki says its optional, it really should be enforced for anyone who<BR>
> > makes any commit to any repository.<BR>
><BR>
> We came to a similar conclusion in Titan, but I am not sure about letting<BR>
> the rule slide. This is new territory though, and it is just my take<BR>
><BR>
> > I’m less thrilled about the “error if not installed” option because it<BR>
> > still pushes the responsibility back on every developer.  It could also<BR>
> > wreck havoc on the dashboards as there will be a delay in getting someone<BR>
> > to fix the warning.  But if that is the general consensus, it’s way<BR>
> > better than what we have now, which is nothing.  If that is the path we<BR>
> > choose to<BR>
> ><BR>
> > follow, then I would hope that the following could be be features:<BR>
> >    - CMake be very insistent about installing the hooks.  It should not<BR>
> >    be easy to miss or ignore the error.<BR>
> >    - The error should give clear instructions on how to install the<BR>
> >    hooks.<BR>
> ><BR>
> >     It’s annoying to have to find it in the Wiki every time.<BR>
> ><BR>
> >    - The check should also look for any updates to the hooks in addition<BR>
> >    to just seeing if they are installed.  One of the problems I run into<BR>
> >    is that even though I try to be diligent about installing hooks, I<BR>
> >    miss changes pushed to the repository.<BR>
> >    - The check should turn itself off if not run in a git repository.  A<BR>
> >    user who downloaded the source from the web would never be able to<BR>
> >    satisfy the requirement.<BR>
><BR>
> The checks in Titan have all but the third feature. That would be a<BR>
> valuable general addition though, and I think there is some code floating<BR>
> around that could help us to accomplish this. It would be good to hear how<BR>
> others feel about this, but we should certainly be making these things as<BR>
> easy as possible for our developers. I will see what our software process<BR>
> type people think - Brad, Dave, Bill?<BR>
><BR>
> Marcus<BR>
> --<BR>
> Marcus D. Hanwell, Ph.D.<BR>
> R&D Engineer, Kitware Inc.<BR>
> (518) 881-4937<BR>
</SPAN></FONT></BLOCKQUOTE><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'><BR>
<BR>
</SPAN></FONT></BLOCKQUOTE></BLOCKQUOTE><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'><BR>
<BR>
</SPAN></FONT></BLOCKQUOTE><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'><BR>
</SPAN></FONT><FONT SIZE="2"><FONT FACE="Consolas, Courier New, Courier"><SPAN STYLE='font-size:10pt'><BR>
   ****      Kenneth Moreland<BR>
    ***      Sandia National Laboratories<BR>
***********  <BR>
*** *** ***  email: <a href="kmorel@sandia.gov">kmorel@sandia.gov</a><BR>
**  ***  **  phone: (505) 844-8919<BR>
    ***      web:   <a href="http://www.cs.unm.edu/~kmorel">http://www.cs.unm.edu/~kmorel</a><BR>
</SPAN></FONT></FONT><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'><BR>
</SPAN></FONT>
</BODY>
</HTML>