On 2014-08-15 20:45-0400 Hazen Babcock wrote: > On 8/15/2014 2:53 PM, Alan W. Irwin wrote: >> Hi Hazen: >> >> Earlier today I sent an e-mail to Brad King, the CMake git guru (with >> CC to you to keep you fully informed) asking how they implemented the >> enforcement hooks in their git repo to maintain the desired >> --first-parent properties of the integration branches used in their >> workflow. Assuming we adopt their workflow, then I think it is >> absolutely essential that we get these enforcement hooks in place >> before proceeding further with PLplot development using git so I think >> it is a good idea to make our SF git repo read-only until this >> implementation issue for our workflow is resolved. I plan to do that >> later today if you don't have any strong objections. > > I object, but not strongly. What is the worst thing that can happen? We have > to delete the repo and start over? Hooks or no hooks, mistakes are going to > be made and will have to be dealt with, might as well start learning how to > do that now.
Hi Hazen: Thanks for your response. I do feel strongly about the necessity of the hooks principally because the CMake software project finds them to be essential for automatically maintaining the "clean shape of history" they find to be so useful. Also, I think it is important to start with git the way we mean to go on. Therefore, because you do not have a strong objection, I have just now made the SF git repo for PLplot read-only until we can get the hooks implemented which will be my first priority from now on. Hopefully, this git hold up will all get resolved early next week if Brad King is cooperative about sharing his hooks implementation. But if not, I plan to fall back to learning enough about git hooks to implement this myself, and I would welcome your help or advice with this effort as well if you have the time right now to participate. By the way, you likely know this already, but for the others here hooks can simply be shell scripts (see the part of the Pro Git book that discusses git hooks) that exit with appropriate error message and non-zero return code if certain logical conditions are not met. Also, there is a tonne of reference material on git hooks and git hook examples at http://githooks.com/ which I will be looking at. I feel comfortable writing shell scripts, so for me, the sticking points for an implemention of the hook (or hooks) we need are (1) knowing what logical conditions must be met to maintain the "clean shape of history" (i.e., "--first-parent traversal of an integration branch, such as master, should see only the merge commits that integrate topics into the branch"), and (2) figuring out the git commands to test those logical conditions. I think (2) will be pretty straightforward (since I used git commands a lot in my script to test our git repo versus our svn repo). With regard to (1) there is a logical rule mentioned in the <http://public.kitware.com/Wiki/Git/Workflow/Topic> discussion of how the hook rejects a bad workflow example which is probably what is required here. The current status is I don't completely understand that example and its discussion, but I am working on it. More later as this git hooks project progresses (or Brad King shortens it by sharing his own implementation). Alan __________________________ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); the Time Ephemerides project (timeephem.sf.net); PLplot scientific plotting software package (plplot.sf.net); the libLASi project (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ ------------------------------------------------------------------------------ _______________________________________________ Plplot-devel mailing list Plplot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/plplot-devel