Build Version info (was Re: OSProcess fork issue with Debian built VM)
On Fri, May 19, 2017 at 2:58 AM, Eliot Miranda <[hidden email]> wrote:
> > BTW, for all people installing and building their own please note this: > > On Tue, May 16, 2017 at 5:57 AM, Max Leske <[hidden email]> wrote: > [snip] >> >> /usr/local/lib/phcogspurlinux/lib/pharo/5.0-/pharo >> Pharo VM version: 5.0-$URL$ Tue May 16 12:22:16 UTC 2017 gcc 4.9.2 [Production Spur ITHB VM] >> Built from: CoInterpreter VMMaker.oscog-eem.2207 uuid: 8da5de9b-33d7-478b-9081-58591f7da69a May 16 2017 >> With: StackToRegisterMappingCogit VMMaker.oscog-eem.2208 uuid: 4877be7d-941d-4e15-b6df-4f1b8c7072a8 May 16 2017 >> Revision: VM: $URL$ $Date$ Date: $Rev$ Plugins: $Rev$ >> Build host: Linux nuc 4.10.0-20-generic #22-Ubuntu SMP Thu Apr 20 09:22:42 UTC 2017 i686 GNU/Linux >> plugin path: /usr/local/lib/phcogspurlinux/lib/pharo/5.0-/ [default: /usr/local/lib/phcogspurlinux/lib/pharo/5.0-/] > > > The way to get rid of the " Revision: VM: $URL$ $Date$ Date: $Rev$ Plugins: $Rev$" nonsense in the version report is to make sure to run > scripts/updateSCCSVersions
Even though I know this, I usually forget for the first run on a new machine. Is there some reason this can't be run as part of make?
> exactly once before you build. From then on the checkin script > scrips/gitci > makes sure that this is up-to-date. You'll get something more useful such as > > VM: 201705161708 eliot@Sisyphus:oscogvm $ Date: Tue May 16 10:08:12 2017 -0700 $ > > which allows me to identify this VM as one I build myself on my Mac Mini Sisyphus in directory oscogvm, which contrasts with the official binary VMs. > > Ideally the script would be run automatically after the repository was cloned. Do git mavens know if a post-clone hook is available to make this happen? If so, can someone make it so?
The blocker to this is that clone does not install the hooks. Maybe the hooks be installed by make? Of course, everyone should look at the README, but unfortunate human nature its a bit TL;DR. The alternative could be a SETUP or QUICKSTART file in the root directory, to make it more obvious it should be run.
btw, could someone actually explain how this works... git config --local include.path ../.gitconfig git stash -q || true echo "//" >> platforms/Cross/vm/sqSCCSVersion.h echo "//" >> platforms/Cross/plugins/sqPluginsSCCSVersion.h git checkout HEAD -- platforms/Cross/vm/sqSCCSVersion.h git checkout HEAD -- platforms/Cross/plugins/sqPluginsSCCSVersion.h git stash pop -q || true I can't grok its magic. Hopefully that highlights why its the same script for each of post-checkout, post-commit & post-merge