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.