Some of the way we've done things in the past are a bit of a pain for anyone not us, or whatever server isn't our current "officially supported" server.
My suggestion is to create a start-up script and a minor reorganization to do the following:
On every run, git pull. If we keep master stable this will always be the "latest"
Then build if needed.
SQL updates are always a numbered, complete file. No more -pending in master. -pending SQL updates have been the majority of debugging I've had to help people with.
The script somehow keeps track of which ones of those it already ran (or if its never ran at all), and only runs what it needs. If it's a first time run, it loads the full db file.
Finally, start the server.
We can keep serverstart.sh and .bat the way it is for those that don't want this.