The more I think about it, the more I head back to a pre-pull hook.  But, I 
think that also having a pre-merge hook is good.  I might not use a 
pre-fetch hook if I have pre-pull, but see no harm having it.

Reasons for pre-pull:

* It allows a distinction from fetch.  If you know what you're doing and 
don't want checks first, then use fetch.  During normal work, or for new 
people, use pull and let it check the basics for you.

* It happens first, before the fetch.  Did I forget about the 50 files I 
changed?  I would rather get those committed/reverted/removed first.  This 
is especially nice to new folks.


A huge part of our project is written by students.  The project is large 
and complex and requires considerable scientific and computing savvy.  Most 
incoming students know only a little about either the specific science or 
the specific computing needed by the project.  We need all the safety nets 
we can get.  We all try not to break things, but we're all human.

I wish I could show the source code that prompted this request.  We keep it 
hidden because we're running full-tilt just to get things working, and 
there is no extra time to be certain we won't be opening ourselves to 
mischief if we open the sources.  But, you can see the development version 
of the product here:  dev.glycam.org     Maybe one day we can open that 
code.

See dev.glycam.org/cb to get a superficial idea of the scientific 
complexity involved.  The rules for the chemical behaviors of those 
monosaccharide buttons are in the database.  We do it that way so that the 
scientists can update the rules without having to learn 
Django/Python/C++/CSS/HTML/SVG/dot/etc.  But, the coders might also update 
the table for a given monosaccharide.  Those changes need to be able to be 
merged.  We're using git (coupled with Django's 'fixtures' and UUIDs) to 
help us with that.  But, git can't manage the data until they're in the 
repo.

Some of the source is open:  https://github.com/GLYCAM-Web   -  the 'dev-X' 
branches are the most up to date.  Eventually, parts of that code will 
depend on and/or originate from database tables, or so we hope.

Anyhow, thanks for listening and for all the comments.


PS:  The following didn't work for us.  We tested with a "hello-world"-type 
script:  

"Note that on *nix systems installing such a script program is as easy as 
dropping it under any directory on the user's $PATH - so that if you put 
a file named "foo" under, say, /usr/local/bin, then running `git foo` 
will make the Git front-end program to find that /usr/local/bin/foo and 
execute it. "




On Monday, October 1, 2018 at 11:21:01 AM UTC-4, B. Lachele Foley wrote:
>
> Another way to look at this is:  
>
> Git already has a sort of pre-merge hook in that it will not let you merge 
> if there are un-committed changes in the repo.  
>
> We are trying to do the same thing.  The difference is that the 
> un-committed changes aren't something git can see, so we will never get the 
> "Please commit your changes or stash them before you merge." message.  We 
> are trying to do the equivalent of that - to keep people from merging if 
> there are uncommitted changes (that should be) in the repo.  But, best I 
> know, git will not consider a MariaDB table to be a part of its 'repo'.  
> So, we need a hook.  We are fond of learning about this problem before the 
> fetch happens, but it definitely has to happen pre-merge.
>
>
>
> On Thursday, September 27, 2018 at 11:52:48 AM UTC-4, B. Lachele Foley 
> wrote:
>>
>> Our group could really use a pre-pull hook.  Is there already a way to do 
>> this?  I wrote a little wrapper script in bash for it, but that's not ideal.
>>
>> Here is our use case:
>>
>> The code in our repo is coupled to a database. We have made it so that 
>> all the parts of the database that are controlled by developers are 
>> git-managed within the repo.  However, it is often convenient or otherwise 
>> desirable for the developer to edit the relevant database tables directly 
>> (in the usual manner, by connecting to the DB server and using SQL 
>> commands,etc.).  But, if this happens, it is very important that the 
>> developer has dumped the relevant data into the git-managed files and 
>> committed the changes before pulling.  Doing this ensures that there will 
>> be a merge conflict if, for example, two devs have modified the same row in 
>> the same table (a legitimate possibility for us).
>>
>> The pre-pull hook we would write would do something like this:  It would 
>> dump the relevant data to temporary files and compare them with the 
>> git-managed versions.  If there are differences, a pull would not be 
>> allowed until the dev has made the git-managed files match the contents of 
>> their database.  
>>
>> I looked briefly at the source code for git.  I think I found where I 
>> would need to put the new code, but also found that I would need to learn 
>> many new things before making the change.  So, if I do it, there might be a 
>> considerable wait.  Therefore, part 2 of this question is: does anyone know 
>> who to ask about implementing this feature if there is not another way to 
>> handle the situation?
>>
>> Thanks!
>>
>>

-- 
You received this message because you are subscribed to the Google Groups "Git 
for human beings" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to git-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to